cryptonite/Crypto/Random.hs
2015-05-09 14:23:32 +01:00

31 lines
738 B
Haskell

-- Module : Crypto.Random
-- License : BSD-style
-- Maintainer : Vincent Hanquez <vincent@snarc.org>
-- Stability : stable
-- Portability : good
--
module Crypto.Random
(
-- * Deterministic instances
ChaChaDRG
-- * Deterministic Random class
, drgNew
, drgNewTest
, withDRG
, DRG(..)
-- * Random abstraction
, MonadRandom(..)
) where
import Crypto.Random.Types
import Crypto.Random.ChaChaDRG
import Crypto.Random.Entropy
import Data.Memory.ByteArray (ScrubbedBytes)
import Crypto.Internal.Imports
drgNew :: IO ChaChaDRG
drgNew = initialize <$> (getEntropy 40 :: IO ScrubbedBytes)
drgNewTest :: (Word64, Word64, Word64, Word64, Word64) -> ChaChaDRG
drgNewTest = initializeWords