aboutsummaryrefslogtreecommitdiff
path: root/core/crypto/hash
Commit message (Collapse)AuthorAgeFilesLines
* core/crypto: Stop using context.temp_allocatorYawning Angel2024-02-072-8/+11
| | | | | | | | | | | The max digest size for the foreseeable future will be 512 bits, and the max block size is currently 1152 bits (SHA3-224). If people add more exotic hash algorithms without bumping the constants when required, tests will fail. The stream buffer will currently be 576 bytes, which is "fine" to just stick on the stack, and is a sensible multiple of the more common block size of 64 bytes.
* core/crypto/hash: Make the low level interface allocator-lessYawning Angel2024-02-072-177/+140
| | | | Just (ab)using reflect to victory is probably fine.
* core/crypto: Expose the block sizes for every hash algorithmYawning Angel2024-02-072-7/+37
| | | | | While I just went and made this private, this information is required for keying HMAC.
* core/crypto/shake: SHAKE is an XOF, not a hashYawning Angel2024-02-071-27/+0
|
* core/crypto: Documentation cleanupsYawning Angel2024-02-071-2/+2
|
* core:crypto/hash: Add a generic higher level hash interfaceYawning Angel2024-02-073-0/+562
There is a lot of code duplicated in convenience methods in each hash implementation, and having a generic hash type makes implementing higher-level constructs such as HMAC significantly easier down the road.