curve25519-0.2.1: 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.

Instances

data PublicKey Source

The type of a Curve25519 public key.

Instances

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.