use super::*;
pub fn hash256(data: &[u8]) -> String {
let mut hasher = Sha256::new();
hasher.update(data);
format!("{:x}", hasher.finalize())
}
pub fn hash256_string(v: &[u8]) -> Result<String> {
Ok(format!("{:x}", HmacSha256::new_from_slice(v)?.finalize().into_bytes()))
}
pub fn hmac_sha256_string(v: Output) -> String { format!("{:x}", v.into_bytes()) }
pub fn hash_u8_hash(key: &[u8], msg: Output) -> Result<Output> {
let mut mac = HmacSha256::new_from_slice(key)?;
mac.update(msg.into_bytes().as_slice());
Ok(mac.finalize())
}
pub fn hash_hash_u8(key: Output, msg: &[u8]) -> Result<Output> {
let mut mac = HmacSha256::new_from_slice(key.into_bytes().as_slice())?;
mac.update(msg);
Ok(mac.finalize())
}
pub fn hash_2u8(key: &[u8], msg: &[u8]) -> Result<Output> {
let mut mac = HmacSha256::new_from_slice(key)?;
mac.update(msg);
Ok(mac.finalize())
}
pub fn hash_2hash(key: Output, msg: Output) -> Result<Output> {
let mut mac = HmacSha256::new_from_slice(key.into_bytes().as_slice())?;
mac.update(msg.into_bytes().as_slice());
Ok(mac.finalize())
}