From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Date: Sun, 7 Jun 2026 12:14:02 +0200
Subject: [PATCH] Skip engines usage on OpenSSL 4.0+

The concept/ usage of engines has been removed from OpenSSL 4.0. A
replacement technology are "providers".

Don't use ENGINE_load_builtin_engines() on OpenSSL 4.0.

Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
---
 src/common/openssl_opts_handler.cc | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/common/openssl_opts_handler.cc b/src/common/openssl_opts_handler.cc
index 81d0c478651a..2191d4bba1f5 100644
--- a/src/common/openssl_opts_handler.cc
+++ b/src/common/openssl_opts_handler.cc
@@ -118,7 +118,9 @@ void load_module(const string &engine_conf)
 
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
+#if OPENSSL_VERSION_MAJOR < 4
   ENGINE_load_builtin_engines();
+#endif
 #pragma clang diagnostic pop
 #pragma GCC diagnostic pop
 
@@ -131,12 +133,14 @@ void load_module(const string &engine_conf)
 
 void init_engine()
 {
+#if OPENSSL_VERSION_MAJOR < 4
   string opts = g_ceph_context->_conf->openssl_engine_opts;
   if (opts.empty()) {
     return;
   }
   string engine_conf = construct_engine_conf(opts);
   load_module(engine_conf);
+#endif
 }
 
 void ceph::crypto::init_openssl_engine_once()
-- 
2.53.0

