aboutsummaryrefslogtreecommitdiff
path: root/embassy-boot/src/digest_adapters/salty.rs
blob: 2b5dcf3af59df00f4661de7b8c4a09c199353c6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use digest::typenum::U64;
use digest::{FixedOutput, HashMarker, OutputSizeUser, Update};

pub struct Sha512(salty::Sha512);

impl Default for Sha512 {
    fn default() -> Self {
        Self(salty::Sha512::new())
    }
}

impl Update for Sha512 {
    fn update(&mut self, data: &[u8]) {
        self.0.update(data)
    }
}

impl FixedOutput for Sha512 {
    fn finalize_into(self, out: &mut digest::Output<Self>) {
        let result = self.0.finalize();
        out.as_mut_slice().copy_from_slice(result.as_slice())
    }
}

impl OutputSizeUser for Sha512 {
    type OutputSize = U64;
}

impl HashMarker for Sha512 {}