forked from iotaledger/crypto.rs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsha.rs
25 lines (18 loc) · 792 Bytes
/
sha.rs
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
// Copyright 2020 IOTA Stiftung
// SPDX-License-Identifier: Apache-2.0
#![allow(non_snake_case)]
use digest::{generic_array::typenum::Unsigned, Digest, OutputSizeUser};
#[doc(inline)]
pub use sha2::{Sha256, Sha384, Sha512};
pub const SHA256_LEN: usize = <Sha256 as OutputSizeUser>::OutputSize::USIZE;
pub const SHA384_LEN: usize = <Sha384 as OutputSizeUser>::OutputSize::USIZE;
pub const SHA512_LEN: usize = <Sha512 as OutputSizeUser>::OutputSize::USIZE;
pub fn SHA256(msg: &[u8], digest: &mut [u8; SHA256_LEN]) {
digest.copy_from_slice(&Sha256::digest(msg))
}
pub fn SHA384(msg: &[u8], digest: &mut [u8; SHA384_LEN]) {
digest.copy_from_slice(&Sha384::digest(msg))
}
pub fn SHA512(msg: &[u8], digest: &mut [u8; SHA512_LEN]) {
digest.copy_from_slice(&Sha512::digest(msg))
}