File openssl-1_1-ossl-sli-014-PKCSv1.5-and-shake.patch of Package openssl-1_1.37526

From 1aac9c104a4dc21680e28d8f6cc0bd000349e5e9 Mon Sep 17 00:00:00 2001
From: Christopher Dickerman <chrisd@atsec.com>
Date: Fri, 2 Aug 2024 09:45:55 -0500
Subject: [PATCH] 1224271 PKCSv1.5 and shake

---
 crypto/rsa/rsa_sign.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/crypto/rsa/rsa_sign.c b/crypto/rsa/rsa_sign.c
index 6b1c8d2..1aa4250 100644
--- a/crypto/rsa/rsa_sign.c
+++ b/crypto/rsa/rsa_sign.c
@@ -79,6 +79,10 @@ int RSA_sign(int type, const unsigned char *m, unsigned int m_len,
         RSAerr(RSA_F_RSA_SIGN, RSA_R_NON_FIPS_RSA_METHOD);
         return 0;
     }
+    if (FIPS_mode() && (type == NID_shake128 || type == NID_shake256)) {
+        RSAerr(RSA_F_RSA_SIGN, RSA_R_OPERATION_NOT_ALLOWED_IN_FIPS_MODE);
+        return 0;
+    }
 #endif
     if (rsa->meth->rsa_sign) {
         return rsa->meth->rsa_sign(type, m, m_len, sigret, siglen, rsa);
@@ -247,6 +251,12 @@ err:
 int RSA_verify(int type, const unsigned char *m, unsigned int m_len,
                const unsigned char *sigbuf, unsigned int siglen, RSA *rsa)
 {
+#ifdef OPENSSL_FIPS
+    if (FIPS_mode() && (type == NID_shake128 || type == NID_shake256)) {
+        RSAerr(RSA_F_RSA_VERIFY, RSA_R_OPERATION_NOT_ALLOWED_IN_FIPS_MODE);
+        return 0;
+    }
+#endif
 
     if (rsa->meth->rsa_verify) {
         return rsa->meth->rsa_verify(type, m, m_len, sigbuf, siglen, rsa);
-- 
2.39.3 (Apple Git-146)
openSUSE Build Service is sponsored by