Commit 23ca9d28 authored by Ossi Herrala's avatar Ossi Herrala
Browse files

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.
parent e423da2d
Loading
Loading
Loading
Loading
+21 −3
Original line number Diff line number Diff line
@@ -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.

"
+4 −4
Original line number Diff line number Diff line
@@ -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))]
+4 −4
Original line number Diff line number Diff line
@@ -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;