Security Scol plugin
|
Randomness Pool based on PGP 2.6.x with MDC. More...
#include <randpool.h>
Public Member Functions | |
OldRandomPool (unsigned int poolSize=384) | |
Construct an OldRandomPool. | |
bool | CanIncorporateEntropy () const |
Determines if a generator can accept additional entropy. | |
void | IncorporateEntropy (const byte *input, size_t length) |
Update RNG state with additional unpredictable values. | |
void | GenerateIntoBufferedTransformation (BufferedTransformation &target, const std::string &channel, lword size) |
Generate random bytes into a BufferedTransformation. | |
byte | GenerateByte () |
Generate new random byte and return it. | |
void | GenerateBlock (byte *output, size_t size) |
Generate random array of bytes. | |
word32 | GenerateWord32 (word32 min=0, word32 max=0xffffffffUL) |
Generate a random 32 bit word in the range min to max, inclusive. | |
Public Member Functions inherited from RandomNumberGenerator | |
virtual unsigned int | GenerateBit () |
Generate new random bit and return it. | |
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. | |
Protected Member Functions | |
void | Stir () |
Randomness Pool based on PGP 2.6.x with MDC.
If you need the pre-Crypto++ 5.5 generator then use OldRandomPool class. The OldRandomPool also provides the modern interface, including CanIncorporateEntropy
, IncorporateEntropy
and GenerateIntoBufferedTransformation
.
You should reseed the generator after a fork() to avoid multiple generators with the same internal state.
You should migrate away from OldRandomPool at the earliest opportunity. Use a modern random number generator or key derivation function, like AutoSeededRandomPool or HKDF.
Definition at line 74 of file randpool.h.
OldRandomPool::OldRandomPool | ( | unsigned int | poolSize = 384 | ) |
Construct an OldRandomPool.
poolSize | internal pool size of the generator |
poolSize must be greater than 16
Definition at line 81 of file randpool.cpp.
|
inlinevirtual |
Determines if a generator can accept additional entropy.
Reimplemented from RandomNumberGenerator.
Definition at line 83 of file randpool.h.
|
virtual |
Generate random array of bytes.
output | the byte buffer |
size | the length of the buffer, in bytes |
All generated values are uniformly distributed over the range specified within the the constraints of a particular generator.
Reimplemented from RandomNumberGenerator.
Definition at line 166 of file randpool.cpp.
|
virtual |
Generate new random byte and return it.
Default implementation calls GenerateBlock() with one byte.
All generated values are uniformly distributed over the range specified within the the constraints of a particular generator.
Reimplemented from RandomNumberGenerator.
Definition at line 158 of file randpool.cpp.
|
virtual |
Generate random bytes into a BufferedTransformation.
target | the BufferedTransformation object which receives the bytes |
channel | the channel on which the bytes should be pumped |
length | the number of bytes to generate |
The default implementation calls GenerateBlock() and pumps the result into the DEFAULT_CHANNEL of the target.
All generated values are uniformly distributed over the range specified within the the constraints of a particular generator.
Reimplemented from RandomNumberGenerator.
Definition at line 145 of file randpool.cpp.
Generate a random 32 bit word in the range min to max, inclusive.
min | the lower bound of the range |
max | the upper bound of the range |
The default implementation calls Crop() on the difference between max and min, and then returns the result added to min.
All generated values are uniformly distributed over the range specified within the the constraints of a particular generator.
Reimplemented from RandomNumberGenerator.
Definition at line 110 of file randpool.cpp.
|
virtual |
Update RNG state with additional unpredictable values.
input | the entropy to add to the generator |
length | the size of the input buffer |
NotImplemented |
A generator may or may not accept additional entropy. Call CanIncorporateEntropy() to test for the ability to use additional entropy.
If a derived class does not override IncorporateEntropy(), then the base class throws NotImplemented.
Reimplemented from RandomNumberGenerator.
Definition at line 89 of file randpool.cpp.
|
protected |
Definition at line 130 of file randpool.cpp.