File openssl-1_1-ossl-sli-015-sigver-hashing.patch of Package openssl-1_1

From 3f811487344e0e587561b08e640a261e723eefdc Mon Sep 17 00:00:00 2001
From: Christopher Dickerman <chrisd@atsec.com>
Date: Fri, 2 Aug 2024 10:58:41 -0500
Subject: [PATCH] 1224272 Signature procedures regarding hashing and
 sign/verify

---
 crypto/rsa/rsa_pmeth.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/crypto/rsa/rsa_pmeth.c b/crypto/rsa/rsa_pmeth.c
index 34bef3e..ffb904e 100644
--- a/crypto/rsa/rsa_pmeth.c
+++ b/crypto/rsa/rsa_pmeth.c
@@ -128,7 +128,11 @@ static int pkey_rsa_sign(EVP_PKEY_CTX *ctx, unsigned char *sig,
     int ret;
     RSA_PKEY_CTX *rctx = ctx->data;
     RSA *rsa = ctx->pkey->pkey.rsa;
-
+    
+    // A very tentative solution, not sure how to detect a pre-hashed message
+    if (rctx->md == NULL) {
+        fips_sli_disapprove_EVP_PKEY_CTX(ctx);
+    }
     fips_sli_check_key_rsa_siggen_EVP_PKEY_CTX(ctx, rsa);
     if (rctx->md) {
         if (tbslen != (size_t)EVP_MD_size(rctx->md)) {
@@ -216,6 +220,10 @@ static int pkey_rsa_verifyrecover(EVP_PKEY_CTX *ctx,
     int ret;
     RSA_PKEY_CTX *rctx = ctx->data;
 
+    if (rctx->md == NULL) {
+        fips_sli_disapprove_EVP_PKEY_CTX(ctx);
+    }
+
     if (rctx->md) {
         if (rctx->pad_mode == RSA_X931_PADDING) {
             if (!setup_tbuf(rctx, ctx))
@@ -283,6 +291,10 @@ static int pkey_rsa_verify(EVP_PKEY_CTX *ctx,
     RSA_PKEY_CTX *rctx = ctx->data;
     RSA *rsa = ctx->pkey->pkey.rsa;
     size_t rslen;
+
+    if (rctx->md == NULL) {
+        fips_sli_disapprove_EVP_PKEY_CTX(ctx);
+    }
     fips_sli_check_key_rsa_sigver_EVP_PKEY_CTX(ctx, rsa);
 
     if (rctx->md) {
-- 
2.39.3 (Apple Git-146)
openSUSE Build Service is sponsored by