diff options
author | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2017-07-15 16:27:59 +0200 |
---|---|---|
committer | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2017-07-15 16:27:59 +0200 |
commit | dd4da93749fd9a8a231942a6b75ad137cc308e02 (patch) | |
tree | 187c4d0257e4216ea332cd09d19f6b50041b0791 /src/send.go | |
parent | b21c82e32d955e15d846aed87535b6d728ab1d0b (diff) | |
download | wireguard-go-dd4da93749fd9a8a231942a6b75ad137cc308e02.tar.gz wireguard-go-dd4da93749fd9a8a231942a6b75ad137cc308e02.zip |
Added padding
Added plaintext padding and fixed default interface MTU
Diffstat (limited to '')
-rw-r--r-- | src/send.go | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/send.go b/src/send.go index 7a2fe44..2db74ba 100644 --- a/src/send.go +++ b/src/send.go @@ -281,17 +281,22 @@ func (device *Device) RoutineEncryption() { // populate header fields - func() { - header := work.buffer[:MessageTransportHeaderSize] + header := work.buffer[:MessageTransportHeaderSize] - fieldType := header[0:4] - fieldReceiver := header[4:8] - fieldNonce := header[8:16] + fieldType := header[0:4] + fieldReceiver := header[4:8] + fieldNonce := header[8:16] - binary.LittleEndian.PutUint32(fieldType, MessageTransportType) - binary.LittleEndian.PutUint32(fieldReceiver, work.keyPair.remoteIndex) - binary.LittleEndian.PutUint64(fieldNonce, work.nonce) - }() + binary.LittleEndian.PutUint32(fieldType, MessageTransportType) + binary.LittleEndian.PutUint32(fieldReceiver, work.keyPair.remoteIndex) + binary.LittleEndian.PutUint64(fieldNonce, work.nonce) + + // pad content to MTU size + + mtu := int(atomic.LoadInt32(&device.mtu)) + for i := len(work.packet); i < mtu; i++ { + work.packet = append(work.packet, 0) + } // encrypt content |