Revision control

Copy as Markdown

Other Tools

use libcrux_traits::Digest as _;
// XXX: The tests in here are failing in wasm for some reason.
// #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[test]
fn sha256_kat_streaming() {
let mut digest = libcrux_sha2::Sha256::new();
let mut d = [0u8; 32];
digest.update(b"libcrux sha2 256 tests");
digest.finish(&mut d);
let expected = "8683520e19e5b33db33c8fb90918c0c96fcdfd9a17c695ce0f0ea2eaa0c95956";
assert_eq!(hex::encode(d), expected);
}
// #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[test]
fn sha256_kat_oneshot() {
let d = libcrux_sha2::sha256(b"libcrux sha2 256 tests");
let expected = "8683520e19e5b33db33c8fb90918c0c96fcdfd9a17c695ce0f0ea2eaa0c95956";
assert_eq!(hex::encode(d), expected);
}
#[test]
fn shaclone() {
let mut hasher_224 = libcrux_sha2::Sha224::new();
hasher_224.update(b"test 224");
let mut hasher224_2 = hasher_224.clone();
hasher_224.update(b"more 224");
hasher224_2.update(b"more 224");
let mut digest = [0u8; 28];
let mut digest_2 = [0u8; 28];
hasher_224.finish(&mut digest);
hasher224_2.finish(&mut digest_2);
assert_eq!(digest, digest_2);
assert_eq!(digest, libcrux_sha2::sha224(b"test 224more 224"));
let mut hasher_256 = libcrux_sha2::Sha256::new();
hasher_256.update(b"test 256");
let mut hasher256_2 = hasher_256.clone();
hasher_256.update(b"more 256");
hasher256_2.update(b"more 256");
let mut digest = [0u8; 32];
let mut digest_2 = [0u8; 32];
hasher_256.finish(&mut digest);
hasher256_2.finish(&mut digest_2);
assert_eq!(digest, digest_2);
assert_eq!(digest, libcrux_sha2::sha256(b"test 256more 256"));
let mut hasher_384 = libcrux_sha2::Sha384::new();
hasher_384.update(b"test 384");
let mut hasher384_2 = hasher_384.clone();
hasher_384.update(b"more 384");
hasher384_2.update(b"more 384");
let mut digest = [0u8; 48];
let mut digest_2 = [0u8; 48];
hasher_384.finish(&mut digest);
hasher384_2.finish(&mut digest_2);
assert_eq!(digest, digest_2);
assert_eq!(digest, libcrux_sha2::sha384(b"test 384more 384"));
let mut hasher_512 = libcrux_sha2::Sha512::new();
hasher_512.update(b"test 512");
let mut hasher512_2 = hasher_512.clone();
hasher_512.update(b"more 512");
hasher512_2.update(b"more 512");
let mut digest = [0u8; 64];
let mut digest_2 = [0u8; 64];
hasher_512.finish(&mut digest);
hasher512_2.finish(&mut digest_2);
assert_eq!(digest, digest_2);
assert_eq!(digest, libcrux_sha2::sha512(b"test 512more 512"));
}