From 69d3d31a8884ddf9d7dac400a3cef4f25f79fb57 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Mon, 14 Sep 2015 09:56:14 +0300 Subject: [PATCH] Slightly lesser code in handshake Signed-off-by: Sergey Matveev --- src/govpn/handshake.go | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/govpn/handshake.go b/src/govpn/handshake.go index 6a76fd3..1c7c43d 100644 --- a/src/govpn/handshake.go +++ b/src/govpn/handshake.go @@ -290,12 +290,7 @@ func (h *Handshake) Server(data []byte) *Peer { // authenticated Peer is ready, then return nil. func (h *Handshake) Client(data []byte) *Peer { // ENC(H(DSAPub), R+1, El(SDHPub)) + ENC(K, R, RS + SS) + IDtag - if h.rServer == nil { - if h.key != nil { - log.Println("Invalid handshake stage from", h.addr) - return nil - } - + if h.rServer == nil && h.key == nil { // Decrypt remote public key and compute shared key sDHRepr := new([32]byte) salsa20.XORKeyStream(sDHRepr[:], data[:32], h.rNonceNext(1), h.dsaPubH) @@ -337,13 +332,9 @@ func (h *Handshake) Client(data []byte) *Peer { // Send that to server h.conn.Write(append(enc, idTag(h.Conf.Id, enc)...)) h.LastPing = time.Now() - } else { - // ENC(K, R+2, RC) + IDtag - if h.key == nil { - log.Println("Invalid handshake stage from", h.addr) - return nil - } - + } else + // ENC(K, R+2, RC) + IDtag + if h.key != nil { // Decrypt rClient dec := make([]byte, RSize) salsa20.XORKeyStream(dec, data[:RSize], h.rNonceNext(2), h.key) @@ -362,6 +353,8 @@ func (h *Handshake) Client(data []byte) *Peer { ) h.LastPing = time.Now() return peer + } else { + log.Println("Invalid handshake stage from", h.addr) } return nil } -- 2.44.0