47 if (RAND_bytes(bytes, size) != 1) {
48 BOOST_THROW_EXCEPTION(std::runtime_error(
"Failed to generate random bytes (error code " +
56 thread_local std::mt19937 rng = [] {
57 std::random_device rd;
59 std::seed_seq seeds{rd(), rd(), rd(), rd(), rd(), rd(), rd(), rd()};
60 return std::mt19937{seeds};
68 thread_local std::uniform_int_distribution<uint32_t> distribution;
75 thread_local std::uniform_int_distribution<uint64_t> distribution;
Copyright (c) 2011-2015 Regents of the University of California.
uint64_t generateSecureWord64()
Generate a cryptographically secure random integer from the range [0, 2^64)
std::mt19937 RandomNumberEngine
uint32_t generateWord32()
Generate a non-cryptographically-secure random integer in the range [0, 2^32)
uint32_t generateSecureWord32()
Generate a cryptographically secure random integer from the range [0, 2^32)
RandomNumberEngine & getRandomNumberEngine()
Returns a reference to a thread-local instance of a properly seeded PRNG.
uint64_t generateWord64()
Generate a non-cryptographically-secure random integer in the range [0, 2^64)
void generateSecureBytes(uint8_t *bytes, size_t size)
Fill bytes of size with cryptographically secure random bytes.
std::string to_string(const V &v)