cacophony-0.4.0: A library implementing the Noise protocol.

MaintainerJohn Galt <jgalt@centromere.net>
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

Crypto.Noise.Cipher

Contents

Description

 

Synopsis

Classes

class Cipher c where Source

Typeclass for ciphers.

Associated Types

data Ciphertext c :: * Source

Represents encrypted data containing an authentication tag.

data SymmetricKey c :: * Source

Represents a symmetric key.

data Nonce c :: * Source

Represents a nonce.

Methods

cipherName :: proxy c -> ScrubbedBytes Source

Returns the name of the cipher. This is used when generating the handshake name.

cipherEncrypt :: SymmetricKey c -> Nonce c -> AssocData -> Plaintext -> Ciphertext c Source

Encrypts data.

cipherDecrypt :: SymmetricKey c -> Nonce c -> AssocData -> Ciphertext c -> Maybe Plaintext Source

Decrypts data. Will fail catastrophically if the authentication tag is invalid.

cipherZeroNonce :: Nonce c Source

Returns a Nonce set to zero.

cipherIncNonce :: Nonce c -> Nonce c Source

Increments a nonce.

cipherBytesToSym :: ScrubbedBytes -> SymmetricKey c Source

Imports a symmetric key. If the input is greater than 32 bytes, it is truncated.

cipherTextToBytes :: Ciphertext c -> ScrubbedBytes Source

Exports a Ciphertext. The authentication tag follows the actual ciphertext.

cipherBytesToText :: ScrubbedBytes -> Ciphertext c Source

Imports a Ciphertext.

Types

newtype Plaintext Source

Represents plaintext which can be encrypted.

Constructors

Plaintext ScrubbedBytes 

newtype AssocData Source

Represents the associated data for AEAD.

Constructors

AssocData ScrubbedBytes