blueprint_crypto_hashing/
lib.rs1#[cfg(feature = "sha2")]
2pub fn sha2_256(data: &[u8]) -> [u8; 32] {
3 use sha2::Digest;
4
5 let mut hasher = sha2::Sha256::new();
6 hasher.update(data);
7 let result = hasher.finalize();
8 let mut hash = [0u8; 32];
9 hash.copy_from_slice(&result);
10 hash
11}
12
13#[cfg(feature = "sha2")]
14pub fn sha2_512(data: &[u8]) -> [u8; 64] {
15 use sha2::Digest;
16
17 let mut hasher = sha2::Sha512::new();
18 hasher.update(data);
19 let result = hasher.finalize();
20 let mut hash = [0u8; 64];
21 hash.copy_from_slice(&result);
22 hash
23}
24
25#[cfg(feature = "sha3")]
26pub fn keccak_256(data: &[u8]) -> [u8; 32] {
27 use sha3::Digest;
28
29 let mut hasher = sha3::Keccak256::new();
30 hasher.update(data);
31 let output = hasher.finalize();
32 output.into()
33}
34
35#[cfg(feature = "blake3")]
36pub fn blake3_256(data: &[u8]) -> [u8; 32] {
37 let mut hasher = blake3::Hasher::new();
38 hasher.update(data);
39 let output = hasher.finalize();
40 output.into()
41}