use crate::Hasher;
use sha2::digest::Update;
use sha2::{Digest, Sha256};
#[derive(Clone, Debug)]
pub struct Sha256Hasher {
inner: Sha256,
}
impl Hasher for Sha256Hasher {
const OUTPUT_SIZE: usize = 32;
fn new() -> Self {
Self {
inner: Sha256::new(),
}
}
fn update(&mut self, data: &[u8]) {
Update::update(&mut self.inner, data);
}
fn finalize(self) -> [u8; 32] {
self.inner.finalize().into()
}
fn finalize_reset(&mut self) -> [u8; 32] {
let out = self.inner.finalize_reset();
out.into()
}
}