OpenSSL.BN
 Contents Type Allocation Conversion from/to Integer Computation Random number generation
Description
BN - multiprecision integer arithmetics
Synopsis
 data BigNum allocaBN :: (BigNum -> IO a) -> IO a withBN :: Integer -> (BigNum -> IO a) -> IO a newBN :: Integer -> IO BigNum peekBN :: BigNum -> IO Integer integerToBN :: Integer -> IO BigNum bnToInteger :: BigNum -> IO Integer integerToMPI :: Integer -> IO ByteString mpiToInteger :: ByteString -> IO Integer modexp :: Integer -> Integer -> Integer -> Integer randIntegerUptoNMinusOneSuchThat :: (Integer -> Bool) -> Integer -> IO Integer prandIntegerUptoNMinusOneSuchThat :: (Integer -> Bool) -> Integer -> IO Integer randIntegerZeroToNMinusOne :: Integer -> IO Integer prandIntegerZeroToNMinusOne :: Integer -> IO Integer randIntegerOneToNMinusOne :: Integer -> IO Integer prandIntegerOneToNMinusOne :: Integer -> IO Integer
Type
data BigNum
 BigNum is an opaque object representing a big number.
Allocation
allocaBN :: (BigNum -> IO a) -> IO a
allocaBN f allocates a BigNum and computes f. Then it frees the BigNum.
withBN :: Integer -> (BigNum -> IO a) -> IO a
withBN n f converts n to a BigNum and computes f. Then it frees the BigNum.
newBN :: Integer -> IO BigNum
This is an alias to integerToBN.
Conversion from/to Integer
peekBN :: BigNum -> IO Integer
This is an alias to bnToInteger.
integerToBN :: Integer -> IO BigNum
This is a GHC specific, fast conversion between Integers and OpenSSL bignums. It returns a malloced BigNum.
bnToInteger :: BigNum -> IO Integer
Convert a BIGNUM to an Integer
integerToMPI :: Integer -> IO ByteString
Convert an Integer to an MPI. SEe bnToMPI for the format
mpiToInteger :: ByteString -> IO Integer
Convert an MPI to an Integer. SEe bnToMPI for the format
Computation
modexp :: Integer -> Integer -> Integer -> Integer
modexp a p m computes a to the p-th power modulo m.
Random number generation
randIntegerUptoNMinusOneSuchThat
 :: (Integer -> Bool) a filter function -> Integer one plus the upper limit -> IO Integer Return a strongly random number in the range 0 <= x < n where the given filter function returns true.
prandIntegerUptoNMinusOneSuchThat
 :: (Integer -> Bool) a filter function -> Integer one plus the upper limit -> IO Integer Return a random number in the range 0 <= x < n where the given filter function returns true.
randIntegerZeroToNMinusOne :: Integer -> IO Integer
Return a strongly random number in the range 0 <= x < n
prandIntegerZeroToNMinusOne :: Integer -> IO Integer
Return a random number in the range 0 <= x < n
randIntegerOneToNMinusOne :: Integer -> IO Integer
Return a strongly random number in the range 0 < x < n
prandIntegerOneToNMinusOne :: Integer -> IO Integer
Return a random number in the range 0 < x < n