aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2016-10-25 21:14:28 -0700
committerGitHub <[email protected]>2016-10-25 21:14:28 -0700
commita5a3f5579893b6a84a89449e419254e5ba39bcf5 (patch)
treeb628a3ecd8912aad51f8a601e1389dd54b64fc6e
parentMerge pull request #490 from sfackler/shutdown (diff)
parentSupport AES GCM (diff)
downloadrust-openssl-a5a3f5579893b6a84a89449e419254e5ba39bcf5.tar.xz
rust-openssl-a5a3f5579893b6a84a89449e419254e5ba39bcf5.zip
Merge pull request #492 from sfackler/gcm
Support AES GCM
-rw-r--r--openssl-sys/src/lib.rs4
-rw-r--r--openssl/src/symm.rs16
2 files changed, 18 insertions, 2 deletions
diff --git a/openssl-sys/src/lib.rs b/openssl-sys/src/lib.rs
index fd5aa469..ac168c48 100644
--- a/openssl-sys/src/lib.rs
+++ b/openssl-sys/src/lib.rs
@@ -1359,7 +1359,7 @@ extern {
pub fn EVP_aes_128_ecb() -> *const EVP_CIPHER;
pub fn EVP_aes_128_xts() -> *const EVP_CIPHER;
pub fn EVP_aes_128_ctr() -> *const EVP_CIPHER;
- // fn EVP_aes_128_gcm() -> EVP_CIPHER;
+ pub fn EVP_aes_128_gcm() -> *const EVP_CIPHER;
pub fn EVP_aes_128_cfb1() -> *const EVP_CIPHER;
pub fn EVP_aes_128_cfb128() -> *const EVP_CIPHER;
pub fn EVP_aes_128_cfb8() -> *const EVP_CIPHER;
@@ -1367,7 +1367,7 @@ extern {
pub fn EVP_aes_256_ecb() -> *const EVP_CIPHER;
pub fn EVP_aes_256_xts() -> *const EVP_CIPHER;
pub fn EVP_aes_256_ctr() -> *const EVP_CIPHER;
- // fn EVP_aes_256_gcm() -> EVP_CIPHER;
+ pub fn EVP_aes_256_gcm() -> *const EVP_CIPHER;
pub fn EVP_aes_256_cfb1() -> *const EVP_CIPHER;
pub fn EVP_aes_256_cfb128() -> *const EVP_CIPHER;
pub fn EVP_aes_256_cfb8() -> *const EVP_CIPHER;
diff --git a/openssl/src/symm.rs b/openssl/src/symm.rs
index 65f0addb..bffe337a 100644
--- a/openssl/src/symm.rs
+++ b/openssl/src/symm.rs
@@ -58,6 +58,12 @@ impl Cipher {
}
}
+ pub fn aes_128_gcm() -> Cipher {
+ unsafe {
+ Cipher(ffi::EVP_aes_128_gcm())
+ }
+ }
+
pub fn aes_256_ecb() -> Cipher {
unsafe {
Cipher(ffi::EVP_aes_256_ecb())
@@ -100,6 +106,12 @@ impl Cipher {
}
}
+ pub fn aes_256_gcm() -> Cipher {
+ unsafe {
+ Cipher(ffi::EVP_aes_256_gcm())
+ }
+ }
+
pub fn des_cbc() -> Cipher {
unsafe {
Cipher(ffi::EVP_des_cbc())
@@ -118,6 +130,10 @@ impl Cipher {
}
}
+ pub unsafe fn from_ptr(ptr: *const ffi::EVP_CIPHER) -> Cipher {
+ Cipher(ptr)
+ }
+
pub fn as_ptr(&self) -> *const ffi::EVP_CIPHER {
self.0
}