Skip to main content

verso/library/
hashing.rs

1use sha2::{Digest, Sha256};
2use std::io::Read;
3use std::path::Path;
4
5pub fn sha256_file(path: &Path) -> anyhow::Result<String> {
6    let mut file = std::fs::File::open(path)?;
7    let mut hasher = Sha256::new();
8    let mut buf = [0u8; 64 * 1024];
9    loop {
10        let n = file.read(&mut buf)?;
11        if n == 0 {
12            break;
13        }
14        hasher.update(&buf[..n]);
15    }
16    Ok(hex::encode(hasher.finalize()))
17}