aboutsummaryrefslogtreecommitdiff
path: root/src/send.go
diff options
context:
space:
mode:
authorMathias Hall-Andersen <mathias@hall-andersen.dk>2017-07-15 16:27:59 +0200
committerMathias Hall-Andersen <mathias@hall-andersen.dk>2017-07-15 16:27:59 +0200
commitdd4da93749fd9a8a231942a6b75ad137cc308e02 (patch)
tree187c4d0257e4216ea332cd09d19f6b50041b0791 /src/send.go
parentb21c82e32d955e15d846aed87535b6d728ab1d0b (diff)
downloadwireguard-go-dd4da93749fd9a8a231942a6b75ad137cc308e02.tar.gz
wireguard-go-dd4da93749fd9a8a231942a6b75ad137cc308e02.zip
Added padding
Added plaintext padding and fixed default interface MTU
Diffstat (limited to 'src/send.go')
-rw-r--r--src/send.go23
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