|
| 1 | +From 28b8075400c70b2d2da2ce07e590c2ec6d11783d Mon Sep 17 00:00:00 2001 |
| 2 | +From: Bernard Spil <brnrd@FreeBSD.org> |
| 3 | +Date: Mon, 2 Apr 2018 13:18:27 +0200 |
| 4 | +Subject: [PATCH] Fix build with LibreSSL 2.7 |
| 5 | + |
| 6 | +LibreSSL 2.7 implements OpenSSL 1.1 API except for BIO_get_init() |
| 7 | + |
| 8 | +See also: https://bugs.freebsd.org/226900 |
| 9 | +Signed-off-by: Bernard Spil <brnrd@FreeBSD.org> |
| 10 | +Closes: #617 (cherry-pick) |
| 11 | +--- openssl-compat.h.orig 2017-01-25 23:37:15 UTC |
| 12 | ++++ openssl-compat.h |
| 13 | +@@ -1,7 +1,8 @@ |
| 14 | + #ifndef OPENSSL_COMPAT_H |
| 15 | + #define OPENSSL_COMPAT_H |
| 16 | + |
| 17 | +-#if OPENSSL_VERSION_NUMBER < 0x10100000L |
| 18 | ++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || \ |
| 19 | ++ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L) |
| 20 | + |
| 21 | + static inline BIO_METHOD *BIO_meth_new(int type, const char *name) |
| 22 | + { |
| 23 | +@@ -30,6 +31,11 @@ static inline BIO_METHOD *BIO_meth_new(i |
| 24 | + |
| 25 | + #define TLS_method SSLv23_method |
| 26 | + |
| 27 | +-#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ |
| 28 | ++#endif /* (OPENSSL_VERSION_NUMBER < 0x10100000L) || \ |
| 29 | ++ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L) */ |
| 30 | ++ |
| 31 | ++#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x20700000L |
| 32 | ++#define BIO_get_init(b) (b)->init |
| 33 | ++#endif |
| 34 | + |
| 35 | + #endif /* OPENSSL_COMPAT_H */ |
| 36 | +--- sample/https-client.c.orig 2017-01-25 23:37:15 UTC |
| 37 | ++++ sample/https-client.c |
| 38 | +@@ -312,7 +312,8 @@ main(int argc, char **argv) |
| 39 | + } |
| 40 | + uri[sizeof(uri) - 1] = '\0'; |
| 41 | + |
| 42 | +-#if OPENSSL_VERSION_NUMBER < 0x10100000L |
| 43 | ++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || \ |
| 44 | ++ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L) |
| 45 | + // Initialize OpenSSL |
| 46 | + SSL_library_init(); |
| 47 | + ERR_load_crypto_strings(); |
| 48 | +@@ -480,7 +481,8 @@ cleanup: |
| 49 | + SSL_CTX_free(ssl_ctx); |
| 50 | + if (type == HTTP && ssl) |
| 51 | + SSL_free(ssl); |
| 52 | +-#if OPENSSL_VERSION_NUMBER < 0x10100000L |
| 53 | ++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || \ |
| 54 | ++ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L) |
| 55 | + EVP_cleanup(); |
| 56 | + ERR_free_strings(); |
| 57 | + |
| 58 | +@@ -492,7 +494,8 @@ cleanup: |
| 59 | + CRYPTO_cleanup_all_ex_data(); |
| 60 | + |
| 61 | + sk_SSL_COMP_free(SSL_COMP_get_compression_methods()); |
| 62 | +-#endif /*OPENSSL_VERSION_NUMBER < 0x10100000L */ |
| 63 | ++#endif /* (OPENSSL_VERSION_NUMBER < 0x10100000L) || \ |
| 64 | ++ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L) */ |
| 65 | + |
| 66 | + #ifdef _WIN32 |
| 67 | + WSACleanup(); |
| 68 | +--- sample/le-proxy.c.orig 2017-01-25 23:37:15 UTC |
| 69 | ++++ sample/le-proxy.c |
| 70 | +@@ -259,7 +259,8 @@ main(int argc, char **argv) |
| 71 | + |
| 72 | + if (use_ssl) { |
| 73 | + int r; |
| 74 | +-#if OPENSSL_VERSION_NUMBER < 0x10100000L |
| 75 | ++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || \ |
| 76 | ++ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L) |
| 77 | + SSL_library_init(); |
| 78 | + ERR_load_crypto_strings(); |
| 79 | + SSL_load_error_strings(); |
| 80 | +--- sample/openssl_hostname_validation.c.orig 2017-01-25 23:37:15 UTC |
| 81 | ++++ sample/openssl_hostname_validation.c |
| 82 | +@@ -48,7 +48,8 @@ SOFTWARE. |
| 83 | + |
| 84 | + #define HOSTNAME_MAX_SIZE 255 |
| 85 | + |
| 86 | +-#if OPENSSL_VERSION_NUMBER < 0x10100000L |
| 87 | ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || \ |
| 88 | ++ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L) |
| 89 | + #define ASN1_STRING_get0_data ASN1_STRING_data |
| 90 | + #endif |
| 91 | + |
| 92 | +--- test/regress_ssl.c.orig 2017-01-25 23:37:15 UTC |
| 93 | ++++ test/regress_ssl.c |
| 94 | +@@ -186,7 +186,8 @@ get_ssl_ctx(void) |
| 95 | + void |
| 96 | + init_ssl(void) |
| 97 | + { |
| 98 | +-#if OPENSSL_VERSION_NUMBER < 0x10100000L |
| 99 | ++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || \ |
| 100 | ++ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L) |
| 101 | + SSL_library_init(); |
| 102 | + ERR_load_crypto_strings(); |
| 103 | + SSL_load_error_strings(); |
0 commit comments