Skip to content

Instantly share code, notes, and snippets.

@marcusklaas
Created December 16, 2014 23:51
Show Gist options
  • Save marcusklaas/a0f8e67caa3eb7c54a80 to your computer and use it in GitHub Desktop.
Save marcusklaas/a0f8e67caa3eb7c54a80 to your computer and use it in GitHub Desktop.
aes encryptor with rust_crypto
fn encrypt_block(block: &[u8], key: &[u8]) -> Result<Vec<u8>, SymmetricCipherError> {
let mut encryptor: Box<symmetriccipher::Encryptor> = aes::cbc_encryptor(
aes::KeySize::KeySize256,
key,
&[0, ..16],
PkcsPadding
);
let mut final_result = Vec::<u8>::new();
let mut buffer = [0, ..4096];
let mut read_buffer = buffer::RefReadBuffer::new(block);
let mut write_buffer = buffer::RefWriteBuffer::new(&mut buffer);
while !read_buffer.is_empty() {
try!(encryptor.encrypt(&mut read_buffer, &mut write_buffer, true));
final_result.push_all(write_buffer.take_read_buffer().take_remaining());
}
Ok(final_result)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment