extern crate digest;
extern crate sha1;
extern crate sha2;
use self::sha1::{Digest, Sha1};
use self::sha2::{Sha256, Sha512};
use std::fs;
use std::io;
pub fn file_sha1(f: &str) -> Result<String, io::Error> {
let mut file = fs::File::open(&f)?;
let hash = Sha1::digest_reader(&mut file)?;
Ok(format!("{:x}", hash))
}
pub fn file_sha256(f: &str) -> Result<String, io::Error> {
let mut file = fs::File::open(&f)?;
let hash = Sha256::digest_reader(&mut file)?;
Ok(format!("{:x}", hash))
}
pub fn file_sha512(f: &str) -> Result<String, io::Error> {
let mut file = fs::File::open(&f)?;
let hash = Sha512::digest_reader(&mut file)?;
Ok(format!("{:x}", hash))
}