From 6833c6891dedf36d8bce00a3637d6dabc3daa91e Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 6 Apr 2015 03:18:43 -0400 Subject: allow encrypting in ctr mode from a given starting counter --- src/aes.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/aes.rs') diff --git a/src/aes.rs b/src/aes.rs index 19a47cc..ffd40d9 100644 --- a/src/aes.rs +++ b/src/aes.rs @@ -52,10 +52,14 @@ pub fn encrypt_aes_128_cbc (bytes: &[u8], key: &[u8], iv: &[u8]) -> Vec { } pub fn aes_128_ctr (bytes: &[u8], key: &[u8], nonce: u64) -> Vec { + 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 { 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 { -- cgit v1.2.3-54-g00ecf