Crypto.Number.Generate

cryptonite-0.13: Cryptography Primitives sink

License | BSD-style
Maintainer | Vincent Hanquez <vincent@snarc.org>
Stability | experimental
Portability | Good
Safe Haskell | None
Language | Haskell2010

Crypto.Number.Generate

Description

Synopsis

- data GenTopPolicy
  - = SetHighest
  - | SetTwoHighest
- generateParams :: MonadRandom m => Int -> Maybe GenTopPolicy -> Bool -> m Integer
- generateMax :: MonadRandom m => Integer -> m Integer
- generateBetween :: MonadRandom m => Integer -> Integer -> m Integer

# Documentation

data GenTopPolicy

Top bits policy when generating a number

Constructors

SetHighest | set the highest bit
SetTwoHighest | set the two highest bit

Instances

Eq GenTopPolicy |
Show GenTopPolicy |

generateParams

Arguments

:: MonadRandom m |
=> Int | number of bits
-> Maybe GenTopPolicy | top bit policy
-> Bool | force the number to be odd
-> m Integer |

Generate a number for a specific size of bits, and optionaly set bottom and top bits

If the top bit policy is `Nothing`, then nothing is done on the highest bit (it's whatever the random generator set).

If @generateOdd is set to `True`, then the number generated is guaranteed to be odd. Otherwise it will be whatever is generated

generateMax

Arguments

:: MonadRandom m |
=> Integer | range
-> m Integer |

Generate a positive integer x, s.t. 0 <= x < range

generateBetween :: MonadRandom m => Integer -> Integer -> m Integer

generate a number between the inclusive bound [low,high].