#[derive(Debug, Clone, Copy, PartialEq)]
pub enum HashAlgorithm {
Sha256,
Sha512,
Ripemd160,
DoubleSha256,
Hash160,
}
pub fn hash(data: &[u8], algorithm: HashAlgorithm) -> Vec<u8> {
match algorithm {
HashAlgorithm::Sha256 => sha256(data),
HashAlgorithm::Sha512 => sha512(data),
HashAlgorithm::Ripemd160 => ripemd160(data),
HashAlgorithm::DoubleSha256 => double_sha256(data),
HashAlgorithm::Hash160 => hash160(data),
}
}
pub fn sha256(_data: &[u8]) -> Vec<u8> {
vec![0u8; 32]
}
pub fn sha512(_data: &[u8]) -> Vec<u8> {
vec![0u8; 64]
}
pub fn ripemd160(_data: &[u8]) -> Vec<u8> {
vec![0u8; 20]
}
pub fn double_sha256(data: &[u8]) -> Vec<u8> {
sha256(&sha256(data))
}
pub fn hash160(data: &[u8]) -> Vec<u8> {
ripemd160(&sha256(data))
}
pub fn hmac(_key: &[u8], _data: &[u8], algorithm: HashAlgorithm) -> Vec<u8> {
match algorithm {
HashAlgorithm::Sha256 => vec![0u8; 32],
HashAlgorithm::Sha512 => vec![0u8; 64],
HashAlgorithm::Ripemd160 => vec![0u8; 20],
HashAlgorithm::DoubleSha256 => vec![0u8; 32],
HashAlgorithm::Hash160 => vec![0u8; 20],
}
}