cryptonite-0.25: Cryptography Primitives sink

LicenseBSD-style
MaintainerOlivier Chéron <olivier.cheron@gmail.com>
Stabilityexperimental
Portabilityunknown
Safe HaskellNone
LanguageHaskell2010

Crypto.PubKey.Ed448

Contents

Description

Ed448 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 8032.

Synopsis

Documentation

data SecretKey #

An Ed448 Secret key

Instances
Eq SecretKey # 
Instance details

Defined in Crypto.PubKey.Ed448

Show SecretKey # 
Instance details

Defined in Crypto.PubKey.Ed448

NFData SecretKey # 
Instance details

Defined in Crypto.PubKey.Ed448

Methods

rnf :: SecretKey -> () #

ByteArrayAccess SecretKey # 
Instance details

Defined in Crypto.PubKey.Ed448

Methods

length :: SecretKey -> Int #

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

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

data PublicKey #

An Ed448 public key

Instances
Eq PublicKey # 
Instance details

Defined in Crypto.PubKey.Ed448

Show PublicKey # 
Instance details

Defined in Crypto.PubKey.Ed448

NFData PublicKey # 
Instance details

Defined in Crypto.PubKey.Ed448

Methods

rnf :: PublicKey -> () #

ByteArrayAccess PublicKey # 
Instance details

Defined in Crypto.PubKey.Ed448

Methods

length :: PublicKey -> Int #

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

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

data Signature #

An Ed448 signature

Instances
Eq Signature # 
Instance details

Defined in Crypto.PubKey.Ed448

Show Signature # 
Instance details

Defined in Crypto.PubKey.Ed448

NFData Signature # 
Instance details

Defined in Crypto.PubKey.Ed448

Methods

rnf :: Signature -> () #

ByteArrayAccess Signature # 
Instance details

Defined in Crypto.PubKey.Ed448

Methods

length :: Signature -> Int #

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

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

Size constants

publicKeySize :: Int #

A public key is 57 bytes

secretKeySize :: Int #

A secret key is 57 bytes

signatureSize :: Int #

A signature is 114 bytes

Smart constructors

signature :: ByteArrayAccess ba => ba -> CryptoFailable Signature #

Try to build a signature from a bytearray

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

Try to build a public key from a bytearray

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

Try to build a secret key from a bytearray

Methods

toPublic :: SecretKey -> PublicKey #

Create a public key from a secret key

sign :: ByteArrayAccess ba => SecretKey -> PublicKey -> ba -> Signature #

Sign a message using the key pair

verify :: ByteArrayAccess ba => PublicKey -> ba -> Signature -> Bool #

Verify a message

generateSecretKey :: MonadRandom m => m SecretKey #

Generate a secret key