fe_common/utils/
keccak.rs1use tiny_keccak::{Hasher, Keccak};
2
3pub fn full(content: &[u8]) -> String {
5 partial(content, 32)
6}
7
8pub fn partial_right_padded(content: &[u8], size: usize) -> String {
11 let result = full_as_bytes(content);
12 let padded_output: Vec<u8> = result
13 .iter()
14 .enumerate()
15 .map(|(index, byte)| if index >= size { 0 } else { *byte })
16 .collect();
17
18 hex::encode(padded_output)
19}
20
21pub fn partial(content: &[u8], size: usize) -> String {
23 let result = full_as_bytes(content);
24 hex::encode(&result[0..size])
25}
26
27pub fn full_as_bytes(content: &[u8]) -> [u8; 32] {
29 let mut keccak = Keccak::v256();
30 let mut selector = [0_u8; 32];
31
32 keccak.update(content);
33 keccak.finalize(&mut selector);
34
35 selector
36}