mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 06:28:31 +01:00
Merge #17507: random: mark RandAddPeriodic and SeedPeriodic as noexcept
55b2cb199crandom: mark RandAddPeriodic and SeedPeriodic as noexcept (fanquake)461e547877doc: correct random.h docs after #17270 (fanquake) Pull request description: The usage of `MilliSleep()` in SeedPeriodic (previously SeedSleep) was [removed](d61f2bb076) in #17270, meaning it, and its users can now be marked `noexcept`. This also corrects the docs in random.h for some of the changes in #17270. ACKs for top commit: practicalswift: ACK55b2cb199claanwj: ACK55b2cb199csipa: ACK55b2cb199cTree-SHA512: 672d369796e7c4f9b4d98dc545e5454999fa1bef373871994a26041d6163c58909e2255e4f820d3ef011679aa3392754eb57477306a89f5fd3d57e2bd7f0811a
This commit is contained in:
16
src/random.h
16
src/random.h
@@ -40,17 +40,17 @@
|
||||
* These entropy sources are slower, but designed to make sure the RNG state contains
|
||||
* fresh data that is unpredictable to attackers.
|
||||
*
|
||||
* - RandAddSeedSleep() seeds everything that fast seeding includes, but additionally:
|
||||
* - A high-precision timestamp before and after sleeping 1ms.
|
||||
* - (On Windows) Once every 10 minutes, performance monitoring data from the OS.
|
||||
- - Once every minute, strengthen the entropy for 10 ms using repeated SHA512.
|
||||
* These just exploit the fact the system is idle to improve the quality of the RNG
|
||||
* slightly.
|
||||
* - RandAddPeriodic() seeds everything that fast seeding includes, but additionally:
|
||||
* - A high-precision timestamp
|
||||
* - Dynamic environment data (performance monitoring, ...)
|
||||
* - Strengthen the entropy for 10 ms using repeated SHA512.
|
||||
* This is run once every minute.
|
||||
*
|
||||
* On first use of the RNG (regardless of what function is called first), all entropy
|
||||
* sources used in the 'slow' seeder are included, but also:
|
||||
* - 256 bits from the hardware RNG (rdseed or rdrand) when available.
|
||||
* - (On Windows) Performance monitoring data from the OS.
|
||||
* - Dynamic environment data (performance monitoring, ...)
|
||||
* - Static environment data
|
||||
* - Strengthen the entropy for 100 ms using repeated SHA512.
|
||||
*
|
||||
* When mixing in new entropy, H = SHA512(entropy || old_rng_state) is computed, and
|
||||
@@ -87,7 +87,7 @@ void GetStrongRandBytes(unsigned char* buf, int num) noexcept;
|
||||
*
|
||||
* Thread-safe.
|
||||
*/
|
||||
void RandAddPeriodic();
|
||||
void RandAddPeriodic() noexcept;
|
||||
|
||||
/**
|
||||
* Gathers entropy from the low bits of the time at which events occur. Should
|
||||
|
||||
Reference in New Issue
Block a user