![]() |
Fabcoin Core
0.16.2
P2P Digital Currency
|
Hardware generated random numbers using RDSEED instruction. More...
#include <rdrand.h>
Public Member Functions | |
| std::string | AlgorithmName () const |
| Provides the name of this algorithm. More... | |
| RDSEED (unsigned int retries=64) | |
| Construct a RDSEED generator. More... | |
| virtual | ~RDSEED () |
| unsigned int | GetRetries () const |
| Retrieve the number of retries used by the generator. More... | |
| void | SetRetries (unsigned int retries) |
| Set the number of retries used by the generator. More... | |
| virtual void | GenerateBlock (byte *output, size_t size) |
| Generate random array of bytes. More... | |
| virtual void | DiscardBytes (size_t n) |
| Generate and discard n bytes. More... | |
| virtual void | IncorporateEntropy (const byte *input, size_t length) |
| Update RNG state with additional unpredictable values. More... | |
Public Member Functions inherited from RandomNumberGenerator | |
| virtual | ~RandomNumberGenerator () |
| virtual bool | CanIncorporateEntropy () const |
| Determines if a generator can accept additional entropy. More... | |
| virtual byte | GenerateByte () |
| Generate new random byte and return it. More... | |
| virtual unsigned int | GenerateBit () |
| Generate new random bit and return it. More... | |
| virtual word32 | GenerateWord32 (word32 min=0, word32 max=0xffffffffUL) |
| Generate a random 32 bit word in the range min to max, inclusive. More... | |
| virtual void | GenerateIntoBufferedTransformation (BufferedTransformation &target, const std::string &channel, lword length) |
| Generate random bytes into a BufferedTransformation. More... | |
| template<class IT > | |
| void | Shuffle (IT begin, IT end) |
| Randomly shuffle the specified array. More... | |
Public Member Functions inherited from Algorithm | |
| virtual | ~Algorithm () |
| Algorithm (bool checkSelfTestStatus=true) | |
| Interface for all crypto algorithms. More... | |
Public Member Functions inherited from Clonable | |
| virtual | ~Clonable () |
| virtual Clonable * | Clone () const |
| Copies this object. More... | |
Private Attributes | |
| unsigned int | m_retries |
Hardware generated random numbers using RDSEED instruction.
|
inline |
Construct a RDSEED generator.
| retries | the number of retries for failed calls to the hardware |
RDSEED() constructs a generator with a maximum number of retires for failed generation attempts.
Empirical testing under a 6th generaton i7 (6200U) shows RDSEED fails to fulfill requests at about 6 to 8 times the rate of RDRAND. The default retries reflects the difference.
|
inlinevirtual |
Provides the name of this algorithm.
The standard algorithm name can be a name like AES or AES/GCM. Some algorithms do not have standard names yet. For example, there is no standard algorithm name for Shoup's ECIES.
Reimplemented from Algorithm.
Definition at line 129 of file rdrand.h.
|
inlinevirtual |
Generate and discard n bytes.
| n | the number of bytes to generate and discard |
the RDSEED generator discards words, not bytes. If n is not a multiple of a machine word, then it is rounded up to that size.
Reimplemented from RandomNumberGenerator.
Definition at line 176 of file rdrand.h.
|
inlinevirtual |
Generate random array of bytes.
| output | the byte buffer |
| size | the length of the buffer, in bytes |
Reimplemented from RandomNumberGenerator.
Definition at line 162 of file rdrand.h.
|
inline |
Retrieve the number of retries used by the generator.
Definition at line 144 of file rdrand.h.
|
inlinevirtual |
Update RNG state with additional unpredictable values.
| input | unused |
| length | unused |
The operation is a nop for this generator.
Reimplemented from RandomNumberGenerator.
Definition at line 186 of file rdrand.h.
|
inline |
Set the number of retries used by the generator.
| retries | number of times GenerateBlock() will attempt to recover from a failed generation |
Definition at line 151 of file rdrand.h.
1.8.11