From 68ec3d56d78e1b9dc9e1ad3d31f23c2d3d8939b6 Mon Sep 17 00:00:00 2001 From: Stefan Strogin Date: Wed, 9 Jan 2019 10:15:08 +0200 Subject: [PATCH] Fix compilation with LibreSSL --- SWIG/_bio.i | 4 ++-- SWIG/_evp.i | 2 +- SWIG/_lib.i | 2 +- SWIG/_lib11_compat.i | 2 +- SWIG/_ssl.i | 4 ++-- SWIG/_threads.i | 10 +++++----- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/SWIG/_bio.i b/SWIG/_bio.i index e85a275..1735b66 100644 --- a/SWIG/_bio.i +++ b/SWIG/_bio.i @@ -293,7 +293,7 @@ int bio_should_write(BIO* a) { } /* Macros for things not defined before 1.1.0 */ -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL) static BIO_METHOD * BIO_meth_new( int type, const char *name ) { @@ -515,7 +515,7 @@ static long pyfd_ctrl(BIO *b, int cmd, long num, void *ptr) { } void pyfd_init(void) { -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if (!defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070000fL) methods_fdp = BIO_meth_new( BIO_get_new_index()|BIO_TYPE_DESCRIPTOR|BIO_TYPE_SOURCE_SINK, "python file descriptor"); diff --git a/SWIG/_evp.i b/SWIG/_evp.i index d04e806..6fa9b38 100644 --- a/SWIG/_evp.i +++ b/SWIG/_evp.i @@ -19,7 +19,7 @@ Copyright (c) 2009-2010 Heikki Toivonen. All rights reserved. #include #include -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL) HMAC_CTX *HMAC_CTX_new(void) { HMAC_CTX *ret = PyMem_Malloc(sizeof(HMAC_CTX)); diff --git a/SWIG/_lib.i b/SWIG/_lib.i index c84b800..807d5f6 100644 --- a/SWIG/_lib.i +++ b/SWIG/_lib.i @@ -512,7 +512,7 @@ int passphrase_callback(char *buf, int num, int v, void *arg) { %inline %{ void lib_init() { -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL) SSLeay_add_all_algorithms(); ERR_load_ERR_strings(); #endif diff --git a/SWIG/_lib11_compat.i b/SWIG/_lib11_compat.i index 1ec42dd..453b424 100644 --- a/SWIG/_lib11_compat.i +++ b/SWIG/_lib11_compat.i @@ -8,7 +8,7 @@ */ %{ -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL) #include #include diff --git a/SWIG/_ssl.i b/SWIG/_ssl.i index 7257656..40b0582 100644 --- a/SWIG/_ssl.i +++ b/SWIG/_ssl.i @@ -27,7 +27,7 @@ typedef unsigned __int64 uint64_t; #endif %} -#if OPENSSL_VERSION_NUMBER >= 0x10100005L +#if (!defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100005L) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070000fL) %include #endif @@ -261,7 +261,7 @@ void ssl_init(PyObject *ssl_err, PyObject *ssl_timeout_err) { } const SSL_METHOD *tlsv1_method(void) { -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if (!defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070000fL) PyErr_WarnEx(PyExc_DeprecationWarning, "Function TLSv1_method has been deprecated.", 1); #endif diff --git a/SWIG/_threads.i b/SWIG/_threads.i index 69adb9f..fd2285a 100644 --- a/SWIG/_threads.i +++ b/SWIG/_threads.i @@ -5,7 +5,7 @@ #include #include -#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L +#if defined(THREADING) && (OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)) #define CRYPTO_num_locks() (CRYPTO_NUM_LOCKS) static PyThread_type_lock lock_cs[CRYPTO_num_locks()]; static long lock_count[CRYPTO_num_locks()]; @@ -13,7 +13,7 @@ static int thread_mode = 0; #endif void threading_locking_callback(int mode, int type, const char *file, int line) { -#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L +#if defined(THREADING) && (OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)) if (mode & CRYPTO_LOCK) { PyThread_acquire_lock(lock_cs[type], WAIT_LOCK); lock_count[type]++; @@ -25,7 +25,7 @@ void threading_locking_callback(int mode, int type, const char *file, int line) } unsigned long threading_id_callback(void) { -#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L +#if defined(THREADING) && (OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)) return (unsigned long)PyThread_get_thread_ident(); #else return (unsigned long)0; @@ -35,7 +35,7 @@ unsigned long threading_id_callback(void) { %inline %{ void threading_init(void) { -#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L +#if defined(THREADING) && (OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)) int i; if (!thread_mode) { for (i=0; i