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