From: Sergey Matveev Date: Sun, 10 Aug 2014 14:56:08 +0000 (+0400) Subject: Fix nounces incrementing X-Git-Tag: 1.0~6 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=71a068c0ed889a0e2ef41edc0a9e94cf78763005;p=govpn.git Fix nounces incrementing That bug leads to reusing the same nonce. Signed-off-by: Sergey Matveev --- diff --git a/govpn.go b/govpn.go index 412deb7..885f520 100644 --- a/govpn.go +++ b/govpn.go @@ -33,10 +33,6 @@ import ( ) const ( - // NonceIncrServer is nonce increment value for server message - NonceIncrServer = 1 - // NonceIncrClient is nonce increment value for client message - NonceIncrClient = 2 NonceSize = 8 AliveTimeout = time.Second * 90 // S20BS is Salsa20's internal blocksize in bytes @@ -108,13 +104,11 @@ func main() { var remote *net.UDPAddr serverMode := false - nonceIncr := uint64(NonceIncrClient) bindTo := "0.0.0.0:0" if len(*bindAddr) > 1 { bindTo = *bindAddr serverMode = true - nonceIncr = uint64(NonceIncrServer) } bind, err := net.ResolveUDPAddr("udp", bindTo) @@ -224,7 +218,7 @@ func main() { if !peer.IsAlive() { continue } - peer.nonceOur = peer.nonceOur + nonceIncr + peer.nonceOur = peer.nonceOur + 2 pktData := ethPkt.Data() binary.PutUvarint(nonce, peer.nonceOur) copy(buf[S20BS:], pktData) diff --git a/handshake.go b/handshake.go index 331e4e6..a3403ea 100644 --- a/handshake.go +++ b/handshake.go @@ -251,7 +251,7 @@ func (h *Handshake) Client(conn *net.UDPConn, key *[32]byte, data []byte) *Peer } // Switch peer - peer := Peer{addr: h.addr, nonceOur: 0, nonceRecv: 0} + peer := Peer{addr: h.addr, nonceOur: 1, nonceRecv: 0} peer.SetAlive() peer.key = KeyFromSecrets(h.sServer[:], h.sClient[:]) fmt.Print("[OK]")