From 941a69a4d2e1e650b146d067fe28d17a06bf09d9 Mon Sep 17 00:00:00 2001 From: Ryuichi Okumura Date: Sun, 17 Feb 2019 22:21:01 +0900 Subject: [PATCH 1/2] Add des_ede3_cfb symm cipher --- openssl-sys/src/evp.rs | 1 + openssl/src/symm.rs | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/openssl-sys/src/evp.rs b/openssl-sys/src/evp.rs index 99d46987..7b911276 100644 --- a/openssl-sys/src/evp.rs +++ b/openssl-sys/src/evp.rs @@ -166,6 +166,7 @@ extern "C" { pub fn EVP_des_ecb() -> *const EVP_CIPHER; pub fn EVP_des_ede3() -> *const EVP_CIPHER; pub fn EVP_des_ede3_cbc() -> *const EVP_CIPHER; + pub fn EVP_des_ede3_cfb() -> *const EVP_CIPHER; pub fn EVP_des_cbc() -> *const EVP_CIPHER; pub fn EVP_rc4() -> *const EVP_CIPHER; pub fn EVP_bf_ecb() -> *const EVP_CIPHER; diff --git a/openssl/src/symm.rs b/openssl/src/symm.rs index 9402c12a..82be06b5 100644 --- a/openssl/src/symm.rs +++ b/openssl/src/symm.rs @@ -194,6 +194,10 @@ impl Cipher { unsafe { Cipher(ffi::EVP_des_ede3_cbc()) } } + pub fn des_ede3_cfb() -> Cipher { + unsafe { Cipher(ffi::EVP_des_ede3_cfb()) } + } + pub fn rc4() -> Cipher { unsafe { Cipher(ffi::EVP_rc4()) } } @@ -1055,6 +1059,16 @@ mod tests { cipher_test(super::Cipher::des_ede3_cbc(), pt, ct, key, iv); } + #[test] + fn test_des_ede3_cfb() { + let pt = "2b1773784b5889dc788477367daa98ad"; + let ct = "6f2867cfefda048a4046ef7e556c7132"; + let key = "7cb66337f3d3c0fe7cb66337f3d3c0fe7cb66337f3d3c0fe"; + let iv = "0001020304050607"; + + cipher_test(super::Cipher::des_ede3_cfb(), pt, ct, key, iv); + } + #[test] fn test_aes128_gcm() { let key = "0e00c76561d2bd9b40c3c15427e2b08f"; From 899fc30e9b9084eeb3464107fc0afbbcdb8c933a Mon Sep 17 00:00:00 2001 From: Ryuichi Okumura Date: Mon, 18 Feb 2019 19:35:00 +0900 Subject: [PATCH 2/2] Change from EVP_des_ede3_cfb to EVP_des_ede3_cfb64 --- openssl-sys/src/evp.rs | 2 +- openssl/src/symm.rs | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/openssl-sys/src/evp.rs b/openssl-sys/src/evp.rs index 7b911276..e8276afa 100644 --- a/openssl-sys/src/evp.rs +++ b/openssl-sys/src/evp.rs @@ -166,7 +166,7 @@ extern "C" { pub fn EVP_des_ecb() -> *const EVP_CIPHER; pub fn EVP_des_ede3() -> *const EVP_CIPHER; pub fn EVP_des_ede3_cbc() -> *const EVP_CIPHER; - pub fn EVP_des_ede3_cfb() -> *const EVP_CIPHER; + pub fn EVP_des_ede3_cfb64() -> *const EVP_CIPHER; pub fn EVP_des_cbc() -> *const EVP_CIPHER; pub fn EVP_rc4() -> *const EVP_CIPHER; pub fn EVP_bf_ecb() -> *const EVP_CIPHER; diff --git a/openssl/src/symm.rs b/openssl/src/symm.rs index 82be06b5..955c71cd 100644 --- a/openssl/src/symm.rs +++ b/openssl/src/symm.rs @@ -194,8 +194,8 @@ impl Cipher { unsafe { Cipher(ffi::EVP_des_ede3_cbc()) } } - pub fn des_ede3_cfb() -> Cipher { - unsafe { Cipher(ffi::EVP_des_ede3_cfb()) } + pub fn des_ede3_cfb64() -> Cipher { + unsafe { Cipher(ffi::EVP_des_ede3_cfb64()) } } pub fn rc4() -> Cipher { @@ -1060,13 +1060,13 @@ mod tests { } #[test] - fn test_des_ede3_cfb() { + fn test_des_ede3_cfb64() { let pt = "2b1773784b5889dc788477367daa98ad"; let ct = "6f2867cfefda048a4046ef7e556c7132"; let key = "7cb66337f3d3c0fe7cb66337f3d3c0fe7cb66337f3d3c0fe"; let iv = "0001020304050607"; - cipher_test(super::Cipher::des_ede3_cfb(), pt, ct, key, iv); + cipher_test(super::Cipher::des_ede3_cfb64(), pt, ct, key, iv); } #[test]