use crate::common_types::DnsSecDigestAlgorithmKnown; pub fn sha1(data: &[u8]) -> Vec { use sha1::Digest; sha1::Sha1::digest(data).as_slice().to_vec() } pub fn sha256(data: &[u8]) -> Vec { use sha2::Digest; sha2::Sha256::digest(data).as_slice().to_vec() } pub fn sha384(data: &[u8]) -> Vec { use sha2::Digest; sha2::Sha384::digest(data).as_slice().to_vec() } // gostR3411 pub fn gost_r3411(data: &[u8]) -> Vec { use gost94::Digest; gost94::Gost94CryptoPro::digest(data).as_slice().to_vec() } pub fn ds_hash(alg: DnsSecDigestAlgorithmKnown, data: &[u8]) -> Vec { match alg { DnsSecDigestAlgorithmKnown::SHA1 => sha1(data), DnsSecDigestAlgorithmKnown::SHA256 => sha256(data), DnsSecDigestAlgorithmKnown::GOST_R_34_11_94 => gost_r3411(data), DnsSecDigestAlgorithmKnown::SHA384 => sha384(data), } }