use metamorphic_crypto::{b64, hash};
const SHA3_512_ABC_B64: &str =
"t1GFCxpXFopWk82SS2sJbgj2IYJ0RPcNiE9dAkDScS4Q4RbpGSrzyRp+xXZH45NAVzQLTPQI1aVlkvgnTuxT8A==";
#[test]
fn sha3_512_native_matches_wasm_base64() {
let digest = hash::sha3_512(b"abc");
assert_eq!(b64::encode(&digest), SHA3_512_ABC_B64);
}
#[test]
fn sha3_256_native_matches_wasm_base64() {
let digest = hash::sha3_256(b"abc");
assert_eq!(
b64::encode(&digest),
"Ophdp0/iJbIEXBcta9OQvYVfCG4+nVJbRr/iRRFDFTI="
);
}
#[test]
fn sha256_native_matches_wasm_base64() {
let digest = hash::sha256(b"abc");
assert_eq!(
b64::encode(&digest),
"ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0="
);
}
#[test]
fn sha512_native_matches_wasm_base64() {
let digest = hash::sha512(b"abc");
assert_eq!(
b64::encode(&digest),
"3a81oZNherrMQXNJriBBMRLm+k6JqX6iCp7u5ktV05ohkpkqJ0/BqDa6PCOj/uu9RU1EI2Q86A4qmslPpUyknw=="
);
}
#[test]
fn distinct_inputs_distinct_digests() {
assert_ne!(hash::sha3_512(b"key-a"), hash::sha3_512(b"key-b"));
}
#[test]
fn sha3_512_with_context_parity_vector() {
let digest = hash::sha3_512_with_context("mosslet/key-fingerprint/v1", b"public key bytes");
assert_eq!(
b64::encode(&digest),
"y/pbnlfUE85DjRUSFYNCJR1B19NFtpK8eJvoO6Ig2tsKOaknFLYbmUg5KWjtaiQn98nBDCI7X2Su8xFT0xQJng=="
);
}