Safe Haskell | None |
---|---|

Language | Haskell2010 |

## Synopsis

- setup :: (MonadRandom m, MonadFail m) => Curve -> m (Integer, Point, Point)
- choose :: (MonadRandom m, MonadFail m) => Curve -> Integer -> Point -> m (Integer, Point, Integer)
- deriveSenderKeys :: Curve -> Integer -> Integer -> Point -> Point -> [Integer]
- deriveReceiverKey :: Curve -> Integer -> Point -> Integer
- mDeriveSenderKeys :: Curve -> Integer -> Integer -> [Point] -> Point -> [[Integer]]
- mDeriveReceiverKeys :: Curve -> [Integer] -> Point -> [Integer]
- mChoose :: (Eq t, Num t, MonadRandom m, MonadFail m) => Curve -> Integer -> Point -> t -> [(Integer, Point, Integer)] -> m [(Integer, Point, Integer)]

# 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`