aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2019-10-26 08:15:43 -0400
committerfanquake <fanquake@gmail.com>2019-11-18 08:48:39 -0500
commit5624ab0b4f844dc7c17aeb1b009f002c33c38fb3 (patch)
treee3c2bb4b0d2dcfafdbf52d2e6dc908f2fd7c9850
parent6fde676f647e3b43cf0f5b242a00896f361ea385 (diff)
random: stop feeding RNG output back into OpenSSL
On the ::SLOW or ::SLEEP paths, we would feed our RNG output back into OpenSSL using RAND_add. This commit removes that functionality. RAND_add(): https://www.openssl.org/docs/manmaster/man3/RAND_add.html RAND_add() mixes the num bytes at buf into the internal state of the random generator. This function will not normally be needed, as mentioned above. The randomness argument is an estimate of how much randomness is contained in buf, in bytes, and should be a number between zero and num.
-rw-r--r--src/random.cpp8
1 files changed, 0 insertions, 8 deletions
diff --git a/src/random.cpp b/src/random.cpp
index 3e6398f7b4..8bdf45ef67 100644
--- a/src/random.cpp
+++ b/src/random.cpp
@@ -586,14 +586,6 @@ static void ProcRand(unsigned char* out, int num, RNGLevel level)
SeedStartup(startup_hasher, rng);
rng.MixExtract(out, num, std::move(startup_hasher), true);
}
-
- // For anything but the 'fast' level, feed the resulting RNG output (after an additional hashing step) back into OpenSSL.
- if (level != RNGLevel::FAST) {
- unsigned char buf[64];
- CSHA512().Write(out, num).Finalize(buf);
- RAND_add(buf, sizeof(buf), num);
- memory_cleanse(buf, 64);
- }
}
void GetRandBytes(unsigned char* buf, int num) noexcept { ProcRand(buf, num, RNGLevel::FAST); }