diff options
| author | Steven Fackler <[email protected]> | 2014-11-16 13:57:05 -0800 |
|---|---|---|
| committer | Steven Fackler <[email protected]> | 2014-11-16 14:01:24 -0800 |
| commit | 5258ce6ece505c6c9b40310bcff0ef55a3073300 (patch) | |
| tree | eab32d5ca0322fb083a1f18d4ad9321ee367d0ff | |
| parent | Merge pull request #96 from coyotebush/xts (diff) | |
| download | rust-openssl-5258ce6ece505c6c9b40310bcff0ef55a3073300.tar.xz rust-openssl-5258ce6ece505c6c9b40310bcff0ef55a3073300.zip | |
Move AES XTS support to a feature
| -rw-r--r-- | .travis.yml | 2 | ||||
| -rw-r--r-- | Cargo.toml | 1 | ||||
| -rw-r--r-- | openssl-sys/Cargo.toml | 1 | ||||
| -rw-r--r--[-rwxr-xr-x] | openssl-sys/src/lib.rs | 2 | ||||
| -rw-r--r-- | src/crypto/hash.rs | 2 | ||||
| -rw-r--r-- | src/crypto/symm.rs | 7 |
6 files changed, 13 insertions, 2 deletions
diff --git a/.travis.yml b/.travis.yml index ccab34c6..831a77d6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,7 @@ before_script: script: - cargo build --features "$FEATURES" - cargo test --features "$FEATURES" - - cargo doc --features "sslv2 tlsv1_1 tlsv1_2" + - cargo doc --features "sslv2 tlsv1_1 tlsv1_2 aes_xtc" after_success: | [ $TRAVIS_BRANCH = master ] && [ $TRAVIS_PULL_REQUEST = false ] && @@ -8,6 +8,7 @@ authors = ["Steven Fackler <[email protected]"] tlsv1_2 = ["openssl-sys/tlsv1_2"] tlsv1_1 = ["openssl-sys/tlsv1_1"] sslv2 = ["openssl-sys/sslv2"] +aes_xts = ["openssl-sys/aes_xts"] [target.i686-apple-darwin.dependencies.openssl-sys] path = "openssl-sys" diff --git a/openssl-sys/Cargo.toml b/openssl-sys/Cargo.toml index 370ec13a..27d8879f 100644 --- a/openssl-sys/Cargo.toml +++ b/openssl-sys/Cargo.toml @@ -10,6 +10,7 @@ build = "src/build.rs" tlsv1_2 = [] tlsv1_1 = [] sslv2 = [] +aes_xts = [] [build-dependencies.pkg-config] git = "https://github.com/alexcrichton/pkg-config-rs" diff --git a/openssl-sys/src/lib.rs b/openssl-sys/src/lib.rs index 8d79b41b..377ae8e5 100755..100644 --- a/openssl-sys/src/lib.rs +++ b/openssl-sys/src/lib.rs @@ -316,11 +316,13 @@ extern "C" { pub fn EVP_aes_128_cbc() -> *const EVP_CIPHER; pub fn EVP_aes_128_ecb() -> *const EVP_CIPHER; + #[cfg(feature = "aes_xts")] pub fn EVP_aes_128_xts() -> *const EVP_CIPHER; // fn EVP_aes_128_ctr() -> EVP_CIPHER; // fn EVP_aes_128_gcm() -> EVP_CIPHER; pub fn EVP_aes_256_cbc() -> *const EVP_CIPHER; pub fn EVP_aes_256_ecb() -> *const EVP_CIPHER; + #[cfg(feature = "aes_xts")] pub fn EVP_aes_256_xts() -> *const EVP_CIPHER; // fn EVP_aes_256_ctr() -> EVP_CIPHER; // fn EVP_aes_256_gcm() -> EVP_CIPHER; diff --git a/src/crypto/hash.rs b/src/crypto/hash.rs index b00dfba8..14dd34b5 100644 --- a/src/crypto/hash.rs +++ b/src/crypto/hash.rs @@ -122,7 +122,7 @@ mod tests { pub fn hash_writer(t: super::HashType, data: &[u8]) -> Vec<u8> { let mut h = super::Hasher::new(t); - h.write(data); + h.write(data).unwrap(); h.finalize() } diff --git a/src/crypto/symm.rs b/src/crypto/symm.rs index 6ad39933..6af4be6c 100644 --- a/src/crypto/symm.rs +++ b/src/crypto/symm.rs @@ -11,12 +11,16 @@ pub enum Mode { pub enum Type { AES_128_ECB, AES_128_CBC, + /// Requires the `aes_xts` feature + #[cfg(feature = "aes_xts")] AES_128_XTS, // AES_128_CTR, //AES_128_GCM, AES_256_ECB, AES_256_CBC, + /// Requires the `aes_xts` feature + #[cfg(feature = "aes_xts")] AES_256_XTS, // AES_256_CTR, //AES_256_GCM, @@ -29,12 +33,14 @@ fn evpc(t: Type) -> (*const ffi::EVP_CIPHER, uint, uint) { match t { AES_128_ECB => (ffi::EVP_aes_128_ecb(), 16u, 16u), AES_128_CBC => (ffi::EVP_aes_128_cbc(), 16u, 16u), + #[cfg(feature = "aes_xts")] AES_128_XTS => (ffi::EVP_aes_128_xts(), 32u, 16u), // AES_128_CTR => (EVP_aes_128_ctr(), 16u, 0u), //AES_128_GCM => (EVP_aes_128_gcm(), 16u, 16u), AES_256_ECB => (ffi::EVP_aes_256_ecb(), 32u, 16u), AES_256_CBC => (ffi::EVP_aes_256_cbc(), 32u, 16u), + #[cfg(feature = "aes_xts")] AES_256_XTS => (ffi::EVP_aes_256_xts(), 64u, 16u), // AES_256_CTR => (EVP_aes_256_ctr(), 32u, 0u), //AES_256_GCM => (EVP_aes_256_gcm(), 32u, 16u), @@ -268,6 +274,7 @@ mod tests { } #[test] + #[cfg(feature = "aes_xts")] fn test_aes256_xts() { // Test case 174 from // http://csrc.nist.gov/groups/STM/cavp/documents/aes/XTSTestVectors.zip |