cryptonite-0.24: Cryptography Primitives sink

LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
Stabilityexperimental
Portabilityunknown
Safe HaskellNone
LanguageHaskell2010

Crypto.PubKey.Curve25519

Contents

Description

Curve25519 support

Synopsis

Documentation

data SecretKey #

A Curve25519 Secret key

Instances

Eq SecretKey # 
Show SecretKey # 
NFData SecretKey # 

Methods

rnf :: SecretKey -> () #

ByteArrayAccess SecretKey # 

Methods

length :: SecretKey -> Int

withByteArray :: SecretKey -> (Ptr p -> IO a) -> IO a

data PublicKey #

A Curve25519 public key

Instances

Eq PublicKey # 
Show PublicKey # 
NFData PublicKey # 

Methods

rnf :: PublicKey -> () #

ByteArrayAccess PublicKey # 

Methods

length :: PublicKey -> Int

withByteArray :: PublicKey -> (Ptr p -> IO a) -> IO a

data DhSecret #

A Curve25519 Diffie Hellman secret related to a public key and a secret key.

Instances

Eq DhSecret # 
Show DhSecret # 
NFData DhSecret # 

Methods

rnf :: DhSecret -> () #

ByteArrayAccess DhSecret # 

Methods

length :: DhSecret -> Int

withByteArray :: DhSecret -> (Ptr p -> IO a) -> IO a

Smart constructors

dhSecret :: ByteArrayAccess b => b -> CryptoFailable DhSecret #

Create a DhSecret from a bytearray object

publicKey :: ByteArrayAccess bs => bs -> CryptoFailable PublicKey #

Try to build a public key from a bytearray

secretKey :: ByteArrayAccess bs => bs -> CryptoFailable SecretKey #

Try to build a secret key from a bytearray

methods

dh :: PublicKey -> SecretKey -> DhSecret #

Compute the Diffie Hellman secret from a public key and a secret key.

This implementation may return an all-zero value as it does not check for the condition.

toPublic :: SecretKey -> PublicKey #

Create a public key from a secret key

generateSecretKey :: MonadRandom m => m SecretKey #

Generate a secret key.