License | BSD-style |
---|---|
Maintainer | Vincent Hanquez <vincent@snarc.org> |
Stability | experimental |
Portability | unknown |
Safe Haskell | None |
Language | Haskell2010 |
Elliptic curve Diffie Hellman
- data Curve
- type PublicPoint = Point
- type PrivateNumber = Integer
- newtype SharedKey = SharedKey ScrubbedBytes
- generatePrivate :: MonadRandom m => Curve -> m PrivateNumber
- calculatePublic :: Curve -> PrivateNumber -> PublicPoint
- getShared :: Curve -> PrivateNumber -> PublicPoint -> SharedKey
Documentation
type PublicPoint = Point
ECC Public Point
type PrivateNumber = Integer
ECC Private Number
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.