Skip to content

Commit

Permalink
p2p/discover: remove use of shared hash instance for key derivation (e…
Browse files Browse the repository at this point in the history
…thereum#21673)

For some reason, using the shared hash causes a cryptographic incompatibility
when using Go 1.15. I noticed this during the development of Discovery v5.1
when I added test vector verification.

The go library commit that broke this is golang/go@97240d5, but the
way we used HKDF is slightly dodgy anyway and it's not a regression.
  • Loading branch information
fjl authored Oct 8, 2020
1 parent 6d29e19 commit 5e86e4e
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion p2p/discover/v5_encoding.go
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ func (c *wireCodec) deriveKeys(n1, n2 enode.ID, priv *ecdsa.PrivateKey, pub *ecd
info := []byte("discovery v5 key agreement")
info = append(info, n1[:]...)
info = append(info, n2[:]...)
kdf := hkdf.New(c.sha256reset, eph, challenge.IDNonce[:], info)
kdf := hkdf.New(sha256.New, eph, challenge.IDNonce[:], info)
sec := handshakeSecrets{
writeKey: make([]byte, aesKeySize),
readKey: make([]byte, aesKeySize),
Expand Down

0 comments on commit 5e86e4e

Please sign in to comment.