diff --git a/src/resolve/resolved-dnstls-openssl.c b/src/resolve/resolved-dnstls-openssl.c index fbcee7fc63..3112ccb677 100644 --- a/src/resolve/resolved-dnstls-openssl.c +++ b/src/resolve/resolved-dnstls-openssl.c @@ -392,9 +392,6 @@ int dnstls_manager_init(Manager *manager) { assert(manager); - ERR_load_crypto_strings(); - SSL_load_error_strings(); - manager->dnstls_data.ctx = SSL_CTX_new(TLS_client_method()); if (!manager->dnstls_data.ctx) return -ENOMEM; diff --git a/src/shared/openssl-util.c b/src/shared/openssl-util.c index 63c443cbfd..dbb6537246 100644 --- a/src/shared/openssl-util.c +++ b/src/shared/openssl-util.c @@ -11,6 +11,16 @@ #include "string-util.h" #if HAVE_OPENSSL +# include +# include + +# if !defined(OPENSSL_NO_ENGINE) && !defined(OPENSSL_NO_DEPRECATED_3_0) +# include +DISABLE_WARNING_DEPRECATED_DECLARATIONS; +DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(ENGINE*, ENGINE_free, NULL); +REENABLE_WARNING; +# endif + /* For each error in the OpenSSL thread error queue, log the provided message and the OpenSSL error * string. If there are no errors in the OpenSSL thread queue, this logs the message with "No OpenSSL * errors." This logs at level debug. Returns -EIO (or -ENOMEM). */ @@ -1344,6 +1354,7 @@ static int load_key_from_engine(const char *engine, const char *private_key_uri, assert(private_key_uri); assert(ret); +#if !defined(OPENSSL_NO_ENGINE) && !defined(OPENSSL_NO_DEPRECATED_3_0) DISABLE_WARNING_DEPRECATED_DECLARATIONS; _cleanup_(ENGINE_freep) ENGINE *e = ENGINE_by_id(engine); if (!e) @@ -1364,6 +1375,9 @@ static int load_key_from_engine(const char *engine, const char *private_key_uri, *ret = TAKE_PTR(private_key); return 0; +#else + return -EOPNOTSUPP; +#endif } int openssl_load_key_from_token( diff --git a/src/shared/openssl-util.h b/src/shared/openssl-util.h index e5ecbad86d..1a89fcc2bd 100644 --- a/src/shared/openssl-util.h +++ b/src/shared/openssl-util.h @@ -21,7 +21,6 @@ int parse_openssl_key_source_argument(const char *argument, char **private_key_s # include # include # include -# include # include # include # include @@ -54,9 +53,7 @@ DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(SSL*, SSL_free, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(BIO*, BIO_free, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(EVP_MD_CTX*, EVP_MD_CTX_free, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(ASN1_OCTET_STRING*, ASN1_OCTET_STRING_free, NULL); -DISABLE_WARNING_DEPRECATED_DECLARATIONS; -DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(ENGINE*, ENGINE_free, NULL); -REENABLE_WARNING; + #if OPENSSL_VERSION_MAJOR >= 3 DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(EVP_CIPHER*, EVP_CIPHER_free, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(EVP_KDF*, EVP_KDF_free, NULL); diff --git a/src/shared/tpm2-util.c b/src/shared/tpm2-util.c index 7ec9c9a974..1e747a07e4 100644 --- a/src/shared/tpm2-util.c +++ b/src/shared/tpm2-util.c @@ -37,6 +37,10 @@ #include "tpm2-util.h" #include "virt.h" +#if HAVE_OPENSSL +# include +#endif + #if HAVE_TPM2 static void *libtss2_esys_dl = NULL; static void *libtss2_rc_dl = NULL;