From: Jason A. Donenfeld Date: Fri, 29 Jan 2021 19:10:48 +0000 (+0100) Subject: device: reduce number of append calls when padding X-Git-Tag: 0.0.20210212~52 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a9f80d8c587df99c6e8f57704aef3fe1ac62d0db;p=thirdparty%2Fwireguard-go.git device: reduce number of append calls when padding Signed-off-by: Jason A. Donenfeld --- diff --git a/device/send.go b/device/send.go index 5261c2f..9d63c4e 100644 --- a/device/send.go +++ b/device/send.go @@ -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