1#![cfg_attr(target_os = "none", no_std)]
4
5use subsoil as _;
6
7use blake2::digest::{consts::U32, Digest};
8use blake2::Blake2b;
9
10type Blake2b256 = Blake2b<U32>;
11
12const MSG_LEN: usize = 1024;
13
14pub fn blake2b_bench() -> u32 {
16 let mut msg = [0u8; MSG_LEN];
17 let mut i: usize = 0;
18 while i < MSG_LEN {
19 msg[i] = (i & 0xFF) as u8;
20 i += 1;
21 }
22
23 let mut hasher = Blake2b256::new();
24 hasher.update(msg);
25 let result = hasher.finalize();
26
27 u32::from_le_bytes([result[0], result[1], result[2], result[3]])
28}