Commit f0db1dbc authored by Steven Fackler's avatar Steven Fackler Committed by GitHub
Browse files

Merge pull request #695 from Keruspe/master

openssl-sys: support libressl 2.6.1
parents 7d41009a b73548da
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -78,9 +78,9 @@ openssl_101: &OPENSSL_101
libressl_250: &LIBRESSL_250
  LIBRARY: libressl
  VERSION: 2.5.0
libressl_260: &LIBRESSL_260
libressl_261: &LIBRESSL_261
  LIBRARY: libressl
  VERSION: 2.6.0
  VERSION: 2.6.1

x86_64: &X86_64
  TARGET: x86_64-unknown-linux-gnu
@@ -139,10 +139,10 @@ jobs:
    <<: *JOB
    environment:
      <<: [*LIBRESSL_250, *X86_64, *BASE]
  x86_64-libressl-2.6.0:
  x86_64-libressl-2.6.1:
    <<: *JOB
    environment:
      <<: [*LIBRESSL_260, *X86_64, *BASE]
      <<: [*LIBRESSL_261, *X86_64, *BASE]
workflows:
  version: 2
  tests:
@@ -157,4 +157,4 @@ workflows:
    - armhf-openssl-1.0.2
    - armhf-openssl-1.0.1
    - x86_64-libressl-2.5.0
    - x86_64-libressl-2.6.0
    - x86_64-libressl-2.6.1
+17 −1
Original line number Diff line number Diff line
@@ -316,8 +316,10 @@ fn validate_headers(include_dirs: &[PathBuf]) -> Version {
#include <openssl/opensslv.h>
#include <openssl/opensslconf.h>

#if LIBRESSL_VERSION_NUMBER >= 0x20601000
#if LIBRESSL_VERSION_NUMBER >= 0x20602000
RUST_LIBRESSL_NEW
#elif LIBRESSL_VERSION_NUMBER >= 0x20601000
RUST_LIBRESSL_261
#elif LIBRESSL_VERSION_NUMBER >= 0x20600000
RUST_LIBRESSL_260
#elif LIBRESSL_VERSION_NUMBER >= 0x20506000
@@ -412,42 +414,56 @@ See rust-openssl README for more information:
        println!("cargo:rustc-cfg=libressl");
        println!("cargo:rustc-cfg=libressl250");
        println!("cargo:libressl=true");
        println!("cargo:libressl_version=250");
        println!("cargo:version=101");
        Version::Libressl
    } else if expanded.contains("RUST_LIBRESSL_251") {
        println!("cargo:rustc-cfg=libressl");
        println!("cargo:rustc-cfg=libressl251");
        println!("cargo:libressl=true");
        println!("cargo:libressl_version=251");
        println!("cargo:version=101");
        Version::Libressl
    } else if expanded.contains("RUST_LIBRESSL_252") {
        println!("cargo:rustc-cfg=libressl");
        println!("cargo:rustc-cfg=libressl252");
        println!("cargo:libressl=true");
        println!("cargo:libressl_version=252");
        println!("cargo:version=101");
        Version::Libressl
    } else if expanded.contains("RUST_LIBRESSL_253") {
        println!("cargo:rustc-cfg=libressl");
        println!("cargo:rustc-cfg=libressl253");
        println!("cargo:libressl=true");
        println!("cargo:libressl_version=253");
        println!("cargo:version=101");
        Version::Libressl
    } else if expanded.contains("RUST_LIBRESSL_254") {
        println!("cargo:rustc-cfg=libressl");
        println!("cargo:rustc-cfg=libressl254");
        println!("cargo:libressl=true");
        println!("cargo:libressl_version=254");
        println!("cargo:version=101");
        Version::Libressl
    } else if expanded.contains("RUST_LIBRESSL_255") {
        println!("cargo:rustc-cfg=libressl");
        println!("cargo:rustc-cfg=libressl255");
        println!("cargo:libressl=true");
        println!("cargo:libressl_version=255");
        println!("cargo:version=101");
        Version::Libressl
    } else if expanded.contains("RUST_LIBRESSL_260") {
        println!("cargo:rustc-cfg=libressl");
        println!("cargo:rustc-cfg=libressl260");
        println!("cargo:libressl=true");
        println!("cargo:libressl_version=250");
        println!("cargo:version=101");
        Version::Libressl
    } else if expanded.contains("RUST_LIBRESSL_261") {
        println!("cargo:rustc-cfg=libressl");
        println!("cargo:rustc-cfg=libressl261");
        println!("cargo:libressl=true");
        println!("cargo:libressl_version=261");
        println!("cargo:version=101");
        Version::Libressl
    } else if expanded.contains("RUST_OPENSSL_110F") {
+6 −1
Original line number Diff line number Diff line
@@ -1250,10 +1250,15 @@ 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(ossl101))]
#[cfg(not(any(libressl261, ossl101)))]
pub const SSL_OP_TLSEXT_PADDING: c_ulong = 0x00000010;
#[cfg(libressl261)]
pub const SSL_OP_TLSEXT_PADDING: c_ulong = 0x0;
pub const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: c_ulong = 0x00000800;
#[cfg(not(libressl261))]
pub const SSL_OP_CRYPTOPRO_TLSEXT_BUG: c_ulong = 0x80000000;
#[cfg(libressl261)]
pub const SSL_OP_CRYPTOPRO_TLSEXT_BUG: c_ulong = 0x0;
pub const SSL_OP_LEGACY_SERVER_CONNECT: c_ulong = 0x00000004;
#[cfg(not(libressl))]
pub const SSL_OP_SAFARI_ECDHE_ECDSA_BUG: c_ulong = 0x00000040;
+6 −0
Original line number Diff line number Diff line
@@ -345,6 +345,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(libressl261)]
pub const SSL_OP_ALL: c_ulong = 0x4;
#[cfg(not(libressl261))]
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;
@@ -357,6 +360,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(libressl261)]
pub const SSL_OP_SINGLE_ECDH_USE: c_ulong = 0x0;
#[cfg(not(libressl261))]
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;
+4 −0
Original line number Diff line number Diff line
@@ -20,6 +20,10 @@ fn main() {
        println!("cargo:rustc-cfg=libressl");
    }

    if let Ok(v) = env::var("DEP_OPENSSL_LIBRESSL_VERSION") {
        println!("cargo:rustc-cfg=libressl{}", v);
    }

    if let Ok(vars) = env::var("DEP_OPENSSL_CONF") {
        for var in vars.split(",") {
            println!("cargo:rustc-cfg=osslconf=\"{}\"", var);
Loading