Botan  1.11.16
Public Member Functions | Static Public Member Functions | List of all members
Botan::Null_RNG Class Reference

#include <rng.h>

Inheritance diagram for Botan::Null_RNG:
Botan::RandomNumberGenerator

Public Member Functions

void add_entropy (const byte[], size_t) override
 
void clear () override
 
bool is_seeded () const override
 
std::string name () const override
 
byte next_byte ()
 
virtual secure_vector< byterandom_vec (size_t bytes)
 
void randomize (byte[], size_t) override
 
void reseed (size_t) override
 

Static Public Member Functions

static RandomNumberGeneratormake_rng ()
 

Detailed Description

Null/stub RNG - fails if you try to use it for anything

Definition at line 103 of file rng.h.

Member Function Documentation

void Botan::Null_RNG::add_entropy ( const byte  in[],
size_t  length 
)
inlineoverridevirtual

Add entropy to this RNG.

Parameters
ina byte array containg the entropy to be added
lengththe length of the byte array in

Implements Botan::RandomNumberGenerator.

Definition at line 114 of file rng.h.

114 {}
void Botan::Null_RNG::clear ( )
inlineoverridevirtual

Clear all internally held values of this RNG.

Implements Botan::RandomNumberGenerator.

Definition at line 108 of file rng.h.

108 {}
bool Botan::Null_RNG::is_seeded ( ) const
inlineoverridevirtual

Check whether this RNG is seeded.

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

Implements Botan::RandomNumberGenerator.

Definition at line 113 of file rng.h.

113 { return false; }
RandomNumberGenerator * Botan::RandomNumberGenerator::make_rng ( )
staticinherited

Create a seeded and active RNG object for general application use Added in 1.8.0

Definition at line 14 of file rng.cpp.

References Botan::make_message_auth().

15  {
16  std::unique_ptr<MessageAuthenticationCode> h1(make_message_auth("HMAC(SHA-512)"));
17  std::unique_ptr<MessageAuthenticationCode> h2(h1->clone());
18  std::unique_ptr<RandomNumberGenerator> rng(new HMAC_RNG(h1.release(), h2.release()));
19 
20  rng->reseed(256);
21 
22  return rng.release();
23  }
std::unique_ptr< MessageAuthenticationCode > make_message_auth(const std::string &algo_spec, const std::string &provider)
Definition: lookup.cpp:71
std::string Botan::Null_RNG::name ( ) const
inlineoverridevirtual

Return the name of this object

Implements Botan::RandomNumberGenerator.

Definition at line 110 of file rng.h.

110 { return "Null_RNG"; }
byte Botan::RandomNumberGenerator::next_byte ( )
inlineinherited

Return a random byte

Returns
random byte

Definition at line 53 of file rng.h.

Referenced by Botan::random_prime().

54  {
55  byte out;
56  this->randomize(&out, 1);
57  return out;
58  }
virtual void randomize(byte output[], size_t length)=0
uint8_t byte
Definition: types.h:31
virtual secure_vector<byte> Botan::RandomNumberGenerator::random_vec ( size_t  bytes)
inlinevirtualinherited

Return a random vector

Parameters
bytesnumber of bytes in the result
Returns
randomized vector of length bytes

Definition at line 42 of file rng.h.

Referenced by Botan::TLS::Client_Key_Exchange::Client_Key_Exchange(), Botan::Curve25519_PrivateKey::Curve25519_PrivateKey(), Botan::TLS::Session::encrypt(), Botan::KeyPair::encryption_consistency_check(), Botan::generate_bcrypt(), Botan::mceies_encrypt(), Botan::OctetString::OctetString(), Botan::pbes2_encrypt(), Botan::BigInt::randomize(), Botan::TLS::Session_Manager_SQL::Session_Manager_SQL(), and Botan::KeyPair::signature_consistency_check().

43  {
44  secure_vector<byte> output(bytes);
45  randomize(&output[0], output.size());
46  return output;
47  }
virtual void randomize(byte output[], size_t length)=0
void Botan::Null_RNG::randomize ( byte  output[],
size_t  length 
)
inlineoverridevirtual

Randomize a byte array.

Parameters
outputthe byte array to hold the random output.
lengththe length of the byte array output.

Implements Botan::RandomNumberGenerator.

Definition at line 106 of file rng.h.

106 { throw PRNG_Unseeded("Null_RNG"); }
void Botan::Null_RNG::reseed ( size_t  bits_to_collect)
inlineoverridevirtual

Seed this RNG using the entropy sources it contains.

Parameters
bits_to_collectis the number of bits of entropy to attempt to gather from the entropy sources

Implements Botan::RandomNumberGenerator.

Definition at line 112 of file rng.h.

112 {}

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