e35e9c
From 45b80678109e5817b7cd15566a9d6c96b064b95f Mon Sep 17 00:00:00 2001
e35e9c
From: Jakub Jelen <jjelen@redhat.com>
e35e9c
Date: Wed, 1 Mar 2023 15:39:15 +0100
e35e9c
Subject: [PATCH] random: Remove unused SHA384 DRBGs.
e35e9c
e35e9c
* random/random-drbg.c (global): Remove unused SHA384-based defines.
e35e9c
(drbg_cores): Remove SHA384 configurations.
e35e9c
(drbg_sec_strength): Remove unused SHA384.
e35e9c
--
e35e9c
e35e9c
These are no longer allowed by FIPS and it looks like they were never
e35e9c
usable as they do not have any conversion from the string flags.
e35e9c
e35e9c
GnuPG-bug-id: 6393
e35e9c
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
e35e9c
---
e35e9c
 random/random-drbg.c | 13 ++-----------
e35e9c
 1 file changed, 2 insertions(+), 11 deletions(-)
e35e9c
e35e9c
diff --git a/random/random-drbg.c b/random/random-drbg.c
e35e9c
index f1cfe286..af49a5a5 100644
e35e9c
--- a/random/random-drbg.c
e35e9c
+++ b/random/random-drbg.c
e35e9c
@@ -188,11 +188,9 @@
e35e9c
 #define DRBG_HASHSHA1		((u32)1<<4)
e35e9c
 #define DRBG_HASHSHA224		((u32)1<<5)
e35e9c
 #define DRBG_HASHSHA256		((u32)1<<6)
e35e9c
-#define DRBG_HASHSHA384		((u32)1<<7)
e35e9c
 #define DRBG_HASHSHA512		((u32)1<<8)
e35e9c
 #define DRBG_HASH_MASK		(DRBG_HASHSHA1 | DRBG_HASHSHA224 \
e35e9c
-				 | DRBG_HASHSHA256 | DRBG_HASHSHA384 \
e35e9c
-				 | DRBG_HASHSHA512)
e35e9c
+				 | DRBG_HASHSHA256 | DRBG_HASHSHA512)
e35e9c
 /* type modifiers (A.3)*/
e35e9c
 #define DRBG_HMAC		((u32)1<<12)
e35e9c
 #define DRBG_SYM128		((u32)1<<13)
e35e9c
@@ -211,23 +209,18 @@
e35e9c
 #define DRBG_NOPR_CTRAES256 (DRBG_CTRAES | DRBG_SYM256)
e35e9c
 #define DRBG_PR_HASHSHA1     (DRBG_PREDICTION_RESIST | DRBG_HASHSHA1)
e35e9c
 #define DRBG_PR_HASHSHA256   (DRBG_PREDICTION_RESIST | DRBG_HASHSHA256)
e35e9c
-#define DRBG_PR_HASHSHA384   (DRBG_PREDICTION_RESIST | DRBG_HASHSHA384)
e35e9c
 #define DRBG_PR_HASHSHA512   (DRBG_PREDICTION_RESIST | DRBG_HASHSHA512)
e35e9c
 #define DRBG_NOPR_HASHSHA1   (DRBG_HASHSHA1)
e35e9c
 #define DRBG_NOPR_HASHSHA256 (DRBG_HASHSHA256)
e35e9c
-#define DRBG_NOPR_HASHSHA384 (DRBG_HASHSHA384)
e35e9c
 #define DRBG_NOPR_HASHSHA512 (DRBG_HASHSHA512)
e35e9c
 #define DRBG_PR_HMACSHA1     (DRBG_PREDICTION_RESIST | DRBG_HASHSHA1 \
e35e9c
                               | DRBG_HMAC)
e35e9c
 #define DRBG_PR_HMACSHA256   (DRBG_PREDICTION_RESIST | DRBG_HASHSHA256 \
e35e9c
                               | DRBG_HMAC)
e35e9c
-#define DRBG_PR_HMACSHA384   (DRBG_PREDICTION_RESIST | DRBG_HASHSHA384 \
e35e9c
-                              | DRBG_HMAC)
e35e9c
 #define DRBG_PR_HMACSHA512   (DRBG_PREDICTION_RESIST | DRBG_HASHSHA512 \
e35e9c
                               | DRBG_HMAC)
e35e9c
 #define DRBG_NOPR_HMACSHA1   (DRBG_HASHSHA1 | DRBG_HMAC)
e35e9c
 #define DRBG_NOPR_HMACSHA256 (DRBG_HASHSHA256 | DRBG_HMAC)
e35e9c
-#define DRBG_NOPR_HMACSHA384 (DRBG_HASHSHA384 | DRBG_HMAC)
e35e9c
 #define DRBG_NOPR_HMACSHA512 (DRBG_HASHSHA512 | DRBG_HMAC)
e35e9c
 
e35e9c
 
e35e9c
@@ -359,12 +352,10 @@ static const struct drbg_core_s drbg_cores[] = {
e35e9c
   /* Hash DRBGs */
e35e9c
   {DRBG_HASHSHA1, 55, 20, GCRY_MD_SHA1},
e35e9c
   {DRBG_HASHSHA256, 55, 32, GCRY_MD_SHA256},
e35e9c
-  {DRBG_HASHSHA384, 111, 48, GCRY_MD_SHA384},
e35e9c
   {DRBG_HASHSHA512, 111, 64, GCRY_MD_SHA512},
e35e9c
   /* HMAC DRBGs */
e35e9c
   {DRBG_HASHSHA1   | DRBG_HMAC, 20, 20, GCRY_MD_SHA1},
e35e9c
   {DRBG_HASHSHA256 | DRBG_HMAC, 32, 32, GCRY_MD_SHA256},
e35e9c
-  {DRBG_HASHSHA384 | DRBG_HMAC, 48, 48, GCRY_MD_SHA384},
e35e9c
   {DRBG_HASHSHA512 | DRBG_HMAC, 64, 64, GCRY_MD_SHA512},
e35e9c
   /* block ciphers */
e35e9c
   {DRBG_CTRAES | DRBG_SYM128, 32, 16, GCRY_CIPHER_AES128},
e35e9c
@@ -543,7 +534,7 @@ drbg_sec_strength (u32 flags)
e35e9c
   else if (flags & DRBG_SYM192)
e35e9c
     return 24;
e35e9c
   else if ((flags & DRBG_SYM256) || (flags & DRBG_HASHSHA256) ||
e35e9c
-	   (flags & DRBG_HASHSHA384) || (flags & DRBG_HASHSHA512))
e35e9c
+	   (flags & DRBG_HASHSHA512))
e35e9c
     return 32;
e35e9c
   else
e35e9c
     return 32;
e35e9c
-- 
e35e9c
2.39.2
e35e9c