Botan
1.10.9
|
#include <randpool.h>
Public Member Functions | |
void | add_entropy (const byte input[], size_t length) |
void | add_entropy_source (EntropySource *es) |
void | clear () |
bool | is_seeded () const |
std::string | name () const |
byte | next_byte () |
SecureVector< byte > | random_vec (size_t bytes) |
void | randomize (byte[], size_t) |
Randpool (BlockCipher *cipher, MessageAuthenticationCode *mac, size_t pool_blocks=32, size_t iterations_before_reseed=128) | |
void | reseed (size_t bits_to_collect) |
~Randpool () | |
Static Public Member Functions | |
static RandomNumberGenerator * | make_rng () |
Definition at line 21 of file randpool.h.
Botan::Randpool::Randpool | ( | BlockCipher * | cipher, |
MessageAuthenticationCode * | mac, | ||
size_t | pool_blocks = 32 , |
||
size_t | iterations_before_reseed = 128 |
||
) |
cipher | a block cipher to use |
mac | a message authentication code to use |
pool_blocks | how many cipher blocks to use for the pool |
iterations_before_reseed | how many times we'll use the internal state to generate output before reseeding |
Definition at line 169 of file randpool.cpp.
References Botan::BlockCipher::block_size(), Botan::Buffered_Computation::output_length(), Botan::MemoryRegion< T >::resize(), and Botan::SymmetricAlgorithm::valid_keylength().
Botan::Randpool::~Randpool | ( | ) |
Definition at line 199 of file randpool.cpp.
|
virtual |
Add entropy to this RNG.
in | a byte array containg the entropy to be added |
length | the length of the byte array in |
Implements Botan::RandomNumberGenerator.
Definition at line 127 of file randpool.cpp.
References Botan::Buffered_Computation::process(), Botan::MemoryRegion< T >::size(), and Botan::xor_buf().
|
virtual |
Add this entropy source to the RNG object
source | the entropy source which will be retained and used by RNG |
Implements Botan::RandomNumberGenerator.
Definition at line 140 of file randpool.cpp.
|
virtual |
Clear all internally held values of this RNG.
Implements Botan::RandomNumberGenerator.
Definition at line 148 of file randpool.cpp.
References Botan::Algorithm::clear(), and Botan::zeroise().
|
inlinevirtual |
Check whether this RNG is seeded.
Reimplemented from Botan::RandomNumberGenerator.
Definition at line 25 of file randpool.h.
Referenced by randomize().
|
staticinherited |
|
virtual |
Return the name of this object
Implements Botan::RandomNumberGenerator.
Definition at line 161 of file randpool.cpp.
References Botan::Algorithm::name(), and Botan::MessageAuthenticationCode::name().
Referenced by randomize().
|
inherited |
Return a random byte
Definition at line 19 of file rng.cpp.
References Botan::RandomNumberGenerator::randomize().
Referenced by Botan::random_prime().
|
inlineinherited |
Return a random vector
bytes | number of bytes in the result |
Definition at line 40 of file rng.h.
References Botan::MemoryRegion< T >::size().
Referenced by Botan::Client_Hello::Client_Hello(), Botan::Client_Key_Exchange::Client_Key_Exchange(), Botan::KeyPair::encryption_consistency_check(), Botan::generate_bcrypt(), Botan::generate_dsa_primes(), Botan::OctetString::OctetString(), Botan::Client_Key_Exchange::pre_master_secret(), Botan::BigInt::randomize(), Botan::Server_Hello::Server_Hello(), and Botan::KeyPair::signature_consistency_check().
|
virtual |
Randomize a byte array.
output | the byte array to hold the random output. |
length | the length of the byte array output. |
Implements Botan::RandomNumberGenerator.
Definition at line 32 of file randpool.cpp.
References Botan::copy_mem(), is_seeded(), name(), and Botan::MemoryRegion< T >::size().
|
virtual |
Seed this RNG using the entropy sources it contains.
bits_to_collect | is the number of bits of entropy to attempt to gather from the entropy sources |
Implements Botan::RandomNumberGenerator.
Definition at line 100 of file randpool.cpp.
References Botan::Entropy_Accumulator::bits_collected(), Botan::Buffered_Computation::final(), Botan::Entropy_Accumulator::polling_goal_achieved(), Botan::MemoryRegion< T >::size(), and Botan::xor_buf().