module Crypto.Noise.HandshakePatterns
(
HandshakePattern
, noiseNN
, noiseKN
, noiseNK
, noiseKK
, noiseNE
, noiseKE
, noiseNX
, noiseKX
, noiseXN
, noiseIN
, noiseXK
, noiseIK
, noiseXE
, noiseIE
, noiseXX
, noiseIX
, noiseXR
, noiseN
, noiseK
, noiseX
) where
import Crypto.Noise.Internal.HandshakePattern
noiseNN :: HandshakePattern c
noiseNN = HandshakePattern "NN" Nothing $ do
initiator e
responder $ do
e
dhee
split
noiseKN :: HandshakePattern c
noiseKN = HandshakePattern "KN" (Just pmp) hp
where
pmp = initiator s
hp = do
initiator e
responder $ do
e
dhee
dhes
split
noiseNK :: HandshakePattern c
noiseNK = HandshakePattern "NK" (Just pmp) hp
where
pmp = responder s
hp = do
initiator $ do
e
dhes
responder $ do
e
dhee
split
noiseKK :: HandshakePattern c
noiseKK = HandshakePattern "KK" (Just pmp) hp
where
pmp = do
initiator s
responder s
hp = do
initiator $ do
e
dhes
dhss
responder $ do
e
dhee
dhes
split
noiseNE :: HandshakePattern c
noiseNE = HandshakePattern "NE" (Just pmp) hp
where
pmp = responder $ do
s
e
hp = do
initiator $ do
e
dhee
dhes
responder $ do
e
dhee
split
noiseKE :: HandshakePattern c
noiseKE = HandshakePattern "KE" (Just pmp) hp
where
pmp = do
initiator s
responder $ do
s
e
hp = do
initiator $ do
e
dhee
dhes
dhse
responder $ do
e
dhee
dhes
split
noiseNX :: HandshakePattern c
noiseNX = HandshakePattern "NX" Nothing $ do
initiator e
responder $ do
e
dhee
s
dhse
split
noiseKX :: HandshakePattern c
noiseKX = HandshakePattern "KX" (Just pmp) hp
where
pmp = initiator s
hp = do
initiator e
responder $ do
e
dhee
dhes
s
dhse
split
noiseXN :: HandshakePattern c
noiseXN = HandshakePattern "XN" Nothing $ do
initiator e
responder $ do
e
dhee
initiator $ do
s
dhse
split
noiseIN :: HandshakePattern c
noiseIN = HandshakePattern "IN" Nothing $ do
initiator $ do
e
s
responder $ do
e
dhee
dhes
split
noiseXK :: HandshakePattern c
noiseXK = HandshakePattern "XK" (Just pmp) hp
where
pmp = responder s
hp = do
initiator $ do
e
dhes
responder $ do
e
dhee
initiator $ do
s
dhse
split
noiseIK :: HandshakePattern c
noiseIK = HandshakePattern "IK" (Just pmp) hp
where
pmp = responder s
hp = do
initiator $ do
e
dhes
s
dhss
responder $ do
e
dhee
dhes
split
noiseXE :: HandshakePattern c
noiseXE = HandshakePattern "XE" (Just pmp) hp
where
pmp = responder $ do
s
e
hp = do
initiator $ do
e
dhee
dhes
responder $ do
e
dhee
initiator $ do
s
dhse
split
noiseIE :: HandshakePattern c
noiseIE = HandshakePattern "IE" (Just pmp) hp
where
pmp = responder $ do
s
e
hp = do
initiator $ do
e
dhee
dhes
s
dhse
responder $ do
e
dhee
dhes
split
noiseXX :: HandshakePattern c
noiseXX = HandshakePattern "XX" Nothing $ do
initiator e
responder $ do
e
dhee
s
dhse
initiator $ do
s
dhse
split
noiseIX :: HandshakePattern c
noiseIX = HandshakePattern "IX" Nothing $ do
initiator $ do
e
s
responder $ do
e
dhee
dhes
s
dhse
split
noiseXR :: HandshakePattern c
noiseXR = HandshakePattern "XR" Nothing $ do
initiator e
responder $ do
e
dhee
initiator $ do
s
dhse
responder $ do
s
dhse
split
noiseN :: HandshakePattern c
noiseN = HandshakePattern "N" (Just pmp) hp
where
pmp = responder s
hp = do
initiator $ do
e
dhes
split
noiseK :: HandshakePattern c
noiseK = HandshakePattern "K" (Just pmp) hp
where
pmp = do
initiator s
responder s
hp = do
initiator $ do
e
dhes
dhss
split
noiseX :: HandshakePattern c
noiseX = HandshakePattern "X" (Just pmp) hp
where
pmp = responder s
hp = do
initiator $ do
e
dhes
s
dhss
split