crypto/hashes/
sha.rs

1// Copyright 2020 IOTA Stiftung
2// SPDX-License-Identifier: Apache-2.0
3
4#![allow(non_snake_case)]
5
6use digest::{generic_array::typenum::Unsigned, Digest, OutputSizeUser};
7#[doc(inline)]
8pub use sha2::{Sha256, Sha384, Sha512};
9
10pub const SHA256_LEN: usize = <Sha256 as OutputSizeUser>::OutputSize::USIZE;
11pub const SHA384_LEN: usize = <Sha384 as OutputSizeUser>::OutputSize::USIZE;
12pub const SHA512_LEN: usize = <Sha512 as OutputSizeUser>::OutputSize::USIZE;
13
14pub fn SHA256(msg: &[u8], digest: &mut [u8; SHA256_LEN]) {
15    digest.copy_from_slice(&Sha256::digest(msg))
16}
17
18pub fn SHA384(msg: &[u8], digest: &mut [u8; SHA384_LEN]) {
19    digest.copy_from_slice(&Sha384::digest(msg))
20}
21
22pub fn SHA512(msg: &[u8], digest: &mut [u8; SHA512_LEN]) {
23    digest.copy_from_slice(&Sha512::digest(msg))
24}