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 Source
 BigNum is an opaque object representing a big number.
Allocation
 allocaBN :: (BigNum -> IO a) -> IO a Source
allocaBN f allocates a BigNum and computes f. Then it frees the BigNum.
 withBN :: Integer -> (BigNum -> IO a) -> IO a Source
withBN n f converts n to a BigNum and computes f. Then it frees the BigNum.
 newBN :: Integer -> IO BigNum Source
This is an alias to integerToBN.
Conversion from/to Integer
 peekBN :: BigNum -> IO Integer Source
This is an alias to bnToInteger.
 integerToBN :: Integer -> IO BigNum Source
This is a GHC specific, fast conversion between Integers and OpenSSL bignums. It returns a malloced BigNum.
 bnToInteger :: BigNum -> IO Integer Source
Convert a BIGNUM to an Integer
 integerToMPI :: Integer -> IO ByteString Source
Convert an Integer to an MPI. SEe bnToMPI for the format
 mpiToInteger :: ByteString -> IO Integer Source
Convert an MPI to an Integer. SEe bnToMPI for the format
Computation
 modexp :: Integer -> Integer -> Integer -> Integer Source
modexp a p m computes a to the p-th power modulo m.
Random number generation
 randIntegerUptoNMinusOneSuchThat Source
 :: 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 Source
 :: 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 Source
Return a strongly random number in the range 0 <= x < n
 prandIntegerZeroToNMinusOne :: Integer -> IO Integer Source
Return a random number in the range 0 <= x < n
 randIntegerOneToNMinusOne :: Integer -> IO Integer Source
Return a strongly random number in the range 0 < x < n
 prandIntegerOneToNMinusOne :: Integer -> IO Integer Source
Return a random number in the range 0 < x < n