cacophony-0.11.0: A library implementing the Noise protocol.
MaintainerJohn Galt <jgalt@centromere.net>
Stabilityexperimental
PortabilityPOSIX
Safe HaskellSafe-Inferred
LanguageHaskell2010

Crypto.Noise.HandshakePatterns

Description

This module contains all of the handshake patterns specified in sections 7.2, 7.3, and 9.4.

Synopsis

Standard patterns

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

PSK patterns

noiseNNpsk0 :: HandshakePattern Source #

Noise_NNpsk0():
  -> psk, e
  <- e, ee

noiseNNpsk2 :: HandshakePattern Source #

Noise_NNpsk2():
  -> e
  <- e, ee, psk

noiseNKpsk0 :: HandshakePattern Source #

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

noiseNKpsk2 :: HandshakePattern Source #

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

noiseNXpsk2 :: HandshakePattern Source #

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

noiseXNpsk3 :: HandshakePattern Source #

Noise_XNpsk3(s):
  -> e
  <- e, ee
  -> s, se, psk

noiseXKpsk3 :: HandshakePattern Source #

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

noiseXXpsk3 :: HandshakePattern Source #

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

noiseKNpsk0 :: HandshakePattern Source #

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

noiseKNpsk2 :: HandshakePattern Source #

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

noiseKKpsk0 :: HandshakePattern Source #

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

noiseKKpsk2 :: HandshakePattern Source #

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

noiseKXpsk2 :: HandshakePattern Source #

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

noiseINpsk1 :: HandshakePattern Source #

Noise_INpsk1(s):
  -> e, s, psk
  <- e, ee, se

noiseINpsk2 :: HandshakePattern Source #

Noise_INpsk2(s):
  -> e, s
  <- e, ee, se, psk

noiseIKpsk1 :: HandshakePattern Source #

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

noiseIKpsk2 :: HandshakePattern Source #

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

noiseIXpsk2 :: HandshakePattern Source #

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

noiseNpsk0 :: HandshakePattern Source #

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

noiseKpsk0 :: HandshakePattern Source #

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

noiseXpsk1 :: HandshakePattern Source #

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

Deferred patterns

noiseNK1 :: HandshakePattern Source #

@Noise_NK1: <- s ... -> e <- e, ee, es

noiseNX1 :: HandshakePattern Source #

@Noise_NX1: -> e <- e, ee, s -> es

noiseX1N :: HandshakePattern Source #

@Noise_X1N: -> e <- e, ee -> s <- se

noiseX1K :: HandshakePattern Source #

@Noise_X1K: <- s ... -> e, es <- e, ee -> s <- se

noiseXK1 :: HandshakePattern Source #

@Noise_XK1: <- s ... -> e <- e, ee, es -> s, se

noiseX1K1 :: HandshakePattern Source #

@Noise_X1K1: <- s ... -> e <- e, ee, es -> s <- se

noiseX1X :: HandshakePattern Source #

@Noise_X1X -> e <- e, ee, s, es -> s <- se

noiseXX1 :: HandshakePattern Source #

@Noise_XX1: -> e <- e, ee, s -> es, s, se

noiseX1X1 :: HandshakePattern Source #

@Noise_X1X1: -> e <- e, ee, s -> es, s <- se

noiseK1N :: HandshakePattern Source #

@Noise_K1N: -> s ... -> e <- e, ee -> se

noiseK1K :: HandshakePattern Source #

@Noise_K1K: -> s <- s ... -> e, es <- e, ee -> se

noiseKK1 :: HandshakePattern Source #

@Noise_KK1: -> s <- s ... -> e <- e, ee, se, es

noiseK1K1 :: HandshakePattern Source #

@Noise_K1K1: -> s <- s ... -> e <- e, ee, es -> se

noiseK1X :: HandshakePattern Source #

@Noise_K1X -> s ... -> e <- e, ee, s, es -> se

noiseKX1 :: HandshakePattern Source #

@Noise_KX1 -> s ... -> e <- e, ee, se, s -> es

noiseK1X1 :: HandshakePattern Source #

@Noise_K1X1: -> s ... -> e <- e, ee, s -> se, es

noiseI1N :: HandshakePattern Source #

@Noise_I1N: -> e, s <- e, ee -> se

noiseI1K :: HandshakePattern Source #

@Noise_I1K: <- s ... -> e, es, s <- e, ee -> se

noiseIK1 :: HandshakePattern Source #

@Noise_IK1: <- s ... -> e, s <- e, ee, se, es

noiseI1K1 :: HandshakePattern Source #

@Noise_I1K1: <- s ... -> e, s <- e, ee, es -> se

noiseI1X :: HandshakePattern Source #

@Noise_I1X: -> e, s <- e, ee, s, es -> se

noiseIX1 :: HandshakePattern Source #

@Noise_IX1: -> e, s <- e, ee, se, s -> es

noiseI1X1 :: HandshakePattern Source #

@Noise_I1X1: -> e, s <- e, ee, s -> se, es