diff options
author | Jesse Luehrs <doy@tozt.net> | 2015-04-06 03:18:43 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2015-04-06 03:18:43 -0400 |
commit | 6833c6891dedf36d8bce00a3637d6dabc3daa91e (patch) | |
tree | c4a986ebc55e7387dee086e381456ce935f24b84 /src/aes.rs | |
parent | 22416261173457f261328d5f347f04a93e493bf5 (diff) | |
download | matasano-6833c6891dedf36d8bce00a3637d6dabc3daa91e.tar.gz matasano-6833c6891dedf36d8bce00a3637d6dabc3daa91e.zip |
allow encrypting in ctr mode from a given starting counter
Diffstat (limited to 'src/aes.rs')
-rw-r--r-- | src/aes.rs | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -52,10 +52,14 @@ pub fn encrypt_aes_128_cbc (bytes: &[u8], key: &[u8], iv: &[u8]) -> Vec<u8> { } pub fn aes_128_ctr (bytes: &[u8], key: &[u8], nonce: u64) -> Vec<u8> { + aes_128_ctr_with_counter(bytes, key, nonce, 0) +} + +pub fn aes_128_ctr_with_counter (bytes: &[u8], key: &[u8], nonce: u64, counter_start: u64) -> Vec<u8> { let nonce_array: [u8; 8] = unsafe { ::std::mem::transmute(nonce.to_le()) }; - let mut counter = 0u64; + let mut counter = counter_start; let mut ret = vec![]; for block in bytes.chunks(16) { let counter_array: [u8; 8] = unsafe { |