added tests

This commit is contained in:
2026-07-13 23:44:03 -05:00
parent 920f104c2e
commit be860b657a
2 changed files with 253 additions and 0 deletions
+35
View File
@@ -63,4 +63,39 @@ mod tests {
Ok(())
}
#[test]
fn helper_generates_expected_sizes() {
let key = helper::gen_key();
let nonce = helper::gen_nonce();
assert_eq!(key.as_slice().len(), 32);
assert_eq!(nonce.as_slice().len(), 12);
}
#[test]
fn key_from_validates_length() {
let key = helper::key_from(vec![7u8; 32]).expect("expected valid key");
assert_eq!(key.as_slice(), vec![7u8; 32]);
let err = helper::key_from(vec![1u8; 31]).unwrap_err();
assert_eq!(err.to_string(), "key must be exactly 32 bytes");
}
#[test]
fn decrypt_fails_with_wrong_key_or_tampered_ciphertext() {
let key = helper::gen_key();
let other_key = helper::gen_key();
let plaintext = b"secret".to_vec();
let (nonce, mut ciphertext) = encrypt(&key, plaintext.clone()).expect("encrypt");
assert!(decrypt(&other_key, ciphertext.clone(), &nonce).is_err());
if let Some(byte) = ciphertext.get_mut(0) {
*byte ^= 0b1010_1010;
}
assert!(decrypt(&key, ciphertext, &nonce).is_err());
}
}