curve25519-0.2.3: Fast implementations of the curve25519 elliptic curve primitives.

Safe HaskellNone
LanguageHaskell2010

Crypto.Curve25519.Exceptions

Description

An implementation of the core methods of the elliptic curve Curve25519 suite. These functions are largely wrappers over the curve25519-donna library from Google. Note that those functions that utilize a CryptoRandomGen instance may throw a GenError exception if the generator fails for any reason.

Synopsis

Documentation

data PrivateKey Source #

The type of a Curve25519 private key.

data PublicKey Source #

The type of a Curve25519 public key.

importPublic :: ByteString -> Maybe PublicKey Source #

Import a public key from a ByteString. The ByteString must be exactly 32 bytes long for this to work.

exportPublic :: PublicKey -> ByteString Source #

Export a public key to a ByteString.

generatePrivate :: CryptoRandomGen g => g -> (PrivateKey, g) Source #

Randomly generate a Curve25519 private key.

generatePublic :: PrivateKey -> PublicKey Source #

Randomly generate a Curve25519 public key.

generateKeyPair :: CryptoRandomGen g => g -> (PrivateKey, PublicKey, g) Source #

Randomly generate a key pair.

makeShared :: PrivateKey -> PublicKey -> ByteString Source #

Generate a shared secret from a private key and a public key.