Crypto++  8.2
Free C++ class library of cryptographic schemes
Classes | Functions | Variables
osrng.h File Reference

Classes for access to the operating system's random number generators. More...

Go to the source code of this file.


class  OS_RNG_Err
 Exception thrown when an operating system error is encountered. More...
class  MicrosoftCryptoProvider
class  NonblockingRng
 Wrapper class for /dev/random and /dev/srandom. More...
class  BlockingRng
 Wrapper class for /dev/random and /dev/srandom. More...
class  AutoSeededRandomPool
 Automatically Seeded Randomness Pool. More...
class  AutoSeededX917RNG< BLOCK_CIPHER >
 Automatically Seeded X9.17 RNG. More...
class  DefaultAutoSeededRNG
 A typedef providing a default generator. More...


CRYPTOPP_DLL void CRYPTOPP_API OS_GenerateRandomBlock (bool blocking, byte *output, size_t size)
 OS_GenerateRandomBlock. More...



Detailed Description

Classes for access to the operating system's random number generators.

Definition in file osrng.h.

Function Documentation

◆ OS_GenerateRandomBlock()

CRYPTOPP_DLL void CRYPTOPP_API OS_GenerateRandomBlock ( bool  blocking,
byte *  output,
size_t  size 


Generate random array of bytes

blockingspecifies whther a bobcking or non-blocking generator should be used
outputthe byte buffer
sizethe length of the buffer, in bytes

OS_GenerateRandomBlock() uses the underlying operating system's random number generator. On Windows, CryptGenRandom() is called using NonblockingRng.

On Unix and compatibles, /dev/urandom is called if blocking is false using NonblockingRng. If blocking is true, then either /dev/randomd or /dev/srandom is used by way of BlockingRng, if available.

Definition at line 266 of file osrng.cpp.