X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fcypherpunks.ru%2Fgovpn%2Fpeer.go;h=792ebe7d7e1606adc0b1d8737db5ff1e7643ca9e;hb=18d0c712f6954564df50e5aa78862b1d6e128b3b;hp=22c893c80fb51d3bb0bb1affbfa395e32a137257;hpb=0bf04621961589bc735dc8bd8a075d7db24c4178;p=govpn.git diff --git a/src/cypherpunks.ru/govpn/peer.go b/src/cypherpunks.ru/govpn/peer.go index 22c893c..792ebe7 100644 --- a/src/cypherpunks.ru/govpn/peer.go +++ b/src/cypherpunks.ru/govpn/peer.go @@ -1,6 +1,6 @@ /* GoVPN -- simple secure free software virtual private network daemon -Copyright (C) 2014-2016 Sergey Matveev +Copyright (C) 2014-2017 Sergey Matveev This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -56,13 +56,17 @@ func newNonces(key *[32]byte, i uint64) chan *[NonceSize]byte { if err != nil { panic(err) } + sum := make([]byte, mac.Size()) nonces := make(chan *[NonceSize]byte, NonceBucketSize*3) go func() { for { buf := new([NonceSize]byte) binary.BigEndian.PutUint64(buf[:], i) mac.Write(buf[:]) - mac.Sum(buf[:0]) + sum = mac.Sum(nil) + for index := 0; index < NonceSize; index++ { + buf[index] = sum[index] + } nonces <- buf mac.Reset() i += 2