diff options
author | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2017-09-20 09:26:08 +0200 |
---|---|---|
committer | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2017-09-20 09:26:08 +0200 |
commit | 47a21c8bb08c84d5f84e66ffd3b81ded957dda6d (patch) | |
tree | 99006a48c9aff4ba4c8bef0ae771715a20f1e2e2 /src/send.go | |
parent | f212795e51d839910085e08f9c6b09eac11863d3 (diff) |
Added last_minute_handshake_guard
- Added last_minute_handshake_guard and reverted keypair changes.
- Added comment explaining the state of Go in releation to handling
cryptographic state in memory.
- Decreased logging level of netsh test
Diffstat (limited to 'src/send.go')
-rw-r--r-- | src/send.go | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/src/send.go b/src/send.go index e9dfb54..5c88ead 100644 --- a/src/send.go +++ b/src/send.go @@ -303,27 +303,16 @@ func (device *Device) RoutineEncryption() { } } - // encrypt content (append to header) + // encrypt content and release to consumer binary.LittleEndian.PutUint64(nonce[4:], elem.nonce) - elem.keyPair.send.mutex.RLock() - if elem.keyPair.send.aead == nil { - // very unlikely (the key was deleted during queuing) - elem.Drop() - } else { - elem.packet = elem.keyPair.send.aead.Seal( - header, - nonce[:], - elem.packet, - nil, - ) - } + elem.packet = elem.keyPair.send.Seal( + header, + nonce[:], + elem.packet, + nil, + ) elem.mutex.Unlock() - elem.keyPair.send.mutex.RUnlock() - - // refresh key if necessary - - elem.peer.KeepKeyFreshSending() } } } |