Safe Haskell | None |
---|
Skein 256 as a PRNG.
- data SkeinGen
- data Block256
- class Random a where
- class RandomGen g where
- newSkeinGen :: IO SkeinGen
- mkSkeinGen :: Serialize a => a -> SkeinGen
- mkSkeinGenEx :: Int -> Block256 -> SkeinGen
- randomBytes :: Int -> SkeinGen -> (ByteString, SkeinGen)
- reseedSkeinGen :: Block256 -> SkeinGen -> SkeinGen
- toBlock :: Threefish a b => ByteString -> Maybe a
- fromBlock :: Threefish a b => a -> ByteString
Documentation
Skein-based PRNG as defined in the Skein 1.3 paper.
class Random a where
randomR :: RandomGen g => (a, a) -> g -> (a, g)
random :: RandomGen g => g -> (a, g)
randomRs :: RandomGen g => (a, a) -> g -> [a]
class RandomGen g where
newSkeinGen :: IO SkeinGenSource
Create a new Skein PRNG from the system's entropy pool.
mkSkeinGen :: Serialize a => a -> SkeinGenSource
Create a Skein PRNG from a seed.
mkSkeinGenEx :: Int -> Block256 -> SkeinGenSource
Create a Skein PRNG with a custom pool size. Larger pool sizes give faster random data, but obviously take up more memory. Pool size is preserved across splits.
randomBytes :: Int -> SkeinGen -> (ByteString, SkeinGen)Source
Generate n random bytes using the given generator.
reseedSkeinGen :: Block256 -> SkeinGen -> SkeinGenSource
Reseed a Skein PRNG.
toBlock :: Threefish a b => ByteString -> Maybe aSource
Create an appropriately sized block.
fromBlock :: Threefish a b => a -> ByteStringSource
Extract the contents of a block.