ytls_rustcrypto/hasher/
sha256.rs1use sha2::{Digest, Sha256};
4use ytls_traits::CryptoSha256TranscriptProcessor;
5
6#[derive(Clone)]
8pub struct Sha256Hasher {
9 hasher: Sha256,
10}
11
12impl Sha256Hasher {
13 pub fn sha256_init() -> Self {
14 let hasher = Sha256::new();
15 Sha256Hasher { hasher }
16 }
17}
18
19impl CryptoSha256TranscriptProcessor for Sha256Hasher {
20 fn sha256_update(&mut self, d: &[u8]) -> () {
21 self.hasher.update(d);
22 }
23 fn sha256_fork(&self) -> Self {
24 self.clone()
25 }
26 fn sha256_finalize(self) -> [u8; 32] {
27 self.hasher.finalize().into()
28 }
29}