oblivious-transfer-0.1.0: An implementation of the Oblivious Transfer protocol in Haskell

Safe HaskellNone
LanguageHaskell2010

OT

Synopsis

Documentation

setup :: (MonadRandom m, MonadFail m) => Curve -> m (Integer, Point, Point) Source #

Setup: Only once, independently of the number of OT messages *m*.

choose :: (MonadRandom m, MonadFail m) => Curve -> Integer -> Point -> m (Integer, Point, Integer) Source #

Choose: In parallel for all OT messages.

deriveSenderKeys :: Curve -> Integer -> Integer -> Point -> Point -> [Integer] Source #

Sender's key derivation from his private key and receiver's response In parallel for all OT messages

deriveReceiverKey :: Curve -> Integer -> Point -> Integer Source #

Receiver's key derivation from his private key and sender's public key In parallel for all OT messages

mDeriveSenderKeys :: Curve -> Integer -> Integer -> [Point] -> Point -> [[Integer]] Source #

Fold together m calls of deriveSenderKeys

mDeriveReceiverKeys :: Curve -> [Integer] -> Point -> [Integer] Source #

Fold together m calls of deriveReceiverKeys

mChoose :: (Eq t, Num t, MonadRandom m, MonadFail m) => Curve -> Integer -> Point -> t -> [(Integer, Point, Integer)] -> m [(Integer, Point, Integer)] Source #

Call choose m times to create a list of three lists | Return lists of private keys, responses and choice bit