cacophony-0.6.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 c Source

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

Functions

noiseNN :: HandshakePattern c Source

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

noiseKN :: HandshakePattern c Source

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

noiseNK :: HandshakePattern c Source

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

noiseKK :: HandshakePattern c Source

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

noiseNE :: HandshakePattern c 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 c 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 c Source

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

noiseKX :: HandshakePattern c Source

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

noiseXN :: HandshakePattern c Source

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

noiseIN :: HandshakePattern c Source

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

noiseXK :: HandshakePattern c Source

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

noiseIK :: HandshakePattern c Source

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

noiseXE :: HandshakePattern c 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 c 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 c Source

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

noiseIX :: HandshakePattern c Source

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

noiseXR :: HandshakePattern c Source

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

noiseN :: HandshakePattern c Source

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

noiseK :: HandshakePattern c Source

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

noiseX :: HandshakePattern c Source

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