Expand description
BLAKE3 compression primitive.
A BLAKE3 block is 64 bytes (16 × 32-bit words). The compression function mixes an 8-word chaining value with a 16-word message block, a 64-bit block counter, a byte count, and a flags word, producing an updated 8-word chaining value.
The structure mirrors the reference implementation from the BLAKE3 crate.
Every gadget here fills both 32-bit lanes of a word. Where two compressions are available they
run side by side, one per lane (blake3_compress_2x, blake3_compress_2x_seq); a lone
compression splits its own round sequence across the lanes instead (blake3_compress).
Structs§
- Blake3
Compress2x blake3_compress_2xas a gadget, so that a circuit can make it a chip.
Functions§
- blake3_
compress - BLAKE3 compression function.
- blake3_
compress_ 2x - BLAKE3 compression function running two independent compressions in parallel.
- blake3_
compress_ 2x_ seq - Two sequential BLAKE3 compressions evaluated as the two lanes of
blake3_compress_2x. - ref_
compress - Pure-Rust BLAKE3 compression, matching the in-circuit compression exactly.