]> git.ipfire.org Git - thirdparty/wireguard-go.git/commitdiff
Move replay into subpackage
authorJason A. Donenfeld <Jason@zx2c4.com>
Wed, 23 May 2018 00:32:02 +0000 (02:32 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Wed, 23 May 2018 01:58:27 +0000 (03:58 +0200)
keypair.go
misc.go
receive.go
replay/replay.go [moved from replay.go with 89% similarity]
replay/replay_test.go [moved from replay_test.go with 95% similarity]

index be7600bbf744bd91add8174d8616ab15727af96f..face310d543fa6a316818b7e8847fb645a5610f6 100644 (file)
@@ -7,6 +7,7 @@
 package main
 
 import (
+       "./replay"
        "crypto/cipher"
        "sync"
        "time"
@@ -23,7 +24,7 @@ type Keypair struct {
        sendNonce    uint64
        send         cipher.AEAD
        receive      cipher.AEAD
-       replayFilter ReplayFilter
+       replayFilter replay.ReplayFilter
        isInitiator  bool
        created      time.Time
        localIndex   uint32
diff --git a/misc.go b/misc.go
index af61718759909f1161a4b19492619fa1d319f000..ede94f9abbb51182f34b6f681f632e8db669ee9c 100644 (file)
--- a/misc.go
+++ b/misc.go
@@ -47,10 +47,3 @@ func min(a, b uint) uint {
        }
        return a
 }
-
-func minUint64(a uint64, b uint64) uint64 {
-       if a > b {
-               return b
-       }
-       return a
-}
index 3d9710c5526804c1af61165a9d5ae70743c6a8f0..707b0565de1eba6edc051a490033ceee273ccec2 100644 (file)
@@ -544,7 +544,7 @@ func (peer *Peer) RoutineSequentialReceiver() {
 
                        // check for replay
 
-                       if !elem.keypair.replayFilter.ValidateCounter(elem.counter) {
+                       if !elem.keypair.replayFilter.ValidateCounter(elem.counter, RejectAfterMessages) {
                                continue
                        }
 
similarity index 89%
rename from replay.go
rename to replay/replay.go
index 2d9c6e186a11d568c0be2ef083be730e0fcd4434..993ff585721ac979d33ed1c15e7e43cc1411ce12 100644 (file)
--- a/replay.go
@@ -4,9 +4,7 @@
  * Copyright (C) 2017-2018 Mathias N. Hall-Andersen <mathias@hall-andersen.dk>.
  */
 
-package main
-
-/* Copyright (C) 2015-2017 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. */
+package replay
 
 /* Implementation of RFC6479
  * https://tools.ietf.org/html/rfc6479
@@ -32,6 +30,13 @@ const (
        BacktrackWords = CounterBitsTotal / _WordSize
 )
 
+func minUint64(a uint64, b uint64) uint64 {
+       if a > b {
+               return b
+       }
+       return a
+}
+
 type ReplayFilter struct {
        counter   uint64
        backtrack [BacktrackWords]uintptr
@@ -42,8 +47,8 @@ func (filter *ReplayFilter) Init() {
        filter.backtrack[0] = 0
 }
 
-func (filter *ReplayFilter) ValidateCounter(counter uint64) bool {
-       if counter >= RejectAfterMessages {
+func (filter *ReplayFilter) ValidateCounter(counter uint64, limit uint64) bool {
+       if counter >= limit {
                return false
        }
 
similarity index 95%
rename from replay_test.go
rename to replay/replay_test.go
index 8b2e57d25f892378372279f36eeb1f3bb6288587..da394982555ba9917525819139d674c34b1150dd 100644 (file)
@@ -4,7 +4,7 @@
  * Copyright (C) 2017-2018 Mathias N. Hall-Andersen <mathias@hall-andersen.dk>.
  */
 
-package main
+package replay
 
 import (
        "testing"
@@ -15,6 +15,8 @@ import (
  *
  */
 
+const RejectAfterMessages = (1 << 64) - (1 << 4) - 1
+
 func TestReplay(t *testing.T) {
        var filter ReplayFilter
 
@@ -23,7 +25,7 @@ func TestReplay(t *testing.T) {
        testNumber := 0
        T := func(n uint64, v bool) {
                testNumber++
-               if filter.ValidateCounter(n) != v {
+               if filter.ValidateCounter(n, RejectAfterMessages) != v {
                        t.Fatal("Test", testNumber, "failed", n, v)
                }
        }