From d4725bc45685187088c84234a6d2be396a1373e5 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Thu, 28 Jan 2021 14:44:51 +0100 Subject: [PATCH] device: the psk is not a chapoly key It's a separate type of key that gets hashed into the chain. Signed-off-by: Jason A. Donenfeld --- device/noise-protocol.go | 2 +- device/noise-types.go | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/device/noise-protocol.go b/device/noise-protocol.go index 5669381..1068701 100644 --- a/device/noise-protocol.go +++ b/device/noise-protocol.go @@ -121,7 +121,7 @@ type Handshake struct { mutex sync.RWMutex hash [blake2s.Size]byte // hash value chainKey [blake2s.Size]byte // chain key - presharedKey NoiseSymmetricKey // psk + presharedKey NoisePresharedKey // psk localEphemeral NoisePrivateKey // ephemeral secret key localIndex uint32 // used to clear hash-table remoteIndex uint32 // index for sending diff --git a/device/noise-types.go b/device/noise-types.go index f793ef5..90108d4 100644 --- a/device/noise-types.go +++ b/device/noise-types.go @@ -9,19 +9,18 @@ import ( "crypto/subtle" "encoding/hex" "errors" - - "golang.org/x/crypto/chacha20poly1305" ) const ( - NoisePublicKeySize = 32 - NoisePrivateKeySize = 32 + NoisePublicKeySize = 32 + NoisePrivateKeySize = 32 + NoisePresharedKeySize = 32 ) type ( NoisePublicKey [NoisePublicKeySize]byte NoisePrivateKey [NoisePrivateKeySize]byte - NoiseSymmetricKey [chacha20poly1305.KeySize]byte + NoisePresharedKey [NoisePresharedKeySize]byte NoiseNonce uint64 // padded to 12-bytes ) @@ -82,10 +81,10 @@ func (key NoisePublicKey) Equals(tar NoisePublicKey) bool { return subtle.ConstantTimeCompare(key[:], tar[:]) == 1 } -func (key *NoiseSymmetricKey) FromHex(src string) error { +func (key *NoisePresharedKey) FromHex(src string) error { return loadExactHex(key[:], src) } -func (key NoiseSymmetricKey) ToHex() string { +func (key NoisePresharedKey) ToHex() string { return hex.EncodeToString(key[:]) }