hash_utils 0.1.0

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

pub struct Md5;

impl Hasher for Md5 {
    fn hash_name(&self) -> &'static str {
        "md5"
    }
    fn active_bits(&self) -> &'static u32 {
        &128
    }
    fn hash(&self, data: &[u8]) -> Vec<u8> {
        md5::compute(data).to_vec()
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn hash_validate() {
        use hex::decode;
        let hasher = Md5;

        assert_eq!(hasher.hash(b"abc"), decode("900150983cd24fb0d6963f7d28e17f72").unwrap());
        assert_eq!(hasher.hash(b"12345678901234567890123456789012345678901234567890123456789012345678901234567890"), decode("57edf4a22be3c955ac49da2e2107b67a").unwrap());
    }
}