]> git.ipfire.org Git - thirdparty/wireguard-go.git/commitdiff
device: reduce number of append calls when padding
authorJason A. Donenfeld <Jason@zx2c4.com>
Fri, 29 Jan 2021 19:10:48 +0000 (20:10 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Fri, 29 Jan 2021 19:10:48 +0000 (20:10 +0100)
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
device/send.go

index 5261c2fb5aa185a5602564a94ba20b25fa184085..9d63c4e71ae4b8a5be3e72cf87a2e742384c98ef 100644 (file)
@@ -367,7 +367,7 @@ func calculatePaddingSize(packetSize, mtu int) int {
  * Obs. One instance per core
  */
 func (device *Device) RoutineEncryption() {
-
+       var paddingZeros [PaddingMultiple]byte
        var nonce [chacha20poly1305.NonceSize]byte
 
        defer device.log.Verbosef("Routine: encryption worker - stopped")
@@ -386,11 +386,8 @@ func (device *Device) RoutineEncryption() {
                binary.LittleEndian.PutUint64(fieldNonce, elem.nonce)
 
                // pad content to multiple of 16
-
                paddingSize := calculatePaddingSize(len(elem.packet), int(atomic.LoadInt32(&device.tun.mtu)))
-               for i := 0; i < paddingSize; i++ {
-                       elem.packet = append(elem.packet, 0)
-               }
+               elem.packet = append(elem.packet, paddingZeros[:paddingSize]...)
 
                // encrypt content and release to consumer