Digest
This crate provides a usable interface to libcrux-sha2, libcrux-sha3 and libcrux-blake2.
Verification
Blake2 and Sha2
libcrux-blake2 and libcrux-sha2 contain safe Rust that was compiled from verified C
originating in the HACL* project.
The code for [these] algorithms is formally verified using the F* verification framework for memory safety, functional correctness, and secret independence (resistance to some types of timing side-channels). -- The HACL* repository
For more details on the compilation from C to Rust, please refer to "Compiling C to Safe Rust, Formalized" by Aymeric Fromherz and Jonathan Protzenko.
Sha3
NOTE: The Sha3 implementation has not been formally verified yet.