hash_utils 0.1.0

A collection of hash functions
Documentation
use super::Hasher;

pub struct Shabal192;
impl Hasher for Shabal192 {
    fn hash_name(&self) -> &'static str {
        "Shabal-192"
    }

    fn active_bits(&self) -> &'static u32 {
        &192
    }

    fn hash(&self, data: &[u8]) -> Vec<u8> {
        use ::shabal::Digest;
        let mut hasher = ::shabal::Shabal192::new();
        hasher.update(data);
        hasher.finalize().to_vec()
    }
}

pub struct Shabal224;
impl Hasher for Shabal224 {
    fn hash_name(&self) -> &'static str {
        "Shabal-224"
    }

    fn active_bits(&self) -> &'static u32 {
        &224
    }

    fn hash(&self, data: &[u8]) -> Vec<u8> {
        use ::shabal::Digest;
        let mut hasher = ::shabal::Shabal224::new();
        hasher.update(data);
        hasher.finalize().to_vec()
    }
}

pub struct Shabal256;
impl Hasher for Shabal256 {
    fn hash_name(&self) -> &'static str {
        "Shabal-256"
    }

    fn active_bits(&self) -> &'static u32 {
        &256
    }

    fn hash(&self, data: &[u8]) -> Vec<u8> {
        use ::shabal::Digest;
        let mut hasher = ::shabal::Shabal256::new();
        hasher.update(data);
        hasher.finalize().to_vec()
    }
}

pub struct Shabal384;
impl Hasher for Shabal384 {
    fn hash_name(&self) -> &'static str {
        "Shabal-384"
    }

    fn active_bits(&self) -> &'static u32 {
        &384
    }

    fn hash(&self, data: &[u8]) -> Vec<u8> {
        use ::shabal::Digest;
        let mut hasher = ::shabal::Shabal384::new();
        hasher.update(data);
        hasher.finalize().to_vec()
    }
}

pub struct Shabal512;
impl Hasher for Shabal512 {
    fn hash_name(&self) -> &'static str {
        "Shabal-512"
    }

    fn active_bits(&self) -> &'static u32 {
        &512
    }

    fn hash(&self, data: &[u8]) -> Vec<u8> {
        use ::shabal::Digest;
        let mut hasher = ::shabal::Shabal512::new();
        hasher.update(data);
        hasher.finalize().to_vec()
    }
}