--- a/src/lib-dcrypt/dcrypt-openssl.c +++ b/src/lib-dcrypt/dcrypt-openssl.c @@ -20,6 +20,7 @@ #include #include #include +#include #include "dcrypt.h" #include "dcrypt-private.h" --- a/src/lib-ssl-iostream/dovecot-openssl-common.c +++ b/src/lib-ssl-iostream/dovecot-openssl-common.c @@ -63,9 +63,11 @@ void dovecot_openssl_common_global_ref(v /*i_warning("CRYPTO_set_mem_functions() was called too late");*/ } +#if OPENSSL_VERSION_NUMBER < 0x10100000L SSL_library_init(); SSL_load_error_strings(); OpenSSL_add_all_algorithms(); +#endif } bool dovecot_openssl_common_global_unref(void) @@ -79,6 +81,7 @@ bool dovecot_openssl_common_global_unref ENGINE_finish(dovecot_openssl_engine); dovecot_openssl_engine = NULL; } +#if OPENSSL_VERSION_NUMBER < 0x10100000L /* OBJ_cleanup() is called automatically by EVP_cleanup() in newer versions. Doesn't hurt to call it anyway. */ OBJ_cleanup(); @@ -101,6 +104,7 @@ bool dovecot_openssl_common_global_unref #ifdef HAVE_OPENSSL_CLEANUP OPENSSL_cleanup(); #endif +#endif return FALSE; } --- a/src/lib-ssl-iostream/iostream-openssl-context.c +++ b/src/lib-ssl-iostream/iostream-openssl-context.c @@ -6,6 +6,9 @@ #include "dovecot-openssl-common.h" #include +#include +#include +#include #include #include #include @@ -514,8 +517,10 @@ ssl_proxy_ctx_set_crypto_params(SSL_CTX int nid; const char *curve_name; #endif +#if OPENSSL_VERSION_NUMBER < 0x10100000L if (SSL_CTX_need_tmp_RSA(ssl_ctx) != 0) SSL_CTX_set_tmp_rsa_callback(ssl_ctx, ssl_gen_rsa_key); +#endif if (set->dh == NULL || *set->dh == '\0') SSL_CTX_set_tmp_dh_callback(ssl_ctx, ssl_tmp_dh_callback); #ifdef HAVE_ECDH