Serialized Form


Package org.hd.d.efs

Class org.hd.d.efs.EntropyPool extends java.security.SecureRandom implements Serializable

serialVersionUID: -8340547627041895636L

Serialized Fields

maxPoolSizeBits

int maxPoolSizeBits
Max pool size in bits; strictly positive.


poolLengthBytes

int poolLengthBytes
Length of the pool in bytes.


guarantor

java.security.SecureRandom guarantor
Underlying SecureRandom implementation used as 'guarantor'; can be null. Any seed provided is passed to this generator if not null (and some other reseeding is done from time to time).

All output is XORed with this generator (if non-null) to provide a minimum guarantee of security and output purity, etc.

This generator may not be trustworthy and we should try not to leak entropy (or internal state) into it nor otherwise trust it completely.


externalEntropySource

java.net.URL externalEntropySource
If non-null, this is a URL from which we can get emergency entropy; null by default. It had better be non-observable, and we may, for example, attempt get data in fairly big chunks and compress it to make sure that it at least looks random.

This can be a file: URL, in which case, if /dev/random, it may work on all newish Solaris and Linux boxes and on Windows due to an emulation.

URL is assumed to be immutable, so no defensive copying is needed.

Reads from the URL will be in chunks of


injectEmergencyBitsIfPoolEmpty

boolean injectEmergencyBitsIfPoolEmpty
If true, inject emergency entropy when extracting bits from empty pool. Setting this true is expensive, but should essentially guarantee that any retrieved block of bytes or other `random' quantity contains some unguessable bits.


initialEntropyBits

int initialEntropyBits
Note initial entropy to try to inject; never negative.


_iCE_count

long _iCE_count
Counter private to injectCheapEntropyTimeAndCount; hopefully with many bits somewhat random.


_aE_count

int _aE_count
Private insert location for addEntropy(); never negative.


_nBU_count

long _nBU_count
Private counter for nextBytes().

Class org.hd.d.efs.Whitener extends java.security.SecureRandom implements Serializable

Serialized Fields

mainSource

java.security.SecureRandom mainSource
This is the main random number source; never null.


whitenerSource

java.security.SecureRandom whitenerSource
This is the whitener random number source; never null. This must not be the same as or numerically derived from the mainSource.


Package org.hd.d.efs.servlet

Class org.hd.d.efs.servlet.GathererServlet extends javax.servlet.http.HttpServlet implements Serializable

Serialized Fields

poolNames

java.lang.String[] poolNames
Names of pools to be maintained. Overridden if need be by init().


seedSubDir

java.lang.String seedSubDir
Name of directory inside WAR temp dir to store seed files. Overridden if need be by init().