diff options
| author | Jethro Beekman <[email protected]> | 2015-06-14 21:56:23 -0700 |
|---|---|---|
| committer | Jethro Beekman <[email protected]> | 2015-06-14 21:56:23 -0700 |
| commit | d2d20a83778b7c363322997332bf1ff5deef92d5 (patch) | |
| tree | ee21c906e5c1109f9d590de602a555a9d82fa451 /openssl/src | |
| parent | Pass symmetric crypto initialization vector as a slice (diff) | |
| download | rust-openssl-d2d20a83778b7c363322997332bf1ff5deef92d5.tar.xz rust-openssl-d2d20a83778b7c363322997332bf1ff5deef92d5.zip | |
Use AsRef for backwards compatibility with passing IV as Vec
Diffstat (limited to 'openssl/src')
| -rw-r--r-- | openssl/src/crypto/symm.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/openssl/src/crypto/symm.rs b/openssl/src/crypto/symm.rs index cb3cb55b..a1736804 100644 --- a/openssl/src/crypto/symm.rs +++ b/openssl/src/crypto/symm.rs @@ -1,4 +1,5 @@ use std::iter::repeat; +use std::convert::AsRef; use libc::{c_int}; use ffi; @@ -86,7 +87,7 @@ impl Crypter { /** * Initializes this crypter. */ - pub fn init(&self, mode: Mode, key: &[u8], iv: &[u8]) { + pub fn init<T: AsRef<[u8]>>(&self, mode: Mode, key: &[u8], iv: T) { unsafe { let mode = match mode { Mode::Encrypt => 1 as c_int, @@ -98,7 +99,7 @@ impl Crypter { self.ctx, self.evp, key.as_ptr(), - iv.as_ptr(), + iv.as_ref().as_ptr(), mode ); } @@ -157,7 +158,7 @@ impl Drop for Crypter { * Encrypts data, using the specified crypter type in encrypt mode with the * specified key and iv; returns the resulting (encrypted) data. */ -pub fn encrypt(t: Type, key: &[u8], iv: &[u8], data: &[u8]) -> Vec<u8> { +pub fn encrypt<T: AsRef<[u8]>>(t: Type, key: &[u8], iv: T, data: &[u8]) -> Vec<u8> { let c = Crypter::new(t); c.init(Mode::Encrypt, key, iv); let mut r = c.update(data); @@ -170,7 +171,7 @@ pub fn encrypt(t: Type, key: &[u8], iv: &[u8], data: &[u8]) -> Vec<u8> { * Decrypts data, using the specified crypter type in decrypt mode with the * specified key and iv; returns the resulting (decrypted) data. */ -pub fn decrypt(t: Type, key: &[u8], iv: &[u8], data: &[u8]) -> Vec<u8> { +pub fn decrypt<T: AsRef<[u8]>>(t: Type, key: &[u8], iv: T, data: &[u8]) -> Vec<u8> { let c = Crypter::new(t); c.init(Mode::Decrypt, key, iv); let mut r = c.update(data); |