cryptonite-0.25: Cryptography Primitives sink

LicenseBSD-style
MaintainerJohn Galt <jgalt@centromere.net>
Stabilityexperimental
Portabilityunknown
Safe HaskellNone
LanguageHaskell2010

Crypto.PubKey.Curve448

Contents

Description

Curve448 support

Internally uses Decaf point compression to omit the cofactor and implementation by Mike Hamburg. Externally API and data types are compatible with the encoding specified in RFC 7748.

Synopsis

Documentation

data SecretKey #

A Curve448 Secret key

Instances
Eq SecretKey # 
Instance details

Defined in Crypto.PubKey.Curve448

Show SecretKey # 
Instance details

Defined in Crypto.PubKey.Curve448

NFData SecretKey # 
Instance details

Defined in Crypto.PubKey.Curve448

Methods

rnf :: SecretKey -> () #

ByteArrayAccess SecretKey # 
Instance details

Defined in Crypto.PubKey.Curve448

Methods

length :: SecretKey -> Int #

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

copyByteArrayToPtr :: SecretKey -> Ptr p -> IO () #

data PublicKey #

A Curve448 public key

Instances
Eq PublicKey # 
Instance details

Defined in Crypto.PubKey.Curve448

Show PublicKey # 
Instance details

Defined in Crypto.PubKey.Curve448

NFData PublicKey # 
Instance details

Defined in Crypto.PubKey.Curve448

Methods

rnf :: PublicKey -> () #

ByteArrayAccess PublicKey # 
Instance details

Defined in Crypto.PubKey.Curve448

Methods

length :: PublicKey -> Int #

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

copyByteArrayToPtr :: PublicKey -> Ptr p -> IO () #

data DhSecret #

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

Instances
Eq DhSecret # 
Instance details

Defined in Crypto.PubKey.Curve448

Show DhSecret # 
Instance details

Defined in Crypto.PubKey.Curve448

NFData DhSecret # 
Instance details

Defined in Crypto.PubKey.Curve448

Methods

rnf :: DhSecret -> () #

ByteArrayAccess DhSecret # 
Instance details

Defined in Crypto.PubKey.Curve448

Methods

length :: DhSecret -> Int #

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

copyByteArrayToPtr :: DhSecret -> Ptr p -> IO () #

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.