From c55d410829364d98c42e97e23304a119b3d053ac Mon Sep 17 00:00:00 2001 From: Richard Diamond Date: Sat, 18 Apr 2015 23:03:11 -0500 Subject: [PATCH] Fixes for Native Client. --- openssl-sys/build.rs | 7 ++++++- openssl-sys/src/lib.rs | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/openssl-sys/build.rs b/openssl-sys/build.rs index e0d88309..aadaa361 100644 --- a/openssl-sys/build.rs +++ b/openssl-sys/build.rs @@ -5,6 +5,11 @@ use std::env; use std::path::PathBuf; fn main() { + let target = env::var("TARGET").unwrap(); + + // libressl_pnacl_sys links the libs needed. + if target.ends_with("nacl") { return; } + let lib_dir = env::var("OPENSSL_LIB_DIR").ok(); let include_dir = env::var("OPENSSL_INCLUDE_DIR").ok(); @@ -15,7 +20,7 @@ fn main() { } } - let (libcrypto, libssl) = if env::var("TARGET").unwrap().contains("windows") { + let (libcrypto, libssl) = if target.contains("windows") { ("eay32", "ssl32") } else { ("crypto", "ssl") diff --git a/openssl-sys/src/lib.rs b/openssl-sys/src/lib.rs index 53e06c3a..53f22558 100644 --- a/openssl-sys/src/lib.rs +++ b/openssl-sys/src/lib.rs @@ -439,8 +439,11 @@ extern "C" { pub fn HMAC_CTX_copy(dst: *mut HMAC_CTX, src: *const HMAC_CTX) -> c_int; // Pre-1.0 versions of these didn't return anything, so the shims bridge that gap + #[cfg_attr(target_os = "nacl", link_name = "HMAC_Init_ex")] pub fn HMAC_Init_ex_shim(ctx: *mut HMAC_CTX, key: *const u8, keylen: c_int, md: *const EVP_MD, imple: *const ENGINE) -> c_int; + #[cfg_attr(target_os = "nacl", link_name = "HMAC_Final")] pub fn HMAC_Final_shim(ctx: *mut HMAC_CTX, output: *mut u8, len: *mut c_uint) -> c_int; + #[cfg_attr(target_os = "nacl", link_name = "HMAC_Update")] pub fn HMAC_Update_shim(ctx: *mut HMAC_CTX, input: *const u8, len: c_uint) -> c_int;