-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | Crypto Pseudo Random Number Generator using AES in counter mode.
--   
--   Simple crypto pseudo-random-number-generator with really good
--   randomness property.
--   
--   Using ent, a randomness property maker on one 1Mb sample: Entropy =
--   7.999837 bits per byte. Optimum compression would reduce the size of
--   this 1048576 byte file by 0 percent. Chi square distribution for
--   1048576 samples is 237.02 Arithmetic mean value of data bytes is
--   127.3422 (127.5 = random) Monte Carlo value for Pi is 3.143589568
--   (error 0.06 percent)
--   
--   Compared to urandom with the same sampling: Entropy = 7.999831 bits
--   per byte. Optimum compression would reduce the size of this 1048576
--   byte file by 0 percent. Chi square distribution for 1048576 samples is
--   246.63 Arithmetic mean value of data bytes is 127.6347 (127.5 =
--   random). Monte Carlo value for Pi is 3.132465868 (error 0.29 percent).
@package cprng-aes
@version 0.6.1

-- | this CPRNG is an AES based counter system.
--   
--   the internal size of fields are: 16 bytes IV, 16 bytes counter, 32
--   bytes key
--   
--   each block are generated the following way: aes (IV xor
--   counter) -> 16 bytes output
module Crypto.Random.AESCtr

-- | AES Counter mode Pseudo random generator.
--   
--   Provide a very good Cryptographic pseudo random generator that create
--   pseudo random output based an AES cipher used in counter mode,
--   initialized from random key, random IV and random nonce.
--   
--   This CPRG uses 64 bytes of pure entropy to create its random state.
--   
--   By default, this generator will automatically reseed after generating
--   1 megabyte of data.
data AESRNG

-- | make an AES RNG from an EntropyPool.
--   
--   use makeSystem to not have to deal with the entropy pool.
make :: EntropyPool -> AESRNG

-- | Initialize a new AES RNG using the system entropy. {--}
makeSystem :: IO AESRNG
instance GHC.Show.Show Crypto.Random.AESCtr.AESRNG
instance Crypto.Random.Generator.CPRG Crypto.Random.AESCtr.AESRNG
