cryptonite-0.9: Cryptography Primitives sink

License | BSD-style
Maintainer | Vincent Hanquez <vincent@snarc.org>
Stability | experimental
Portability | unknown
Safe Haskell | None
Language | Haskell2010

Crypto.PubKey.ECC.DH

Description

Elliptic curve Diffie Hellman

Synopsis

- data Curve
- type PublicPoint = Point
- type PrivateNumber = Integer
- newtype SharedKey = SharedKey Integer
- generatePrivate :: MonadRandom m => Curve -> m PrivateNumber
- calculatePublic :: Curve -> PrivateNumber -> PublicPoint
- getShared :: Curve -> PrivateNumber -> PublicPoint -> SharedKey

# Documentation

data Curve

Define either a binary curve or a prime curve.

Instances

Eq Curve |
Data Curve |
Read Curve |
Show Curve |

type PublicPoint = Point

ECC Public Point

type PrivateNumber = Integer

ECC Private Number

newtype SharedKey

Represent Diffie Hellman shared secret.

Constructors

SharedKey Integer |

Instances

Enum SharedKey |
Eq SharedKey |
Num SharedKey |
Ord SharedKey |
Read SharedKey |
Real SharedKey |
Show SharedKey |

generatePrivate :: MonadRandom m => Curve -> m PrivateNumber

Generating a private number d.

calculatePublic :: Curve -> PrivateNumber -> PublicPoint

Generating a public point Q.

getShared :: Curve -> PrivateNumber -> PublicPoint -> SharedKey

Generating a shared key using our private number and the other party public point.