]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
rand: trust user supplied entropy when configured without a random source
authorPauli <pauli@openssl.org>
Thu, 27 Apr 2023 01:25:11 +0000 (11:25 +1000)
committerPauli <pauli@openssl.org>
Tue, 2 May 2023 21:51:45 +0000 (07:51 +1000)
Fixes #20841

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/20843)

(cherry picked from commit 56547da9d3fa24f54b439497d322b12beb004c80)

crypto/rand/rand_lib.c

index b186ec7f27ef31e53ce3e1a040d0d91c3fad5808..c38317998d511068454806f4991b41a8f04e5503 100644 (file)
@@ -273,7 +273,13 @@ void RAND_add(const void *buf, int num, double randomness)
 # endif
     drbg = RAND_get0_primary(NULL);
     if (drbg != NULL && num > 0)
+# ifdef OPENSSL_RAND_SEED_NONE
+        /* Without an entropy source, we have to rely on the user */
+        EVP_RAND_reseed(drbg, 0, buf, num, NULL, 0);
+# else
+        /* With an entropy source, we downgrade this to additional input */
         EVP_RAND_reseed(drbg, 0, NULL, 0, buf, num);
+# endif
 }
 
 # if !defined(OPENSSL_NO_DEPRECATED_1_1_0)