License | BSD-style |
---|---|
Maintainer | John Galt <jgalt@centromere.net> |
Stability | experimental |
Portability | unknown |
Safe Haskell | None |
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.
- 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.