aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssi Herrala <[email protected]>2018-03-31 20:14:24 +0000
committerOssi Herrala <[email protected]>2018-03-31 20:14:24 +0000
commit23ca9d2832ff54bc2067f99473802a3fbead0f3f (patch)
tree621e9dde1f9299e39887a6c179d6ff8d5950e124
parentMerge pull request #858 from Ralith/stateless-api (diff)
downloadrust-openssl-23ca9d2832ff54bc2067f99473802a3fbead0f3f.tar.xz
rust-openssl-23ca9d2832ff54bc2067f99473802a3fbead0f3f.zip
Add support for LibreSSL 2.7.1
While there, support also future LibreSSL 2.7 versions out of the box. This fixes compiling this crate in OpenBSD -current.
-rw-r--r--openssl-sys/build.rs24
-rw-r--r--openssl-sys/src/lib.rs8
-rw-r--r--openssl-sys/src/libressl/mod.rs8
3 files changed, 29 insertions, 11 deletions
diff --git a/openssl-sys/build.rs b/openssl-sys/build.rs
index 3f0f934e..d94261a2 100644
--- a/openssl-sys/build.rs
+++ b/openssl-sys/build.rs
@@ -323,8 +323,12 @@ fn validate_headers(include_dirs: &[PathBuf]) -> Version {
#include <openssl/opensslv.h>
#include <openssl/opensslconf.h>
-#if LIBRESSL_VERSION_NUMBER >= 0x20701000
+#if LIBRESSL_VERSION_NUMBER >= 0x20800000
RUST_LIBRESSL_NEW
+#elif LIBRESSL_VERSION_NUMBER >= 0x20702000
+RUST_LIBRESSL_27X
+#elif LIBRESSL_VERSION_NUMBER >= 0x20701000
+RUST_LIBRESSL_271
#elif LIBRESSL_VERSION_NUMBER >= 0x20700000
RUST_LIBRESSL_270
#elif LIBRESSL_VERSION_NUMBER >= 0x20603000
@@ -477,11 +481,25 @@ See rust-openssl README for more information:
Version::Libressl
} else if expanded.contains("RUST_LIBRESSL_270") {
println!("cargo:rustc-cfg=libressl");
- println!("cargo:rustc-cfg=libressl270");
+ println!("cargo:rustc-cfg=libressl27");
println!("cargo:libressl=true");
println!("cargo:libressl_version=270");
println!("cargo:version=101");
Version::Libressl
+ } else if expanded.contains("RUST_LIBRESSL_271") {
+ println!("cargo:rustc-cfg=libressl");
+ println!("cargo:rustc-cfg=libressl27");
+ println!("cargo:libressl=true");
+ println!("cargo:libressl_version=271");
+ println!("cargo:version=101");
+ Version::Libressl
+ } else if expanded.contains("RUST_LIBRESSL_27X") {
+ println!("cargo:rustc-cfg=libressl");
+ println!("cargo:rustc-cfg=libressl27");
+ println!("cargo:libressl=true");
+ println!("cargo:libressl_version=27x");
+ println!("cargo:version=101");
+ Version::Libressl
} else if expanded.contains("RUST_OPENSSL_111") {
println!("cargo:rustc-cfg=ossl111");
println!("cargo:rustc-cfg=ossl110");
@@ -510,7 +528,7 @@ See rust-openssl README for more information:
"
This crate is only compatible with OpenSSL 1.0.1 through 1.1.1, or LibreSSL 2.5
-and 2.6, but a different version of OpenSSL was found. The build is now aborting
+through 2.7, but a different version of OpenSSL was found. The build is now aborting
due to this version mismatch.
"
diff --git a/openssl-sys/src/lib.rs b/openssl-sys/src/lib.rs
index d67d3740..85527f8f 100644
--- a/openssl-sys/src/lib.rs
+++ b/openssl-sys/src/lib.rs
@@ -1277,14 +1277,14 @@ pub const SSL_VERIFY_NONE: c_int = 0;
pub const SSL_VERIFY_PEER: c_int = 1;
pub const SSL_VERIFY_FAIL_IF_NO_PEER_CERT: c_int = 2;
-#[cfg(not(any(libressl261, libressl262, libressl26x, libressl270, ossl101)))]
+#[cfg(not(any(libressl261, libressl262, libressl26x, libressl27, ossl101)))]
pub const SSL_OP_TLSEXT_PADDING: c_ulong = 0x00000010;
-#[cfg(any(libressl261, libressl262, libressl26x, libressl270))]
+#[cfg(any(libressl261, libressl262, libressl26x, libressl27))]
pub const SSL_OP_TLSEXT_PADDING: c_ulong = 0x0;
pub const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: c_ulong = 0x00000800;
-#[cfg(not(any(libressl261, libressl262, libressl26x, libressl270)))]
+#[cfg(not(any(libressl261, libressl262, libressl26x, libressl27)))]
pub const SSL_OP_CRYPTOPRO_TLSEXT_BUG: c_ulong = 0x80000000;
-#[cfg(any(libressl261, libressl262, libressl26x, libressl270))]
+#[cfg(any(libressl261, libressl262, libressl26x, libressl27))]
pub const SSL_OP_CRYPTOPRO_TLSEXT_BUG: c_ulong = 0x0;
pub const SSL_OP_LEGACY_SERVER_CONNECT: c_ulong = 0x00000004;
#[cfg(not(libressl))]
diff --git a/openssl-sys/src/libressl/mod.rs b/openssl-sys/src/libressl/mod.rs
index 0bc8cccc..0bcf83e1 100644
--- a/openssl-sys/src/libressl/mod.rs
+++ b/openssl-sys/src/libressl/mod.rs
@@ -337,9 +337,9 @@ pub const SSL_CTRL_OPTIONS: c_int = 32;
pub const SSL_CTRL_CLEAR_OPTIONS: c_int = 77;
pub const SSL_CTRL_SET_ECDH_AUTO: c_int = 94;
-#[cfg(any(libressl261, libressl262, libressl26x, libressl270))]
+#[cfg(any(libressl261, libressl262, libressl26x, libressl27))]
pub const SSL_OP_ALL: c_ulong = 0x4;
-#[cfg(not(any(libressl261, libressl262, libressl26x, libressl270)))]
+#[cfg(not(any(libressl261, libressl262, libressl26x, libressl27)))]
pub const SSL_OP_ALL: c_ulong = 0x80000014;
pub const SSL_OP_CISCO_ANYCONNECT: c_ulong = 0x0;
pub const SSL_OP_NO_COMPRESSION: c_ulong = 0x0;
@@ -352,9 +352,9 @@ pub const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: c_ulong = 0x0;
pub const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: c_ulong = 0x0;
pub const SSL_OP_TLS_D5_BUG: c_ulong = 0x0;
pub const SSL_OP_TLS_BLOCK_PADDING_BUG: c_ulong = 0x0;
-#[cfg(any(libressl261, libressl262, libressl26x, libressl270))]
+#[cfg(any(libressl261, libressl262, libressl26x, libressl27))]
pub const SSL_OP_SINGLE_ECDH_USE: c_ulong = 0x0;
-#[cfg(not(any(libressl261, libressl262, libressl26x, libressl270)))]
+#[cfg(not(any(libressl261, libressl262, libressl26x, libressl27)))]
pub const SSL_OP_SINGLE_ECDH_USE: c_ulong = 0x00080000;
pub const SSL_OP_SINGLE_DH_USE: c_ulong = 0x00100000;
pub const SSL_OP_NO_SSLv2: c_ulong = 0x0;