Skip to main content

Module compress

Module compress 

Source
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§

Blake3Compress2x
blake3_compress_2x as 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.