Fabcoin Core  0.16.2
P2P Digital Currency
Classes
randpool.h File Reference

Class file for Randomness Pool. More...

#include "cryptlib.h"
#include "filters.h"
#include "secblock.h"
#include "smartptr.h"
#include "aes.h"
Include dependency graph for randpool.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  RandomPool
 Randomness Pool based on AES-256. More...
 

Detailed Description

Class file for Randomness Pool.

RandomPool can be used to generate cryptographic quality pseudorandom bytes after seeding the pool with IncorporateEntropy(). Internally, the generator uses AES-256 to produce the stream. Entropy is stirred in using SHA-256.

RandomPool used to follow the design of randpool in PGP 2.6.x. At version 5.5 RandomPool was redesigned to reduce the risk of reusing random numbers after state rollback (which may occur when running in a virtual machine like VMware or a hosted environment).

If you need the pre-Crypto++ 5.5 generator then you can find it with:

   $ git clone https://github.com/weidai11/cryptopp cryptopp-ancient
   $ cryptopp-ancient
   # Checkout the RandomPool change
   $ git checkout f41245df6fb9b85574260eca9cd32777e8ab5136
   # Go back one more
   git checkout HEAD~1
   $ grep 'MDC<SHA>' *.h *.cpp
   randpool.cpp:typedef MDC<SHA> RandomPoolCipher;
Since
Crypto++ 4.0 (PGP 2.6.x style), Crypto++ 5.5 (AES-256 based)

Definition in file randpool.h.