Safe Haskell | None |
---|---|
Language | Haskell98 |
BN - multiprecision integer arithmetics
- 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
Allocation
Conversion from/to Integer
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
computes modexp
a p ma
to the p
-th power modulo m
.
Random number generation
randIntegerUptoNMinusOneSuchThat Source
Return a strongly random number in the range 0 <= x < n where the given filter function returns true.
prandIntegerUptoNMinusOneSuchThat Source
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