X-Git-Url: http://www.git.cypherpunks.ru/?p=govpn.git;a=blobdiff_plain;f=src%2Fcypherpunks.ru%2Fgovpn%2Fpeer.go;h=792ebe7d7e1606adc0b1d8737db5ff1e7643ca9e;hp=081ea004b83700d772c12fd11db00468c531d136;hb=18d0c712f6954564df50e5aa78862b1d6e128b3b;hpb=8deaf99f98548064f51a3fe5a163456257c089bb diff --git a/src/cypherpunks.ru/govpn/peer.go b/src/cypherpunks.ru/govpn/peer.go index 081ea00..792ebe7 100644 --- a/src/cypherpunks.ru/govpn/peer.go +++ b/src/cypherpunks.ru/govpn/peer.go @@ -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