mirror of https://github.com/waku-org/noise.git
Purge _E handshake patterns
This commit is contained in:
parent
77186df246
commit
3512ab15d1
|
@ -133,41 +133,6 @@ func (NoiseSuite) TestIK(c *C) {
|
||||||
c.Assert(msg, DeepEquals, expected)
|
c.Assert(msg, DeepEquals, expected)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (NoiseSuite) TestXE(c *C) {
|
|
||||||
cs := NewCipherSuite(DH25519, CipherChaChaPoly, HashBLAKE2b)
|
|
||||||
rngI := new(RandomInc)
|
|
||||||
rngR := new(RandomInc)
|
|
||||||
*rngR = 1
|
|
||||||
|
|
||||||
staticI := cs.GenerateKeypair(rngI)
|
|
||||||
staticR := cs.GenerateKeypair(rngR)
|
|
||||||
ephR := cs.GenerateKeypair(rngR)
|
|
||||||
|
|
||||||
hsI := NewHandshakeState(Config{CipherSuite: cs, Random: rngI, Pattern: HandshakeXE, Initiator: true, StaticKeypair: staticI, PeerStatic: staticR.Public, PeerEphemeral: ephR.Public})
|
|
||||||
hsR := NewHandshakeState(Config{CipherSuite: cs, Random: rngR, Pattern: HandshakeXE, StaticKeypair: staticR, EphemeralKeypair: ephR})
|
|
||||||
|
|
||||||
msg, _, _ := hsI.WriteMessage(nil, []byte("abc"))
|
|
||||||
c.Assert(msg, HasLen, 51)
|
|
||||||
res, _, _, err := hsR.ReadMessage(nil, msg)
|
|
||||||
c.Assert(err, IsNil)
|
|
||||||
c.Assert(string(res), Equals, "abc")
|
|
||||||
|
|
||||||
msg, _, _ = hsR.WriteMessage(nil, []byte("defg"))
|
|
||||||
c.Assert(msg, HasLen, 52)
|
|
||||||
res, _, _, err = hsI.ReadMessage(nil, msg)
|
|
||||||
c.Assert(err, IsNil)
|
|
||||||
c.Assert(string(res), Equals, "defg")
|
|
||||||
|
|
||||||
msg, _, _ = hsI.WriteMessage(nil, nil)
|
|
||||||
c.Assert(msg, HasLen, 64)
|
|
||||||
res, _, _, err = hsR.ReadMessage(nil, msg)
|
|
||||||
c.Assert(err, IsNil)
|
|
||||||
c.Assert(res, HasLen, 0)
|
|
||||||
|
|
||||||
expected, _ := hex.DecodeString("08439f380b6f128a1465840d558f06abb1141cf5708a9dcf573d6e4fae01f90fd68dec89b26b249f2c4c61add5a1dbcf0a652ef015d7dbe0e80e9ea9af0aa7a2")
|
|
||||||
c.Assert(msg, DeepEquals, expected)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (NoiseSuite) TestXXRoundtrip(c *C) {
|
func (NoiseSuite) TestXXRoundtrip(c *C) {
|
||||||
cs := NewCipherSuite(DH25519, CipherAESGCM, HashSHA256)
|
cs := NewCipherSuite(DH25519, CipherAESGCM, HashSHA256)
|
||||||
rngI := new(RandomInc)
|
rngI := new(RandomInc)
|
||||||
|
|
38
patterns.go
38
patterns.go
|
@ -36,25 +36,6 @@ var HandshakeKK = HandshakePattern{
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
var HandshakeNE = HandshakePattern{
|
|
||||||
Name: "NE",
|
|
||||||
ResponderPreMessages: []MessagePattern{MessagePatternS, MessagePatternE},
|
|
||||||
Messages: [][]MessagePattern{
|
|
||||||
{MessagePatternE, MessagePatternDHEE, MessagePatternDHES},
|
|
||||||
{MessagePatternE, MessagePatternDHEE},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
var HandshakeKE = HandshakePattern{
|
|
||||||
Name: "KE",
|
|
||||||
InitiatorPreMessages: []MessagePattern{MessagePatternS},
|
|
||||||
ResponderPreMessages: []MessagePattern{MessagePatternS, MessagePatternE},
|
|
||||||
Messages: [][]MessagePattern{
|
|
||||||
{MessagePatternE, MessagePatternDHEE, MessagePatternDHES, MessagePatternDHSE},
|
|
||||||
{MessagePatternE, MessagePatternDHEE, MessagePatternDHES},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
var HandshakeNX = HandshakePattern{
|
var HandshakeNX = HandshakePattern{
|
||||||
Name: "NX",
|
Name: "NX",
|
||||||
Messages: [][]MessagePattern{
|
Messages: [][]MessagePattern{
|
||||||
|
@ -108,25 +89,6 @@ var HandshakeIK = HandshakePattern{
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
var HandshakeXE = HandshakePattern{
|
|
||||||
Name: "XE",
|
|
||||||
ResponderPreMessages: []MessagePattern{MessagePatternS, MessagePatternE},
|
|
||||||
Messages: [][]MessagePattern{
|
|
||||||
{MessagePatternE, MessagePatternDHEE, MessagePatternDHES},
|
|
||||||
{MessagePatternE, MessagePatternDHEE},
|
|
||||||
{MessagePatternS, MessagePatternDHSE},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
var HandshakeIE = HandshakePattern{
|
|
||||||
Name: "IE",
|
|
||||||
ResponderPreMessages: []MessagePattern{MessagePatternS, MessagePatternE},
|
|
||||||
Messages: [][]MessagePattern{
|
|
||||||
{MessagePatternE, MessagePatternDHEE, MessagePatternDHES, MessagePatternS, MessagePatternDHSE},
|
|
||||||
{MessagePatternE, MessagePatternDHEE, MessagePatternDHES},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
var HandshakeXX = HandshakePattern{
|
var HandshakeXX = HandshakePattern{
|
||||||
Name: "XX",
|
Name: "XX",
|
||||||
Messages: [][]MessagePattern{
|
Messages: [][]MessagePattern{
|
||||||
|
|
|
@ -44,7 +44,7 @@ type patternKeyInfo struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
for _, h := range []HandshakePattern{HandshakeNN, HandshakeKN, HandshakeNK, HandshakeKK, HandshakeNE, HandshakeKE, HandshakeNX, HandshakeKX, HandshakeXN, HandshakeIN, HandshakeXK, HandshakeIK, HandshakeXE, HandshakeIE, HandshakeXX, HandshakeIX, HandshakeN, HandshakeK, HandshakeX} {
|
for _, h := range []HandshakePattern{HandshakeNN, HandshakeKN, HandshakeNK, HandshakeKK, HandshakeNX, HandshakeKX, HandshakeXN, HandshakeIN, HandshakeXK, HandshakeIK, HandshakeXX, HandshakeIX, HandshakeN, HandshakeK, HandshakeX} {
|
||||||
patterns[h.Name] = h
|
patterns[h.Name] = h
|
||||||
var k patternKeyInfo
|
var k patternKeyInfo
|
||||||
if len(h.Name) == 1 {
|
if len(h.Name) == 1 {
|
||||||
|
@ -74,10 +74,6 @@ func init() {
|
||||||
case 'K':
|
case 'K':
|
||||||
k.rs = true
|
k.rs = true
|
||||||
k.rsi = true
|
k.rsi = true
|
||||||
case 'E':
|
|
||||||
k.rs = true
|
|
||||||
k.rsi = true
|
|
||||||
k.e = true
|
|
||||||
case 'X':
|
case 'X':
|
||||||
k.rs = true
|
k.rs = true
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ import (
|
||||||
func main() {
|
func main() {
|
||||||
for ci, cipher := range []CipherFunc{CipherAESGCM, CipherChaChaPoly} {
|
for ci, cipher := range []CipherFunc{CipherAESGCM, CipherChaChaPoly} {
|
||||||
for _, hash := range []HashFunc{HashSHA256, HashSHA512, HashBLAKE2b, HashBLAKE2s} {
|
for _, hash := range []HashFunc{HashSHA256, HashSHA512, HashBLAKE2b, HashBLAKE2s} {
|
||||||
for hi, handshake := range []HandshakePattern{HandshakeNN, HandshakeKN, HandshakeNK, HandshakeKK, HandshakeNE, HandshakeKE, HandshakeNX, HandshakeKX, HandshakeXN, HandshakeIN, HandshakeXK, HandshakeIK, HandshakeXE, HandshakeIE, HandshakeXX, HandshakeIX, HandshakeN, HandshakeK, HandshakeX} {
|
for hi, handshake := range []HandshakePattern{HandshakeNN, HandshakeKN, HandshakeNK, HandshakeKK, HandshakeNX, HandshakeKX, HandshakeXN, HandshakeIN, HandshakeXK, HandshakeIK, HandshakeXX, HandshakeIX, HandshakeN, HandshakeK, HandshakeX} {
|
||||||
for _, psk := range []bool{false, true} {
|
for _, psk := range []bool{false, true} {
|
||||||
payloads := (psk && hi%2 == 0) || (!psk && hi%2 != 0)
|
payloads := (psk && hi%2 == 0) || (!psk && hi%2 != 0)
|
||||||
prologue := ci == 0
|
prologue := ci == 0
|
||||||
|
|
1090
vectors.txt
1090
vectors.txt
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue