stop chan struct{}
}
peers map[NoisePublicKey]*Peer
- mac MacStateDevice
+ mac MACStateDevice
}
func (device *Device) SetPrivateKey(sk NoisePrivateKey) {
"time"
)
-type MacStateDevice struct {
+type MACStateDevice struct {
mutex sync.RWMutex
refreshed time.Time
secret [blake2s.Size]byte
xaead cipher.AEAD
}
-func (state *MacStateDevice) Init(pk NoisePublicKey) {
+func (state *MACStateDevice) Init(pk NoisePublicKey) {
state.mutex.Lock()
defer state.mutex.Unlock()
func() {
state.refreshed = time.Time{} // never
}
-func (state *MacStateDevice) CheckMAC1(msg []byte) bool {
+func (state *MACStateDevice) CheckMAC1(msg []byte) bool {
size := len(msg)
startMac1 := size - (blake2s.Size128 * 2)
startMac2 := size - blake2s.Size128
return hmac.Equal(mac1[:], msg[startMac1:startMac2])
}
-func (state *MacStateDevice) CheckMAC2(msg []byte, addr *net.UDPAddr) bool {
+func (state *MACStateDevice) CheckMAC2(msg []byte, addr *net.UDPAddr) bool {
state.mutex.RLock()
defer state.mutex.RUnlock()
"time"
)
-type MacStatePeer struct {
+type MACStatePeer struct {
mutex sync.RWMutex
cookieSet time.Time
cookie [blake2s.Size128]byte
xaead cipher.AEAD
}
-func (state *MacStatePeer) Init(pk NoisePublicKey) {
+func (state *MACStatePeer) Init(pk NoisePublicKey) {
state.mutex.Lock()
defer state.mutex.Unlock()
func() {
state.cookieSet = time.Time{} // never
}
-func (state *MacStatePeer) AddMacs(msg []byte) {
+func (state *MACStatePeer) AddMacs(msg []byte) {
size := len(msg)
if size < blake2s.Size128*2 {
Ephemeral NoisePublicKey
Static [NoisePublicKeySize + poly1305.TagSize]byte
Timestamp [TAI64NSize + poly1305.TagSize]byte
- Mac1 [blake2s.Size128]byte
- Mac2 [blake2s.Size128]byte
+ MAC1 [blake2s.Size128]byte
+ MAC2 [blake2s.Size128]byte
}
type MessageResponse struct {
Receiver uint32
Ephemeral NoisePublicKey
Empty [poly1305.TagSize]byte
- Mac1 [blake2s.Size128]byte
- Mac2 [blake2s.Size128]byte
+ MAC1 [blake2s.Size128]byte
+ MAC2 [blake2s.Size128]byte
}
type MessageTransport struct {
var out []byte
var nonce [12]byte
out = key1.send.Seal(out, nonce[:], testMsg, nil)
- out, err = key2.recv.Open(out[:0], nonce[:], out, nil)
+ out, err = key2.receive.Open(out[:0], nonce[:], out, nil)
assertNil(t, err)
assertEqual(t, out, testMsg)
}()
var out []byte
var nonce [12]byte
out = key2.send.Seal(out, nonce[:], testMsg, nil)
- out, err = key1.recv.Open(out[:0], nonce[:], out, nil)
+ out, err = key1.receive.Open(out[:0], nonce[:], out, nil)
assertNil(t, err)
assertEqual(t, out, testMsg)
}()
outbound chan *QueueOutboundElement // sequential ordering of work
inbound chan *QueueInboundElement // sequential ordering of work
}
- mac MacStatePeer
+ mac MACStatePeer
}
func (device *Device) NewPeer(pk NoisePublicKey) *Peer {