BlockingRng Class Reference

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

`#include <osrng.h>`

Inheritance diagram for BlockingRng:

## Public Member Functions

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

## 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

## StaticAlgorithmName()

const char * BlockingRng::StaticAlgorithmName | ( |  | ) |

inline static

Definition at line 122 of file osrng.h.

## 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