[number] further cleanup random generation
This commit is contained in:
parent
c0e50547ad
commit
bc4a55ff74
@ -10,7 +10,6 @@ module Crypto.Number.Generate
|
|||||||
, generateParams
|
, generateParams
|
||||||
, generateMax
|
, generateMax
|
||||||
, generateBetween
|
, generateBetween
|
||||||
, generateOfSize
|
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Crypto.Internal.Imports
|
import Crypto.Internal.Imports
|
||||||
@ -123,8 +122,6 @@ generateMax range
|
|||||||
|
|
||||||
-- | generate a number between the inclusive bound [low,high].
|
-- | generate a number between the inclusive bound [low,high].
|
||||||
generateBetween :: MonadRandom m => Integer -> Integer -> m Integer
|
generateBetween :: MonadRandom m => Integer -> Integer -> m Integer
|
||||||
generateBetween low high = (low +) <$> generateMax (high - low + 1)
|
generateBetween low high
|
||||||
|
| low == 1 = generateMax high >>= \r -> if r == 0 then generateBetween low high else return r
|
||||||
-- | generate a positive integer of a specific bit size.
|
| otherwise = (low +) <$> generateMax (high - low + 1)
|
||||||
generateOfSize :: MonadRandom m => Int -> m Integer
|
|
||||||
generateOfSize bits = generateParams bits (Just SetTwoHighest) False
|
|
||||||
|
|||||||
@ -53,7 +53,7 @@ generatePrime bits = do
|
|||||||
-- as such it shouldn't be used if this number is supposed to be kept safe.
|
-- as such it shouldn't be used if this number is supposed to be kept safe.
|
||||||
generateSafePrime :: MonadRandom m => Int -> m Integer
|
generateSafePrime :: MonadRandom m => Int -> m Integer
|
||||||
generateSafePrime bits = do
|
generateSafePrime bits = do
|
||||||
sp <- generateOfSize bits
|
sp <- generateParams bits (Just SetTwoHighest) True
|
||||||
let p = findPrimeFromWith (\i -> isProbablyPrime (2*i+1)) (sp `div` 2)
|
let p = findPrimeFromWith (\i -> isProbablyPrime (2*i+1)) (sp `div` 2)
|
||||||
return (2*p+1)
|
return (2*p+1)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user