From fa56170c7adf5f124a48cf1074390adfc697272c Mon Sep 17 00:00:00 2001
From: Stefan Strogin <stefan.strogin@gmail.com>
Date: Wed, 9 Jan 2019 10:15:08 +0200
Subject: [PATCH] Fix compilation with LibreSSL

---
 SWIG/_bio.i           |  8 +++++---
 SWIG/_evp.i           |  2 +-
 SWIG/_lib.i           |  2 +-
 SWIG/_lib11_compat.i  |  5 ++++-
 SWIG/_m2crypto_wrap.c | 11 ++++++++---
 SWIG/_ssl.i           |  4 ++--
 SWIG/_threads.i       | 10 +++++-----
 7 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/SWIG/_bio.i b/SWIG/_bio.i
index e85a275..8eada82 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 )
 {
@@ -325,11 +325,13 @@ BIO_meth_free( BIO_METHOD *meth )
 #define BIO_set_shutdown(b, x) (b)->shutdown = x
 #define BIO_get_shutdown(b) (b)->shutdown
 #define BIO_set_init(b, x)    b->init = x
-#define BIO_get_init(b) (b)->init
 #define BIO_set_data(b, x)    b->ptr = x
 #define BIO_clear_flags(b, x)    b->flags &= ~(x)
 #define BIO_get_data(b)    b->ptr
 #endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+#define BIO_get_init(b) (b)->init
+#endif
 
 /* implment custom BIO_s_pyfd */
 
@@ -515,7 +517,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 <openssl/rsa.h>
 #include <openssl/opensslv.h>
 
-#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..4234004 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)
 
 #include <string.h>
 #include <openssl/engine.h>
@@ -24,6 +24,9 @@ static void *CRYPTO_zalloc(size_t num, const char *file, int line)
       return ret;
 }
 
+#endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)
+
 #include <openssl/bn.h>
 
 #ifndef BN_F_BN_GENCB_NEW
diff --git a/SWIG/_m2crypto_wrap.c b/SWIG/_m2crypto_wrap.c
index 0f07702..f168822 100644
--- a/SWIG/_m2crypto_wrap.c
+++ b/SWIG/_m2crypto_wrap.c
@@ -3838,7 +3838,7 @@ void threading_cleanup(void) {
 #include <ceval.h>
 
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
 
 #include <string.h>
 #include <openssl/engine.h>
@@ -3854,6 +3854,9 @@ static void *CRYPTO_zalloc(size_t num, const char *file, int line)
       return ret;
 }
 
+#endif
+#ifdef OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)
+
 #include <openssl/bn.h>
 
 #ifndef BN_F_BN_GENCB_NEW
@@ -5315,7 +5318,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 )
 {
@@ -5347,11 +5350,13 @@ BIO_meth_free( BIO_METHOD *meth )
 #define BIO_set_shutdown(b, x) (b)->shutdown = x
 #define BIO_get_shutdown(b) (b)->shutdown
 #define BIO_set_init(b, x)    b->init = x
-#define BIO_get_init(b) (b)->init
 #define BIO_set_data(b, x)    b->ptr = x
 #define BIO_clear_flags(b, x)    b->flags &= ~(x)
 #define BIO_get_data(b)    b->ptr
 #endif
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+#define BIO_get_init(b) (b)->init
+#endif
 
 /* implment custom BIO_s_pyfd */
 
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 <openssl/safestack.h>
 #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 <pythread.h>
 #include <openssl/crypto.h>
 
-#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<CRYPTO_num_locks(); i++) {
@@ -50,7 +50,7 @@ void threading_init(void) {
 }
 
 void threading_cleanup(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) {
         CRYPTO_set_locking_callback(NULL);
-- 
2.20.1

