- remove dependency on hex-literal crate
- add helper for converting between hex strings and bytes
Change-Id: I073b597cfb1b2687dd7d1743441bdfaaf601810d
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/58225
Reviewed-by: Bob Beck <bbe@google.com>
Commit-Queue: Bob Beck <bbe@google.com>
diff --git a/rust/bssl-crypto/src/aes.rs b/rust/bssl-crypto/src/aes.rs
index c2eb4412..e3ec5bd 100644
--- a/rust/bssl-crypto/src/aes.rs
+++ b/rust/bssl-crypto/src/aes.rs
@@ -123,102 +123,102 @@
#[cfg(test)]
mod tests {
use crate::aes::{Aes, AesDecryptKey, AesEncryptKey};
- use hex_literal::hex;
+ use crate::test_helpers::decode_hex;
// test data from https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf F.1.1
#[test]
fn aes_128_test_encrypt() {
- let key = AesEncryptKey::new_aes_128(hex!("2b7e151628aed2a6abf7158809cf4f3c"));
+ let key = AesEncryptKey::new_aes_128(decode_hex("2b7e151628aed2a6abf7158809cf4f3c"));
let mut block = [0_u8; 16];
- block.copy_from_slice(&hex!("6bc1bee22e409f96e93d7e117393172a"));
+ block.copy_from_slice(&decode_hex::<16>("6bc1bee22e409f96e93d7e117393172a"));
Aes::encrypt(&key, &mut block);
- assert_eq!(hex!("3ad77bb40d7a3660a89ecaf32466ef97"), block);
+ assert_eq!(decode_hex("3ad77bb40d7a3660a89ecaf32466ef97"), block);
- block.copy_from_slice(&hex!("ae2d8a571e03ac9c9eb76fac45af8e51"));
+ block.copy_from_slice(&decode_hex::<16>("ae2d8a571e03ac9c9eb76fac45af8e51"));
Aes::encrypt(&key, &mut block);
- assert_eq!(hex!("f5d3d58503b9699de785895a96fdbaaf"), block);
+ assert_eq!(decode_hex("f5d3d58503b9699de785895a96fdbaaf"), block);
- block.copy_from_slice(&hex!("30c81c46a35ce411e5fbc1191a0a52ef"));
+ block.copy_from_slice(&decode_hex::<16>("30c81c46a35ce411e5fbc1191a0a52ef"));
Aes::encrypt(&key, &mut block);
- assert_eq!(hex!("43b1cd7f598ece23881b00e3ed030688"), block);
+ assert_eq!(decode_hex("43b1cd7f598ece23881b00e3ed030688"), block);
- block.copy_from_slice(&hex!("f69f2445df4f9b17ad2b417be66c3710"));
+ block.copy_from_slice(&decode_hex::<16>("f69f2445df4f9b17ad2b417be66c3710"));
Aes::encrypt(&key, &mut block);
- assert_eq!(hex!("7b0c785e27e8ad3f8223207104725dd4"), block);
+ assert_eq!(decode_hex("7b0c785e27e8ad3f8223207104725dd4"), block);
}
// test data from https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf F.1.2
#[test]
fn aes_128_test_decrypt() {
- let key = AesDecryptKey::new_aes_128(hex!("2b7e151628aed2a6abf7158809cf4f3c"));
+ let key = AesDecryptKey::new_aes_128(decode_hex("2b7e151628aed2a6abf7158809cf4f3c"));
let mut block = [0_u8; 16];
- block.copy_from_slice(&hex!("3ad77bb40d7a3660a89ecaf32466ef97"));
+ block.copy_from_slice(&decode_hex::<16>("3ad77bb40d7a3660a89ecaf32466ef97"));
Aes::decrypt(&key, &mut block);
- assert_eq!(hex!("6bc1bee22e409f96e93d7e117393172a"), block);
+ assert_eq!(decode_hex::<16>("6bc1bee22e409f96e93d7e117393172a"), block);
- block.copy_from_slice(&hex!("f5d3d58503b9699de785895a96fdbaaf"));
+ block.copy_from_slice(&decode_hex::<16>("f5d3d58503b9699de785895a96fdbaaf"));
Aes::decrypt(&key, &mut block);
- assert_eq!(hex!("ae2d8a571e03ac9c9eb76fac45af8e51"), block);
+ assert_eq!(decode_hex::<16>("ae2d8a571e03ac9c9eb76fac45af8e51"), block);
- block.copy_from_slice(&hex!("43b1cd7f598ece23881b00e3ed030688"));
+ block.copy_from_slice(&decode_hex::<16>("43b1cd7f598ece23881b00e3ed030688"));
Aes::decrypt(&key, &mut block);
- assert_eq!(hex!("30c81c46a35ce411e5fbc1191a0a52ef"), block);
+ assert_eq!(decode_hex::<16>("30c81c46a35ce411e5fbc1191a0a52ef"), block);
- block.copy_from_slice(&hex!("7b0c785e27e8ad3f8223207104725dd4"));
+ block.copy_from_slice(&decode_hex::<16>("7b0c785e27e8ad3f8223207104725dd4").as_slice());
Aes::decrypt(&key, &mut block);
- assert_eq!(hex!("f69f2445df4f9b17ad2b417be66c3710"), block);
+ assert_eq!(decode_hex::<16>("f69f2445df4f9b17ad2b417be66c3710"), block);
}
// test data from https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf F.1.5
#[test]
pub fn aes_256_test_encrypt() {
- let key = AesEncryptKey::new_aes_256(hex!(
- "603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4"
+ let key = AesEncryptKey::new_aes_256(decode_hex(
+ "603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4",
));
let mut block: [u8; 16];
- block = hex!("6bc1bee22e409f96e93d7e117393172a");
+ block = decode_hex("6bc1bee22e409f96e93d7e117393172a");
Aes::encrypt(&key, &mut block);
- assert_eq!(hex!("f3eed1bdb5d2a03c064b5a7e3db181f8"), block);
+ assert_eq!(decode_hex("f3eed1bdb5d2a03c064b5a7e3db181f8"), block);
- block = hex!("ae2d8a571e03ac9c9eb76fac45af8e51");
+ block = decode_hex("ae2d8a571e03ac9c9eb76fac45af8e51");
Aes::encrypt(&key, &mut block);
- assert_eq!(hex!("591ccb10d410ed26dc5ba74a31362870"), block);
+ assert_eq!(decode_hex("591ccb10d410ed26dc5ba74a31362870"), block);
- block = hex!("30c81c46a35ce411e5fbc1191a0a52ef");
+ block = decode_hex("30c81c46a35ce411e5fbc1191a0a52ef");
Aes::encrypt(&key, &mut block);
- assert_eq!(hex!("b6ed21b99ca6f4f9f153e7b1beafed1d"), block);
+ assert_eq!(decode_hex("b6ed21b99ca6f4f9f153e7b1beafed1d"), block);
- block = hex!("f69f2445df4f9b17ad2b417be66c3710");
+ block = decode_hex("f69f2445df4f9b17ad2b417be66c3710");
Aes::encrypt(&key, &mut block);
- assert_eq!(hex!("23304b7a39f9f3ff067d8d8f9e24ecc7"), block);
+ assert_eq!(decode_hex("23304b7a39f9f3ff067d8d8f9e24ecc7"), block);
}
// test data from https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf F.1.6
#[test]
fn aes_256_test_decrypt() {
- let key = AesDecryptKey::new_aes_256(hex!(
- "603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4"
+ let key = AesDecryptKey::new_aes_256(decode_hex(
+ "603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4",
));
let mut block: [u8; 16];
- block = hex!("f3eed1bdb5d2a03c064b5a7e3db181f8");
+ block = decode_hex("f3eed1bdb5d2a03c064b5a7e3db181f8");
Aes::decrypt(&key, &mut block);
- assert_eq!(hex!("6bc1bee22e409f96e93d7e117393172a"), block);
+ assert_eq!(decode_hex("6bc1bee22e409f96e93d7e117393172a"), block);
- block = hex!("591ccb10d410ed26dc5ba74a31362870");
+ block = decode_hex("591ccb10d410ed26dc5ba74a31362870");
Aes::decrypt(&key, &mut block);
- assert_eq!(hex!("ae2d8a571e03ac9c9eb76fac45af8e51"), block);
+ assert_eq!(decode_hex("ae2d8a571e03ac9c9eb76fac45af8e51"), block);
- block = hex!("b6ed21b99ca6f4f9f153e7b1beafed1d");
+ block = decode_hex("b6ed21b99ca6f4f9f153e7b1beafed1d");
Aes::decrypt(&key, &mut block);
- assert_eq!(hex!("30c81c46a35ce411e5fbc1191a0a52ef"), block);
+ assert_eq!(decode_hex("30c81c46a35ce411e5fbc1191a0a52ef"), block);
- block = hex!("23304b7a39f9f3ff067d8d8f9e24ecc7");
+ block = decode_hex("23304b7a39f9f3ff067d8d8f9e24ecc7");
Aes::decrypt(&key, &mut block);
- assert_eq!(hex!("f69f2445df4f9b17ad2b417be66c3710"), block);
+ assert_eq!(decode_hex("f69f2445df4f9b17ad2b417be66c3710"), block);
}
}