aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openssl-sys/build.rs7
-rw-r--r--openssl-sys/src/lib.rs3
2 files changed, 9 insertions, 1 deletions
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;