![]() |
Bitcoin ABC 0.32.4
P2P Digital Currency
|
Fast randomness source. More...
#include <random.h>
Public Types | |
| typedef uint64_t | result_type |
Public Member Functions | |
| FastRandomContext (bool fDeterministic=false) noexcept | |
| FastRandomContext (const uint256 &seed) noexcept | |
| Initialize with explicit seed (only for testing) More... | |
| FastRandomContext (const FastRandomContext &)=delete | |
| FastRandomContext (FastRandomContext &&)=delete | |
| FastRandomContext & | operator= (const FastRandomContext &)=delete |
| FastRandomContext & | operator= (FastRandomContext &&from) noexcept |
| Move a FastRandomContext. More... | |
| uint64_t | rand64 () noexcept |
| Generate a random 64-bit integer. More... | |
| uint64_t | randbits (int bits) noexcept |
| Generate a random (bits)-bit integer. More... | |
| uint64_t | randrange (uint64_t range) noexcept |
| Generate a random integer in the range [0..range). More... | |
| template<BasicByte B = uint8_t> | |
| std::vector< B > | randbytes (size_t len) noexcept |
| Generate random bytes. More... | |
| void | fillrand (Span< std::byte > output) noexcept |
| Fill a byte Span with random bytes. More... | |
| uint32_t | rand32 () noexcept |
| Generate a random 32-bit integer. More... | |
| uint160 | rand160 () noexcept |
| generate a random uint160. More... | |
| uint256 | rand256 () noexcept |
| generate a random uint256. More... | |
| bool | randbool () noexcept |
| Generate a random boolean. More... | |
| template<typename Tp > | |
| Tp | rand_uniform_delay (const Tp &time, typename Tp::duration range) noexcept |
| Return the time point advanced by a uniform random duration. More... | |
| uint64_t | operator() () noexcept |
Static Public Member Functions | |
| static constexpr uint64_t | min () noexcept |
| static constexpr uint64_t | max () noexcept |
Private Member Functions | |
| void | RandomSeed () noexcept |
| void | FillBitBuffer () noexcept |
Private Attributes | |
| bool | requires_seed |
| ChaCha20 | rng |
| uint64_t | bitbuf |
| int | bitbuf_size |
Fast randomness source.
This is seeded once with secure random data, but is completely deterministic and does not gather more entropy after that.
This class is not thread-safe.
| typedef uint64_t FastRandomContext::result_type |
|
explicitnoexcept |
Definition at line 742 of file random.cpp.
|
explicitnoexcept |
Initialize with explicit seed (only for testing)
Definition at line 681 of file random.cpp.
|
delete |
|
delete |
|
inlineprivatenoexcept |
|
noexcept |
Fill a byte Span with random bytes.
Definition at line 674 of file random.cpp.
|
inlinestaticconstexprnoexcept |
|
inlinestaticconstexprnoexcept |
|
delete |
|
noexcept |
Move a FastRandomContext.
If the original one is used again, it will be reseeded.
Definition at line 750 of file random.cpp.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
privatenoexcept |
|
inlinenoexcept |