cacophony-0.9.2: 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, ee

noiseKN :: HandshakePattern Source #

Noise_KN(s):
  -> s
  ...
  -> e
  <- e, ee, se

noiseNK :: HandshakePattern Source #

Noise_NK(rs):
  <- s
  ...
  -> e, es
  <- e, ee

noiseKK :: HandshakePattern Source #

Noise_KK(s, rs):
  -> s
  <- s
  ...
  -> e, es, ss
  <- e, ee, se

noiseNX :: HandshakePattern Source #

Noise_NX(rs):
  -> e
  <- e, ee, s, es

noiseKX :: HandshakePattern Source #

Noise_KX(s, rs):
  -> s
  ...
  -> e
  <- e, ee, se, s, es

noiseXN :: HandshakePattern Source #

Noise_XN(s):
  -> e
  <- e, ee
  -> s, se

noiseIN :: HandshakePattern Source #

Noise_IN(s):
  -> e, s
  <- e, ee, se

noiseXK :: HandshakePattern Source #

Noise_XK(s, rs):
  <- s
  ...
  -> e, es
  <- e, ee
  -> s, se

noiseIK :: HandshakePattern Source #

Noise_IK(s, rs):
  <- s
  ...
  -> e, es, s, ss
  <- e, ee, se

noiseXX :: HandshakePattern Source #

Noise_XX(s, rs):
  -> e
  <- e, ee, s, es
  -> s, se

noiseIX :: HandshakePattern Source #

Noise_IX(s, rs):
  -> e, s
  <- e, ee, se, s, es

noiseN :: HandshakePattern Source #

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

noiseK :: HandshakePattern Source #

Noise_K(s, rs):
  -> s
  <- s
  ...
  -> e, es, ss

noiseX :: HandshakePattern Source #

Noise_X(s, rs):
  <- s
  ...
  -> e, es, s, ss

noiseXXfallback :: HandshakePattern Source #

@Noise_XXfallback(s, rs, re): <- e ... -> e, ee, s, se <- s, es