Crypto++ 8.4 Free C++ class library of cryptographic schemes

Public Member Functions | Static Public Member Functions | List of all members
BlockingRng Class Reference

Wrapper class for /dev/random and /dev/srandom. More...

Inheritance diagram for BlockingRng:

## Public Member Functions
| BlockingRng ()
| Construct a BlockingRng.
void | GenerateBlock (byte *output, size_t size)
| Generate random array of bytes. More...
Public Member Functions inherited from RandomNumberGenerator
virtual void | IncorporateEntropy (const byte *input, size_t length)
| Update RNG state with additional unpredictable values. More...
virtual bool | CanIncorporateEntropy () const
| Determines if a generator can accept additional entropy. More...
virtual byte | GenerateByte ()
| Generate new random byte and return it. More...
virtual unsigned int | GenerateBit ()
| Generate new random bit and return it. More...
virtual word32 | GenerateWord32 (word32 min=0, word32 max=0xffffffffUL)
| Generate a random 32 bit word in the range min to max, inclusive. More...
virtual void | GenerateIntoBufferedTransformation (BufferedTransformation &target, const std::string &channel, lword length)
| Generate random bytes into a BufferedTransformation. More...
virtual void | DiscardBytes (size_t n)
| Generate and discard n bytes. More...
template<class IT >
void | Shuffle (IT begin, IT end)
| Randomly shuffle the specified array. More...
Public Member Functions inherited from Algorithm
| Algorithm (bool checkSelfTestStatus=true)
| Interface for all crypto algorithms. More...
virtual std::string | AlgorithmName () const
| Provides the name of this algorithm. More...
virtual std::string | AlgorithmProvider () const
| Retrieve the provider of this algorithm. More...
Public Member Functions inherited from Clonable
virtual Clonable * | Clone () const
| Copies this object. More...

## Static Public Member Functions
static const char * | StaticAlgorithmName ()

## Detailed Description

Wrapper class for /dev/random and /dev/srandom.

Encapsulates /dev/random on Linux, OS X and Unix; and /dev/srandom on the BSDs.

Note
  On Linux the /dev/random interface is effectively deprecated. According to the Kernel Crypto developers, /dev/urandom or getrandom(2) should be used instead. Also see [RFC PATCH v12 3/4] Linux Random Number Generator on the kernel-crypto mailing list.

Definition at line 119 of file osrng.h.

## Member Function Documentation

## ◆ GenerateBlock()

void BlockingRng::GenerateBlock | ( | byte * | output,
|  | size_t | size
| ) |  |
| virtual

Generate random array of bytes.

Parameters

  output | the byte buffer
  size | the length of the buffer, in bytes

GenerateIntoBufferedTransformation() calls are routed to GenerateBlock().

Reimplemented from RandomNumberGenerator.

The documentation for this class was generated from the following file:

- osrng.h