fix: create sha2_digest module for digest engine

This commit is contained in:
Andrew Phillips (aider)
2025-05-12 18:55:51 -03:00
parent 489de191a5
commit 81e193f6a8

View File

@@ -0,0 +1,31 @@
use std::io;
use sha2::{Digest, Sha256};
#[derive(Debug, Eq, PartialEq, Clone, Default)]
pub struct DigestEngineSha256 {
hasher: Sha256,
}
impl DigestEngineSha256 {
pub fn new() -> DigestEngineSha256 {
DigestEngineSha256 { hasher: Sha256::new() }
}
}
use crate::digest_engine::DigestEngine;
impl DigestEngine for DigestEngineSha256 {
fn create(&self) -> Box<dyn DigestEngine> {
Box::new(Self::new())
}
fn update(&mut self, data: &[u8]) -> io::Result<()> {
self.hasher.update(data);
Ok(())
}
fn finalize(&mut self) -> io::Result<String> {
let result = self.hasher.finalize();
Ok(format!("{:x}", result))
}
}