--- a/SWIG/_bio.i +++ b/SWIG/_bio.i @@ -63,14 +63,14 @@ extern BIO *BIO_pop(BIO *); static PyObject *_bio_err; -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) void pyfd_init(void); #endif void bio_init(PyObject *bio_err) { Py_INCREF(bio_err); _bio_err = bio_err; -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) pyfd_init(); #endif } @@ -299,7 +299,7 @@ int bio_should_write(BIO* a) { return BIO_should_write(a); } -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) /* implment custom BIO_s_pyfd */ #ifdef WIN32 --- 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) HMAC_CTX *HMAC_CTX_new(void) { HMAC_CTX *ret = PyMem_Malloc(sizeof(HMAC_CTX)); --- a/SWIG/_lib.i +++ b/SWIG/_lib.i @@ -18,7 +18,7 @@ %{ /* OpenSSL 1.0.2 copmatbility shim */ -#if OPENSSL_VERSION_NUMBER < 0x10002000L +#if OPENSSL_VERSION_NUMBER < 0x10002000L || defined(LIBRESSL_VERSION_NUMBER) typedef void (*OPENSSL_sk_freefunc)(void *); typedef void *(*OPENSSL_sk_copyfunc)(const void *); typedef struct stack_st OPENSSL_STACK; @@ -501,7 +501,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) SSLeay_add_all_algorithms(); ERR_load_ERR_strings(); #endif --- 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 #include --- a/SWIG/_ssl.i +++ b/SWIG/_ssl.i @@ -268,7 +268,7 @@ void ssl_init(PyObject *ssl_err, PyObject *ssl_timeout_err) { #ifndef OPENSSL_NO_SSL3 const SSL_METHOD *sslv3_method(void) { -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) PyErr_WarnEx(PyExc_DeprecationWarning, "Function SSLv3_method has been deprecated.", 1); #endif @@ -277,7 +277,7 @@ const SSL_METHOD *sslv3_method(void) { #endif const SSL_METHOD *tlsv1_method(void) { -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) PyErr_WarnEx(PyExc_DeprecationWarning, "Function TLSv1_method has been deprecated.", 1); #endif --- 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) #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) 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) 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) int i; if (!thread_mode) { for (i=0; i #include