Botan: Botan::RandomNumberGenerator Class Reference

Botan 1.10.16

Public Member Functions | Static Public Member Functions | List of all members
Botan::RandomNumberGenerator Class Referenceabstract

`#include <rng.h>`

Inheritance diagram for Botan::RandomNumberGenerator:

## Public Member Functions
virtual void | add_entropy (const byte in[], size_t length)=0
virtual void | add_entropy_source (EntropySource *source)=0
virtual void | clear ()=0
virtual bool | is_seeded () const
virtual std::string | name () const =0
byte | next_byte ()
SecureVector< byte > | random_vec (size_t bytes)
virtual void | randomize (byte output[], size_t length)=0
| RandomNumberGenerator ()
virtual void | reseed (size_t bits_to_collect)=0
virtual | ~RandomNumberGenerator ()

## Static Public Member Functions
static RandomNumberGenerator * | make_rng ()

## Detailed Description

This class represents a random number (RNG) generator object.

Definition at line 20 of file rng.h.

## Constructor & Destructor Documentation

## ◆ RandomNumberGenerator()

Botan::RandomNumberGenerator::RandomNumberGenerator | ( |  | ) |
| inline

Definition at line 89 of file rng.h.

89 {}

## ◆ ~RandomNumberGenerator()

virtual Botan::RandomNumberGenerator::~RandomNumberGenerator | ( |  | ) |
| inlinevirtual

Definition at line 90 of file rng.h.

90 {}

## Member Function Documentation

## ◆ add_entropy()

virtual void Botan::RandomNumberGenerator::add_entropy | ( | const byte | in[],
|  | size_t | length
| ) |  |
| pure virtual

Add entropy to this RNG.

Parameters

  in | a byte array containg the entropy to be added
  length | the length of the byte array in

Implemented in Botan::Null_RNG, Botan::AutoSeeded_RNG, Botan::HMAC_RNG, Botan::Randpool, and Botan::ANSI_X931_RNG.

Referenced by Botan::ANSI_X931_RNG::add_entropy(), and Botan::TLS_Server::close().

## ◆ add_entropy_source()

virtual void Botan::RandomNumberGenerator::add_entropy_source | ( | EntropySource * | source | ) |
| pure virtual

Add this entropy source to the RNG object

Parameters

  source | the entropy source which will be retained and used by RNG

Implemented in Botan::Null_RNG, Botan::HMAC_RNG, Botan::AutoSeeded_RNG, Botan::Randpool, and Botan::ANSI_X931_RNG.

Referenced by Botan::ANSI_X931_RNG::add_entropy_source().

## ◆ clear()

virtual void Botan::RandomNumberGenerator::clear | ( |  | ) |
| pure virtual

Clear all internally held values of this RNG.

Implemented in Botan::Null_RNG, Botan::HMAC_RNG, Botan::AutoSeeded_RNG, Botan::Randpool, and Botan::ANSI_X931_RNG.

Referenced by Botan::ANSI_X931_RNG::clear().

## ◆ is_seeded()

virtual bool Botan::RandomNumberGenerator::is_seeded | ( |  | ) | const
| inlinevirtual

Check whether this RNG is seeded.

Returns
  true if this RNG was already seeded, false otherwise.

Reimplemented in Botan::Null_RNG, Botan::HMAC_RNG, Botan::AutoSeeded_RNG, Botan::Randpool, and Botan::ANSI_X931_RNG.

Definition at line 57 of file rng.h.

Referenced by Botan::ANSI_X931_RNG::randomize().

57 { return true; }

## ◆ make_rng()

RandomNumberGenerator * Botan::RandomNumberGenerator::make_rng | ( |  | ) |
| static

Create a seeded and active RNG object for general application use

Definition at line 29 of file rng.cpp.

30 {
31 #if defined(BOTAN_HAS_AUTO_SEEDING_RNG)
32 return new AutoSeeded_RNG;
33 #endif
34
35 throw Algorithm_Not_Found("RandomNumberGenerator::make_rng - no RNG found");
36 }

## ◆ name()

virtual std::string Botan::RandomNumberGenerator::name | ( |  | ) | const
| pure virtual

Return the name of this object

Implemented in Botan::Null_RNG, Botan::HMAC_RNG, Botan::AutoSeeded_RNG, Botan::Randpool, and Botan::ANSI_X931_RNG.

## ◆ next_byte()

byte Botan::RandomNumberGenerator::next_byte | ( |  | ) |

Return a random byte

Returns
  random byte

Definition at line 19 of file rng.cpp.

References randomize().

20 {
21 byte out;
22 this->randomize(&out, 1);
23 return out;
24 }
Botan::RandomNumberGenerator::randomize
virtual void randomize(byte output[], size_t length)=0
Botan::byte
unsigned char byte
Definition: types.h:22

## ◆ random_vec()

SecureVector<byte> Botan::RandomNumberGenerator::random_vec | ( | size_t | bytes | ) |
| inline

Return a random vector

Parameters

  bytes | number of bytes in the result

Returns
  randomized vector of length bytes

Definition at line 40 of file rng.h.

References Botan::MemoryRegion< T >::size().

Referenced by Botan::ANSI_X931_RNG::randomize().

41 {
42 SecureVector<byte> output(bytes);
43 randomize(&output[0], output.size());
44 return output;
45 }
Botan::RandomNumberGenerator::randomize
virtual void randomize(byte output[], size_t length)=0

## ◆ randomize()

virtual void Botan::RandomNumberGenerator::randomize | ( | byte | output[],
|  | size_t | length
| ) |  |
| pure virtual

Randomize a byte array.

Parameters

  output | the byte array to hold the random output.
  length | the length of the byte array output.

Implemented in Botan::Null_RNG, Botan::HMAC_RNG, Botan::Randpool, Botan::AutoSeeded_RNG, and Botan::ANSI_X931_RNG.

Referenced by next_byte(), and Botan::ANSI_X931_RNG::randomize().

## ◆ reseed()

virtual void Botan::RandomNumberGenerator::reseed | ( | size_t | bits_to_collect | ) |
| pure virtual

Seed this RNG using the entropy sources it contains.

Parameters

  bits_to_collect | is the number of bits of entropy to attempt to gather from the entropy sources

Implemented in Botan::Null_RNG, Botan::HMAC_RNG, Botan::AutoSeeded_RNG, Botan::Randpool, and Botan::ANSI_X931_RNG.

Referenced by Botan::ANSI_X931_RNG::reseed().

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

- src/rng/rng.h
- src/rng/rng.cpp