aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2015-11-11 22:35:11 -0800
committerSteven Fackler <[email protected]>2015-11-16 20:16:01 -0800
commitf36f610d079df6053bedec8b00d7c3bdb376815d (patch)
treef8f0ae1adab41bc57b4c9d7624f02d6547ac815f
parentSplit stuff requiring a shim out to a separate crate (diff)
downloadrust-openssl-f36f610d079df6053bedec8b00d7c3bdb376815d.tar.xz
rust-openssl-f36f610d079df6053bedec8b00d7c3bdb376815d.zip
Move HMAC_CTX_copy to sys-extras
-rw-r--r--openssl-sys-extras/src/lib.rs3
-rw-r--r--openssl-sys/src/lib.rs1
-rw-r--r--openssl/src/crypto/hmac.rs2
3 files changed, 4 insertions, 2 deletions
diff --git a/openssl-sys-extras/src/lib.rs b/openssl-sys-extras/src/lib.rs
index c602c514..bd3598eb 100644
--- a/openssl-sys-extras/src/lib.rs
+++ b/openssl-sys-extras/src/lib.rs
@@ -38,6 +38,9 @@ extern {
#[cfg_attr(not(target_os = "nacl"), link_name = "HMAC_Update_shim")]
pub fn HMAC_Update(ctx: *mut HMAC_CTX, input: *const u8, len: c_uint) -> c_int;
+ // This isn't defined in < 1.0 so we copy the implementation there
+ pub fn HMAC_CTX_copy(dst: *mut HMAC_CTX, src: *const HMAC_CTX) -> c_int;
+
// These functions are defined in OpenSSL as macros, so we shim them
#[link_name = "BIO_eof_shim"]
pub fn BIO_eof(b: *mut BIO) -> c_int;
diff --git a/openssl-sys/src/lib.rs b/openssl-sys/src/lib.rs
index e0964d84..674b303f 100644
--- a/openssl-sys/src/lib.rs
+++ b/openssl-sys/src/lib.rs
@@ -454,7 +454,6 @@ extern "C" {
pub fn HMAC_CTX_init(ctx: *mut HMAC_CTX);
pub fn HMAC_CTX_cleanup(ctx: *mut HMAC_CTX);
- pub fn HMAC_CTX_copy(dst: *mut HMAC_CTX, src: *const HMAC_CTX) -> c_int;
pub fn PEM_read_bio_DHparams(bio: *mut BIO, out: *mut *mut DH, callback: Option<PasswordCallback>,
user_data: *mut c_void) -> *mut DH;
diff --git a/openssl/src/crypto/hmac.rs b/openssl/src/crypto/hmac.rs
index 474cbc8a..2c329c1b 100644
--- a/openssl/src/crypto/hmac.rs
+++ b/openssl/src/crypto/hmac.rs
@@ -170,7 +170,7 @@ impl Clone for HMAC {
let mut ctx: ffi::HMAC_CTX;
unsafe {
ctx = ::std::mem::uninitialized();
- let r = ffi::HMAC_CTX_copy(&mut ctx, &self.ctx);
+ let r = ffi_extras::HMAC_CTX_copy(&mut ctx, &self.ctx);
assert_eq!(r, 1);
}
HMAC { ctx: ctx, type_: self.type_, state: self.state }