From 56547da9d3fa24f54b439497d322b12beb004c80 Mon Sep 17 00:00:00 2001 From: Pauli Date: Thu, 27 Apr 2023 11:25:11 +1000 Subject: [PATCH] rand: trust user supplied entropy when configured without a random source Fixes #20841 Reviewed-by: Tomas Mraz Reviewed-by: Matthias St. Pierre (Merged from https://github.com/openssl/openssl/pull/20843) --- crypto/rand/rand_lib.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crypto/rand/rand_lib.c b/crypto/rand/rand_lib.c index ce95bf6210..0cdb9caa6d 100644 --- a/crypto/rand/rand_lib.c +++ b/crypto/rand/rand_lib.c @@ -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) -- 2.34.1