From b71b0e7c8ed21724ff27ae8a2a2762d15c4f87ba Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sat, 2 Sep 2023 01:10:48 +0800 Subject: [PATCH] feat: update tests --- src/crypto.rs | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/crypto.rs b/src/crypto.rs index 73cba0e..d9ce51f 100644 --- a/src/crypto.rs +++ b/src/crypto.rs @@ -1,3 +1,5 @@ +use aes_gcm_stream::Aes256GcmStreamDecryptor; + #[test] fn test_aes_gcm_01() { use aes_gcm_stream::Aes256GcmStreamEncryptor; @@ -32,8 +34,7 @@ fn test_aes_gcm_01() { #[test] fn test_aes_gcm_02() { - use aes_gcm::{Aes256Gcm, Key, KeyInit, Nonce}; - use aes_gcm::aead::{Aead}; + use aes_gcm_stream::Aes256GcmStreamDecryptor; let data_key = hex::decode("aa01020304050607080910111213141516171819202122232425262728293031").unwrap(); let nonce = hex::decode("aa0102030405060708091011").unwrap(); @@ -44,17 +45,19 @@ fn test_aes_gcm_02() { let plain_text2 = hex::encode("This is a test message.".as_bytes()); let encrypted_text2 = hex::decode("5ebb20cdf5828e1e533ae1043ce6703cfa51574a83a069700aedefdbe2c735b01b74da214cba4a").unwrap(); - - let key = Key::::from_slice(&data_key); - let nonce = Nonce::from_slice(&nonce); + let key256: [u8; 32] = data_key.as_slice().try_into().unwrap(); { - let mut aes256_gcm = Aes256Gcm::new(&key); - let plain_text = aes256_gcm.decrypt(&nonce, encrypted_text1.as_slice()).unwrap(); + let mut decryptor = Aes256GcmStreamDecryptor::new(key256.clone(), &nonce); + let mut plain_text = decryptor.update(encrypted_text1.as_slice()); + let last_block = decryptor.finalize().unwrap(); + plain_text.extend_from_slice(&last_block); assert_eq!(plain_text1, hex::encode(&plain_text)); } { - let mut aes256_gcm = Aes256Gcm::new(&key); - let plain_text = aes256_gcm.decrypt(&nonce, encrypted_text2.as_slice()).unwrap(); + let mut decryptor = Aes256GcmStreamDecryptor::new(key256.clone(), &nonce); + let mut plain_text = decryptor.update(encrypted_text2.as_slice()); + let last_block = decryptor.finalize().unwrap(); + plain_text.extend_from_slice(&last_block); assert_eq!(plain_text2, hex::encode(&plain_text)); } } \ No newline at end of file