HsOpenSSL-0.11: Partial OpenSSL binding for Haskell

Safe HaskellNone
LanguageHaskell98

OpenSSL.BN

Contents

Description

BN - multiprecision integer arithmetics

Synopsis

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

Arguments

:: (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

Arguments

:: (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