Skip to main content

provable_sdk/
hash.rs

1use sha2::{Digest, Sha256};
2use sha3::Keccak256;
3
4pub fn keccak256(data: impl AsRef<[u8]>) -> String {
5    let mut hasher = Keccak256::new();
6    hasher.update(data.as_ref());
7    hex::encode(hasher.finalize())
8}
9
10pub fn hash(data: impl AsRef<[u8]>) -> String {
11    keccak256(data)
12}
13
14pub fn keccak256_str(value: &str) -> String {
15    keccak256(value.as_bytes())
16}
17
18pub fn hash_str(value: &str) -> String {
19    keccak256_str(value)
20}
21
22pub fn sha256(data: impl AsRef<[u8]>) -> String {
23    let mut hasher = Sha256::new();
24    hasher.update(data.as_ref());
25    hex::encode(hasher.finalize())
26}
27
28pub fn sha256_str(value: &str) -> String {
29    sha256(value.as_bytes())
30}