License | BSD-style |
---|---|
Maintainer | John Galt <jgalt@centromere.net> |
Stability | experimental |
Portability | unknown |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
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
- data SecretKey
- data PublicKey
- data DhSecret
- dhSecret :: ByteArrayAccess b => b -> CryptoFailable DhSecret
- publicKey :: ByteArrayAccess bs => bs -> CryptoFailable PublicKey
- secretKey :: ByteArrayAccess bs => bs -> CryptoFailable SecretKey
- dh :: PublicKey -> SecretKey -> DhSecret
- toPublic :: SecretKey -> PublicKey
- generateSecretKey :: MonadRandom m => m SecretKey
Documentation
A Curve448 Secret key
A Curve448 public key
A Curve448 Diffie Hellman secret related to a public key and a secret key.
Smart constructors
dhSecret :: ByteArrayAccess b => b -> CryptoFailable DhSecret Source #
Create a DhSecret from a bytearray object
publicKey :: ByteArrayAccess bs => bs -> CryptoFailable PublicKey Source #
Try to build a public key from a bytearray
secretKey :: ByteArrayAccess bs => bs -> CryptoFailable SecretKey Source #
Try to build a secret key from a bytearray
Methods
dh :: PublicKey -> SecretKey -> DhSecret Source #
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.
generateSecretKey :: MonadRandom m => m SecretKey Source #
Generate a secret key.