23 lines
657 B
Haskell
23 lines
657 B
Haskell
-- |
|
|
-- Module : Crypto.Random.Entropy
|
|
-- License : BSD-style
|
|
-- Maintainer : Vincent Hanquez <vincent@snarc.org>
|
|
-- Stability : experimental
|
|
-- Portability : Good
|
|
--
|
|
module Crypto.Random.Entropy
|
|
( getEntropy
|
|
) where
|
|
|
|
import Data.Maybe (catMaybes)
|
|
import Crypto.Internal.ByteArray (ByteArray)
|
|
import qualified Crypto.Internal.ByteArray as B
|
|
|
|
import Crypto.Random.Entropy.Unsafe
|
|
|
|
-- | Get some entropy from the system source of entropy
|
|
getEntropy :: ByteArray byteArray => Int -> IO byteArray
|
|
getEntropy n = do
|
|
backends <- catMaybes `fmap` sequence supportedBackends
|
|
B.alloc n (replenish n backends)
|