From 25190e43369a79dc77a740dc8cd28b8a9fcb235e Mon Sep 17 00:00:00 2001 From: Mathias Hall-Andersen Date: Sat, 24 Jun 2017 15:34:17 +0200 Subject: Restructuring of noise impl. --- src/peer.go | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) (limited to 'src/peer.go') diff --git a/src/peer.go b/src/peer.go index db5e99f..f6eb555 100644 --- a/src/peer.go +++ b/src/peer.go @@ -6,17 +6,35 @@ import ( "time" ) -type KeyPair struct { - recieveKey NoiseSymmetricKey - recieveNonce NoiseNonce - sendKey NoiseSymmetricKey - sendNonce NoiseNonce -} - type Peer struct { mutex sync.RWMutex - publicKey NoisePublicKey - presharedKey NoiseSymmetricKey - endpoint net.IP - persistentKeepaliveInterval time.Duration + endpointIP net.IP // + endpointPort uint16 // + persistentKeepaliveInterval time.Duration // 0 = disabled + handshake Handshake + device *Device +} + +func (device *Device) NewPeer(pk NoisePublicKey) *Peer { + var peer Peer + + // map public key + + device.mutex.Lock() + device.peers[pk] = &peer + device.mutex.Unlock() + + // precompute + + peer.mutex.Lock() + peer.device = device + func(h *Handshake) { + h.mutex.Lock() + h.remoteStatic = pk + h.precomputedStaticStatic = device.privateKey.sharedSecret(h.remoteStatic) + h.mutex.Unlock() + }(&peer.handshake) + peer.mutex.Unlock() + + return &peer } -- cgit v1.2.3