Safe Haskell | None |
---|
- data State a
- getCounter :: State a -> Word64
- reseedInterval :: Word64
- update :: BlockCipher a => ByteString -> State a -> Maybe (State a)
- instantiate :: BlockCipher a => Entropy -> PersonalizationString -> Maybe (State a)
- reseed :: BlockCipher a => State a -> Entropy -> AdditionalInput -> Maybe (State a)
- generate :: BlockCipher a => State a -> ByteLength -> AdditionalInput -> Maybe (RandomBits, State a)
Documentation
Serialize a => Serialize (State a) | |
BlockCipher x => CryptoRandomGen (CtrDRBGWith x) |
getCounter :: State a -> Word64Source
Get a count of how many times this generator has been used since instantiation or reseed.
reseedInterval :: Word64Source
The reseed interval
update :: BlockCipher a => ByteString -> State a -> Maybe (State a)Source
Update the RNG
instantiate :: BlockCipher a => Entropy -> PersonalizationString -> Maybe (State a)Source
Instantiate a new CTR based counter. This assumes the block cipher is safe for generating 2^48 seperate bitstrings (e.g. For SP800-90 we assume AES and not 3DES)
reseed :: BlockCipher a => State a -> Entropy -> AdditionalInput -> Maybe (State a)Source
reseed oldRNG entropy additionalInfo
Reseed a DRBG with some entropy (ent
must be at least seedlength, which is the
block length plus the key length)
generate :: BlockCipher a => State a -> ByteLength -> AdditionalInput -> Maybe (RandomBits, State a)Source
Generate new bytes of data, stepping the generator.