]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
4340. [port] Fix LibreSSL compatibility. [RT #40977]
authorMark Andrews <marka@isc.org>
Sun, 18 Oct 2015 23:43:58 +0000 (10:43 +1100)
committerMark Andrews <marka@isc.org>
Sun, 18 Oct 2015 23:43:58 +0000 (10:43 +1100)
CHANGES
lib/dns/dst_openssl.h
lib/dns/openssl_link.c
lib/dns/openssldh_link.c
lib/dns/openssldsa_link.c
lib/dns/opensslrsa_link.c

diff --git a/CHANGES b/CHANGES
index 74c8d44e2679d1cd24b96ad7e7d7f379693f440b..376e91c39e4e507003277b44d7652530fd309460 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,5 @@
+4340.  [port]          Fix LibreSSL compatibility. [RT #40977]
+
 4239.  [func]          Changed default servfail-ttl value to 1 second from 10.
                        Also, the maximum value is now 30 instead of 300. [RT #37556]
 
index dd6740586d8a5496ad0795d445217996bb7bd78d..12f8bfcd67940d07b8c2b96afbc7aa209b03ba44 100644 (file)
@@ -36,7 +36,7 @@
 #define USE_ENGINE 1
 #endif
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
 /*
  * These are new in OpenSSL 1.1.0.  BN_GENCB _cb needs to be declared in
  * the function like this before the BN_GENCB_new call:
index 8683bee4d60e4209f561ecf57b6c8600bcfd2667..6a52b31edda804492964a465b00eb3ff1a11f91c 100644 (file)
@@ -88,7 +88,7 @@ entropy_getpseudo(unsigned char *buf, int num) {
        return (result == ISC_R_SUCCESS ? 1 : -1);
 }
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
 static void
 entropy_add(const void *buf, int num, double entropy) {
        /*
@@ -121,7 +121,7 @@ lock_callback(int mode, int type, const char *file, int line) {
                UNLOCK(&locks[type]);
 }
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
 static unsigned long
 id_callback(void) {
        return ((unsigned long)isc_thread_self());
@@ -187,7 +187,7 @@ dst__openssl_init(const char *engine) {
        if (result != ISC_R_SUCCESS)
                goto cleanup_mutexalloc;
        CRYPTO_set_locking_callback(lock_callback);
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
        CRYPTO_set_id_callback(id_callback);
 #endif
 
@@ -287,7 +287,7 @@ dst__openssl_destroy(void) {
        CRYPTO_cleanup_all_ex_data();
 #endif
        ERR_clear_error();
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
        ERR_remove_state(0);
 #endif
        ERR_free_strings();
index 9f422198064153451f12b85402b0794712bd3819..67fbf695dd5a61d42e83308739a4a2827a0f4053 100644 (file)
@@ -173,7 +173,7 @@ openssldh_generate(dst_key_t *key, int generator, void (*callback)(int)) {
        DH *dh = NULL;
 #if OPENSSL_VERSION_NUMBER > 0x00908000L
        BN_GENCB *cb;
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
        BN_GENCB _cb;
 #endif
        union {
@@ -210,7 +210,7 @@ openssldh_generate(dst_key_t *key, int generator, void (*callback)(int)) {
                if (dh == NULL)
                        return (dst__openssl_toresult(ISC_R_NOMEMORY));
                cb = BN_GENCB_new();
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
                if (cb == NULL) {
                        DH_free(dh);
                        return (dst__openssl_toresult(ISC_R_NOMEMORY));
index 963e2f508e416d789a983d95a3613eeb3c1017c8..d47b265f15700f2bea691ceabdf8989fdf4cf603 100644 (file)
@@ -359,7 +359,7 @@ openssldsa_generate(dst_key_t *key, int unused, void (*callback)(int)) {
        isc_result_t result;
 #if OPENSSL_VERSION_NUMBER > 0x00908000L
        BN_GENCB *cb;
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
        BN_GENCB _cb;
 #endif
        union {
@@ -383,7 +383,7 @@ openssldsa_generate(dst_key_t *key, int unused, void (*callback)(int)) {
        if (dsa == NULL)
                return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
        cb = BN_GENCB_new();
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
        if (cb == NULL) {
                DSA_free(dsa);
                return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
index 94aced2708fb1ff0536427f4ac1d82d93df25aff..d799be0a1380d81fecbb26e96abd2151cf58c5a8 100644 (file)
@@ -771,7 +771,7 @@ opensslrsa_generate(dst_key_t *key, int exp, void (*callback)(int)) {
        } u;
        RSA *rsa = RSA_new();
        BIGNUM *e = BN_new();
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
        BN_GENCB _cb;
 #endif
        BN_GENCB *cb = BN_GENCB_new();