From f7b9b283362385db79ea665b259c2634209ab162 Mon Sep 17 00:00:00 2001 From: Jonathan Rudenberg Date: Sun, 15 Nov 2015 12:56:24 -0500 Subject: [PATCH] Add checks from revision 18 --- state.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/state.go b/state.go index b2d8afe..f5aeec6 100644 --- a/state.go +++ b/state.go @@ -186,6 +186,9 @@ func (s *HandshakeState) WriteMessage(out, payload []byte) ([]byte, *CipherState s.e = s.cs.GenerateKeypair(s.rng) out = s.EncryptAndHash(out, s.e.Public) case MessagePatternS: + if len(s.s.Public) == 0 { + panic("noise: invalid state, s.Public is nil") + } out = s.EncryptAndHash(out, s.s.Public) case MessagePatternDHEE: s.MixKey(s.cs.DH(s.e.Private, s.re)) @@ -234,6 +237,9 @@ func (s *HandshakeState) ReadMessage(out, message []byte) ([]byte, *CipherState, case MessagePatternE: s.re, err = s.DecryptAndHash(s.re[:0], message[:expected]) case MessagePatternS: + if len(s.rs) > 0 { + panic("noise: invalid state, rs is not nil") + } s.rs, err = s.DecryptAndHash(s.rs[:0], message[:expected]) } if err != nil {