From ad5ce7ff1cae92c151dc6f350ef943106ddd852f Mon Sep 17 00:00:00 2001
From: Aleksandr Makarov <aleksandr.o.makarov@gmail.com>
Date: Fri, 12 Jul 2024 21:07:36 +0300
Subject: [PATCH] package/libest: Add OpenSSL 3.0 compatibility

The functions `FIPS_mode` and `FIPS_mode_set` are deprecated in OpenSSL 3.0, replaced by
`EVP_default_properties_is_fips_enabled` and `EVP_default_properties_enable_fips` respectively.

This commit introduces wrappers for these new EVP APIs to maintain compatibility with OpenSSL 3.0,
while ensuring continued support for older versions of OpenSSL.

- Implemented `is_fips_enabled` wrapper around `EVP_default_properties_is_fips_enabled`
- Implemented `enable_fips` wrapper around `EVP_default_properties_enable_fips`
- Added conditional compilation to support both new and legacy OpenSSL versions

Upstream: https://github.com/cisco/libest/pull/132
Signed-off-by: Aleksandr Makarov <aleksandr.o.makarov@gmail.com>
---
 example/client-brski/estclient-brski.c |  2 +-
 example/client/estclient.c             |  2 +-
 example/proxy/estproxy.c               |  2 +-
 example/server/estserver.c             |  2 +-
 java/jni/client.c                      |  2 +-
 src/est/est_client.c                   | 12 ++++++------
 src/est/est_ossl_util.c                | 18 ++++++++++++++++++
 src/est/est_ossl_util.h                |  2 ++
 src/est/est_server.c                   |  2 +-
 test/UT/US1864/us1864.c                |  4 ++--
 10 files changed, 34 insertions(+), 14 deletions(-)

diff --git a/example/client-brski/estclient-brski.c b/example/client-brski/estclient-brski.c
index 9e63af5..6e03052 100644
--- a/example/client-brski/estclient-brski.c
+++ b/example/client-brski/estclient-brski.c
@@ -388,7 +388,7 @@ int main (int argc, char **argv)
                 break;
             case 'f':
                 /* Turn FIPS on if requested and exit if failure */
-                set_fips_return = FIPS_mode_set(1);
+                set_fips_return = est_enable_fips(1);
                 if (!set_fips_return) {
                     printf("\nERROR setting FIPS MODE ON ...\n");
                     ERR_load_crypto_strings();
diff --git a/example/client/estclient.c b/example/client/estclient.c
index a8a2d6f..75b1272 100644
--- a/example/client/estclient.c
+++ b/example/client/estclient.c
@@ -1280,7 +1280,7 @@ int main (int argc, char **argv)
                 break;
             case 'f':
                 /* Turn FIPS on if requested and exit if failure */
-                set_fips_return = FIPS_mode_set(1);
+                set_fips_return = est_enable_fips(1);
                 if (!set_fips_return) {
                     printf("\nERROR setting FIPS MODE ON ...\n");
                     ERR_load_crypto_strings();
diff --git a/example/proxy/estproxy.c b/example/proxy/estproxy.c
index 114bd65..6dbdbda 100644
--- a/example/proxy/estproxy.c
+++ b/example/proxy/estproxy.c
@@ -593,7 +593,7 @@ int main (int argc, char **argv)
             /*
              * Turn FIPS on if user requested it and exit if failure
              */
-            set_fips_return = FIPS_mode_set(1);
+            set_fips_return = est_enable_fips(1);
             if (set_fips_return != 1) {
                 set_fips_error = ERR_get_error();
                 printf("\nERROR WHILE SETTING FIPS MODE ON exiting ....\n");
diff --git a/example/server/estserver.c b/example/server/estserver.c
index 3539dc4..90886cf 100644
--- a/example/server/estserver.c
+++ b/example/server/estserver.c
@@ -2285,7 +2285,7 @@ int main (int argc, char **argv)
             /* turn FIPS on if user requested it
              * and exit if failure.
              */
-            set_fips_return = FIPS_mode_set(1);
+            set_fips_return = est_enable_fips(1);
             if (set_fips_return != 1) {
                 set_fips_error = ERR_get_error();
                 printf("\nERROR WHILE SETTING FIPS MODE ON exiting ....\n");
diff --git a/java/jni/client.c b/java/jni/client.c
index c5bc28e..f58d5c0 100644
--- a/java/jni/client.c
+++ b/java/jni/client.c
@@ -179,7 +179,7 @@ static int jni_est_client_X509_REQ_sign (X509_REQ *x, EVP_PKEY *pkey, const EVP_
  */
 JNIEXPORT jint JNICALL Java_com_cisco_c3m_est_ESTClient_enable_1fips(
 		JNIEnv *env, jclass obj) {
-	if (!FIPS_mode() && !FIPS_mode_set(1)) {
+	if (!est_is_fips_enabled() && !est_enable_fips(1)) {
 		ERR_print_errors_fp(stderr);
 		return -1;
 	} else {
diff --git a/src/est/est_client.c b/src/est/est_client.c
index 5c25d4f..63069af 100644
--- a/src/est/est_client.c
+++ b/src/est/est_client.c
@@ -3183,7 +3183,7 @@ EST_ERROR est_client_enroll_internal (EST_CTX *ctx, char *cn, int *pkcs7_len, in
          * HTTPS digest mode requires the use of MD5.  Make sure we're not
          * in FIPS mode and can use MD5
          */
-        if (ctx->auth_mode == AUTH_DIGEST && (FIPS_mode())){
+        if (ctx->auth_mode == AUTH_DIGEST && (est_is_fips_enabled())){
             EST_LOG_ERR("HTTP digest auth not allowed while in FIPS mode");
             rv = EST_ERR_BAD_MODE;
             goto err;
@@ -3594,7 +3594,7 @@ EST_ERROR est_client_reenroll (EST_CTX *ctx, X509 *cert, int *pkcs7_len, EVP_PKE
          * HTTPS digest mode requires the use of MD5.  Make sure we're not
          * in FIPS mode and can use MD5
          */
-        if (ctx->auth_mode == AUTH_DIGEST && (FIPS_mode())){
+        if (ctx->auth_mode == AUTH_DIGEST && (est_is_fips_enabled())){
 	    EST_LOG_ERR("HTTP digest auth not allowed while in FIPS mode");
 	    rv = EST_ERR_BAD_MODE;
             goto err;
@@ -3680,7 +3680,7 @@ static EST_ERROR est_client_enroll_csr_internal (EST_CTX *ctx, X509_REQ *csr, in
          * HTTPS digest mode requires the use of MD5.  Make sure we're not
          * in FIPS mode and can use MD5
          */
-        if (ctx->auth_mode == AUTH_DIGEST && (FIPS_mode())){
+        if (ctx->auth_mode == AUTH_DIGEST && (est_is_fips_enabled())){
             EST_LOG_ERR("HTTP digest auth not allowed while in FIPS mode");
             rv = EST_ERR_BAD_MODE;
             goto err;
@@ -5872,7 +5872,7 @@ static EST_ERROR est_client_brski_send_get_voucher (EST_CTX *ctx, int *cacert_le
          * HTTPS digest mode requires the use of MD5.  Make sure we're not
          * in FIPS mode and can use MD5
          */
-        if (ctx->auth_mode == AUTH_DIGEST && (FIPS_mode())){
+        if (ctx->auth_mode == AUTH_DIGEST && (est_is_fips_enabled())){
             EST_LOG_ERR("HTTP digest auth not allowed while in FIPS mode");
             rv = EST_ERR_BAD_MODE;
             goto err;
@@ -6366,7 +6366,7 @@ EST_ERROR est_client_brski_send_voucher_status (EST_CTX *ctx, EST_BRSKI_STATUS_V
          * HTTPS digest mode requires the use of MD5.  Make sure we're not
          * in FIPS mode and can use MD5
          */
-        if (ctx->auth_mode == AUTH_DIGEST && (FIPS_mode())){
+        if (ctx->auth_mode == AUTH_DIGEST && (est_is_fips_enabled())){
             EST_LOG_ERR("HTTP digest auth not allowed while in FIPS mode");
             rv = EST_ERR_BAD_MODE;
             goto err;
@@ -6535,7 +6535,7 @@ EST_ERROR est_client_brski_send_enroll_status (EST_CTX *ctx, EST_BRSKI_STATUS_VA
          * HTTPS digest mode requires the use of MD5.  Make sure we're not
          * in FIPS mode and can use MD5
          */
-        if (ctx->auth_mode == AUTH_DIGEST && (FIPS_mode())){
+        if (ctx->auth_mode == AUTH_DIGEST && (est_is_fips_enabled())){
             EST_LOG_ERR("HTTP digest auth not allowed while in FIPS mode");
             rv = EST_ERR_BAD_MODE;
             goto err;
diff --git a/src/est/est_ossl_util.c b/src/est/est_ossl_util.c
index daa54f2..0887daa 100644
--- a/src/est/est_ossl_util.c
+++ b/src/est/est_ossl_util.c
@@ -500,3 +500,21 @@ char *est_find_ser_num_in_subj(X509 *cert)
     return(ser_num_str);
 }
 #endif
+
+int est_is_fips_enabled()
+{
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+    return EVP_default_properties_is_fips_enabled(NULL);
+#else
+    return FIPS_mode();
+#endif
+}
+
+int est_enable_fips(int enable)
+{
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+	return EVP_default_properties_enable_fips(NULL, enable);
+#else
+	return FIPS_mode_set(enable);
+#endif
+}
diff --git a/src/est/est_ossl_util.h b/src/est/est_ossl_util.h
index 68ad290..2389e45 100644
--- a/src/est/est_ossl_util.h
+++ b/src/est/est_ossl_util.h
@@ -44,4 +44,6 @@ LIBEST_TEST_API void ossl_dump_ssl_errors(void);
 EST_ERROR ossl_init_cert_store(X509_STORE *store,
                                unsigned char *raw1, int size1);
 
+int est_is_fips_enabled();
+int est_enable_fips(int);
 #endif
diff --git a/src/est/est_server.c b/src/est/est_server.c
index d047b48..979ae53 100644
--- a/src/est/est_server.c
+++ b/src/est/est_server.c
@@ -3355,7 +3355,7 @@ EST_ERROR est_server_set_auth_mode (EST_CTX *ctx, EST_HTTP_AUTH_MODE amode)
         /*
          * Since HTTP digest auth uses MD5, make sure we're not in FIPS mode.
          */
-	if (FIPS_mode()) {
+	if (est_is_fips_enabled()) {
 	    EST_LOG_ERR("HTTP digest auth not allowed while in FIPS mode");
 	    return (EST_ERR_BAD_MODE);
 	}
diff --git a/test/UT/US1864/us1864.c b/test/UT/US1864/us1864.c
index 3e41cd7..1f57494 100644
--- a/test/UT/US1864/us1864.c
+++ b/test/UT/US1864/us1864.c
@@ -218,12 +218,12 @@ static void us1864_test1 (void)
     /*
      * Make sure we don't allow DIGEST mode when in FIPS mode
      */
-    if (!FIPS_mode_set(1)) {
+    if (!est_enable_fips(1)) {
         printf("FIPS mode not supported, skipping test to prevent digest auth when in FIPS mode");
     } else {
         est_rv = est_server_set_auth_mode(ctx, AUTH_DIGEST);
         CU_ASSERT(est_rv == EST_ERR_BAD_MODE);
-        FIPS_mode_set(0);
+        est_enable_fips(0);
     }
 
     X509_free(x);
-- 
2.40.1

