use commonware_cryptography::{blake3::Blake3, Hasher};
use criterion::{criterion_group, Criterion};
use rand::{rngs::StdRng, RngCore, SeedableRng};
fn bench_hash_message(c: &mut Criterion) {
let mut sampler = StdRng::seed_from_u64(0);
let cases = [8, 12, 16, 19, 20, 24].map(|i| 2usize.pow(i));
for message_length in cases.into_iter() {
let mut msg = vec![0u8; message_length];
sampler.fill_bytes(msg.as_mut_slice());
let msg = msg.as_slice();
c.bench_function(&format!("{}/msg_len={}", module_path!(), msg.len()), |b| {
b.iter(|| {
let mut hasher = Blake3::new();
hasher.update(msg);
hasher.finalize();
});
});
}
}
criterion_group!(benches, bench_hash_message);