diff -ru a/openssl-compat.h b/openssl-compat.h --- a/openssl-compat.h +++ b/openssl-compat.h @@ -1,7 +1,7 @@ #ifndef OPENSSL_COMPAT_H #define OPENSSL_COMPAT_H -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) static inline BIO_METHOD *BIO_meth_new(int type, const char *name) { @@ -30,6 +30,6 @@ #define TLS_method SSLv23_method -#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */ +#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) */ #endif /* OPENSSL_COMPAT_H */ diff -ru a/sample/https-client.c b/sample/https-client.c --- a/sample/https-client.c +++ b/sample/https-client.c @@ -312,7 +312,7 @@ } uri[sizeof(uri) - 1] = '\0'; -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) // Initialize OpenSSL SSL_library_init(); ERR_load_crypto_strings(); @@ -480,7 +480,7 @@ SSL_CTX_free(ssl_ctx); if (type == HTTP && ssl) SSL_free(ssl); -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) EVP_cleanup(); ERR_free_strings(); @@ -492,7 +492,7 @@ CRYPTO_cleanup_all_ex_data(); sk_SSL_COMP_free(SSL_COMP_get_compression_methods()); -#endif /*OPENSSL_VERSION_NUMBER < 0x10100000L */ +#endif /*OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) */ #ifdef _WIN32 WSACleanup(); diff -ru a/sample/le-proxy.c b/sample/le-proxy.c --- a/sample/le-proxy.c +++ b/sample/le-proxy.c @@ -259,7 +259,7 @@ if (use_ssl) { int r; -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) SSL_library_init(); ERR_load_crypto_strings(); SSL_load_error_strings(); diff -ru a/sample/openssl_hostname_validation.c b/sample/openssl_hostname_validation.c --- a/sample/openssl_hostname_validation.c +++ b/sample/openssl_hostname_validation.c @@ -48,7 +48,7 @@ #define HOSTNAME_MAX_SIZE 255 -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) #define ASN1_STRING_get0_data ASN1_STRING_data #endif diff -ru a/test/regress_ssl.c b/test/regress_ssl.c --- a/test/regress_ssl.c +++ b/test/regress_ssl.c @@ -186,7 +186,7 @@ void init_ssl(void) { -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) SSL_library_init(); ERR_load_crypto_strings(); SSL_load_error_strings(); @@ -194,6 +194,10 @@ if (SSLeay() != OPENSSL_VERSION_NUMBER) { TT_DECLARE("WARN", ("Version mismatch for openssl: compiled with %lx but running with %lx", (unsigned long)OPENSSL_VERSION_NUMBER, (unsigned long) SSLeay())); } + if (SSLeay() != LIBRESSL_VERSION_NUMBER) { + TT_DECLARE("WARN", ("Version mismatch for libressl: compiled with %lx but running with %lx", (unsigned long)LIBRESSL_VERSION_NUMBER, (unsigned long) SSLeay())); + } + #endif }