Skip to content

Conversation

@NotsoanoNimus
Copy link
Contributor

@NotsoanoNimus NotsoanoNimus commented Jan 8, 2026

This PR adds a suite of SHA-3 and Keccak-based constructs to the C3 standard library. This finishes rounding out the more necessary sets of C3's cryptographic hashing functionalities, and will hopefully at least equalize the power of the language in this space with the others that have these functions in their standard libraries too.

Usage

All extensive unit-tests contain each construction's usage details by example. All function calls will be well documented when this is finished.

TODOs Remaining

  • Complete detailed API documentation
  • Hone ParallelHash (threading vs. "lanes" vs, others?)
  • Hone TupleHash (finish unit tests and fix any outstanding bugs)
  • Finish KangarooTwelve (currently incomplete)
  • Ensure full unit-test coverage
  • All CI tests passing

At a Glance

I've included a diagram showing the high-level hierarchy used to guide me in implementing this change. The colors change the "further away" each construction is from the Keccak base context. Blue is no "inheritance", Green is 1 level of "inheritance", Yellow is 2, and Red is 3.

This suite of functions of course uses the traditional concept of a cryptographic hash, but also incorporates the newer extendable output function (or XOF) for creating hashes with arbitrary lengths.

Keccak_SHA3_Structure_FINAL

@NotsoanoNimus NotsoanoNimus marked this pull request as draft January 8, 2026 13:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants