cacophony-0.8.0: A library implementing the Noise protocol.

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

Crypto.Noise.HandshakePatterns

Contents

Description

This module contains all of the handshake patterns specified in sections 8.2 and 8.3 as well as unspecified patterns found in previous drafts of the protocol.

Synopsis

Types

data HandshakePattern Source #

This type represents a single handshake pattern and is implemented as a Free Monad.

Functions

noiseNN :: HandshakePattern Source #

Noise_NN():
  -> e
  <- e, dhee

noiseKN :: HandshakePattern Source #

Noise_KN(s):
  -> s
  ...
  -> e
  <- e, dhee, dhes

noiseNK :: HandshakePattern Source #

Noise_NK(rs):
  <- s
  ...
  -> e, dhes
  <- e, dhee

noiseKK :: HandshakePattern Source #

Noise_KK(s, rs):
  -> s
  <- s
  ...
  -> e, dhes, dhss
  <- e, dhee, dhes

noiseNE :: HandshakePattern Source #

Noise_NE(rs, re):
  <- s, e
  ...
  -> e, dhee, dhes
  <- e, dhee

This is not an officially recognized pattern (see section 8.6).

noiseKE :: HandshakePattern Source #

Noise_KE(s, rs, re):
  -> s
  <- s, e
  ...
  -> e, dhee, dhes, dhse
  <- e, dhee, dhes

This is not an officially recognized pattern (see section 8.6).

noiseNX :: HandshakePattern Source #

Noise_NX(rs):
  -> e
  <- e, dhee, s, dhse

noiseKX :: HandshakePattern Source #

Noise_KX(s, rs):
  -> s
  ...
  -> e
  <- e, dhee, dhes, s, dhse

noiseXN :: HandshakePattern Source #

Noise_XN(s):
  -> e
  <- e, dhee
  -> s, dhse

noiseIN :: HandshakePattern Source #

Noise_IN(s):
  -> e, s
  <- e, dhee, dhes

noiseXK :: HandshakePattern Source #

Noise_XK(s, rs):
  <- s
  ...
  -> e, dhes
  <- e, dhee
  -> s, dhse

noiseIK :: HandshakePattern Source #

Noise_IK(s, rs):
  <- s
  ...
  -> e, dhes, s, dhss
  <- e, dhee, dhes

noiseXE :: HandshakePattern Source #

Noise_XE(s, rs, re):
  <- s, e
  ...
  -> e, dhee, dhes
  <- e, dhee
  -> s, dhse

This is not an officially recognized pattern (see section 8.6).

noiseIE :: HandshakePattern Source #

Noise_IE(s, rs, re):
  <- s, e
  ...
  -> e, dhee, dhes, s, dhse
  <- e, dhee, dhes

This is not an officially recognized pattern (see section 8.6).

noiseXX :: HandshakePattern Source #

Noise_XX(s, rs):
  -> e
  <- e, dhee, s, dhse
  -> s, dhse

noiseIX :: HandshakePattern Source #

Noise_IX(s, rs):
  -> e, s
  <- e, dhee, dhes, s, dhse

noiseN :: HandshakePattern Source #

Noise_N(rs):
  <- s
  ...
  -> e, dhes

noiseK :: HandshakePattern Source #

Noise_K(s, rs):
  -> s
  <- s
  ...
  -> e, dhes, dhss

noiseX :: HandshakePattern Source #

Noise_X(s, rs):
  <- s
  ...
  -> e, dhes, s, dhss

noiseXXfallback :: HandshakePattern Source #

@Noise_XXfallback(s, rs, re): <- e ... -> e, dhee, s, dhse <- s, dhse