Expand description
This crate provides digest implementations.
- Blake2
- Sha2
- Sha3
These can be used directly, using the blake2, sha2 and sha3 submodules.
§Basic API
For example, to hash a payload using Blake2b (with Hash):
fn main() {
use libcrux_digest::blake2::*;
use libcrux_digest::Hash as _;
let mut digest = [0; 32];
Blake2b::hash(&mut digest, b"test data").unwrap();
}
Or to hash a payload using Blake2b (with HashOwned):
fn main() {
use libcrux_digest::blake2::*;
use libcrux_digest::HashOwned as _;
let digest: [u8; 32] = Blake2b::hash(b"test data").unwrap();
}
§Incremental digest API
To hash a payload using Blake2b:
fn main() {
use libcrux_digest::blake2::*;
let mut digest = [0; 32];
let mut hasher = Blake2bHasher::new();
hasher.update(b"test data").unwrap();
hasher.finish(&mut digest);
}
Modules§
- blake2
- Blake2 digest implementations.
- sha2
- Sha2 digest implementations.
- sha3
- Sha3 digest implementations.
Structs§
- Hasher
- A generic hasher. This hasher maintains the incremental digest state.