radix_common/crypto/
keccak256.rs

1use crate::crypto::*;
2use sha3::{Digest, Keccak256};
3
4pub fn keccak256_hash<T: AsRef<[u8]>>(data: T) -> Hash {
5    let mut hasher = Keccak256::new();
6    hasher.update(data);
7    let hash = hasher.finalize();
8    Hash(hash.into())
9}
10
11#[cfg(test)]
12mod tests {
13    use super::*;
14    use sbor::rust::str::FromStr;
15
16    #[test]
17    fn test_keccak256_hash() {
18        let data = "Hello Radix";
19        let hash = keccak256_hash(data);
20        assert_eq!(
21            hash,
22            Hash::from_str("415942230ddb029416a4612818536de230d827cbac9646a0b26d9855a4c45587")
23                .unwrap()
24        );
25    }
26}