noise: store clamped key instead of raw key
This commit is contained in:
parent
a5ca02d79a
commit
3af9aa88a3
|
@ -78,12 +78,14 @@ func setZero(arr []byte) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func newPrivateKey() (sk NoisePrivateKey, err error) {
|
func (sk *NoisePrivateKey) clamp() {
|
||||||
// clamping: https://cr.yp.to/ecdh.html
|
|
||||||
_, err = rand.Read(sk[:])
|
|
||||||
sk[0] &= 248
|
sk[0] &= 248
|
||||||
sk[31] &= 127
|
sk[31] = (sk[31] & 127) | 64
|
||||||
sk[31] |= 64
|
}
|
||||||
|
|
||||||
|
func newPrivateKey() (sk NoisePrivateKey, err error) {
|
||||||
|
_, err = rand.Read(sk[:])
|
||||||
|
sk.clamp()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,8 +45,10 @@ func (key NoisePrivateKey) Equals(tar NoisePrivateKey) bool {
|
||||||
return subtle.ConstantTimeCompare(key[:], tar[:]) == 1
|
return subtle.ConstantTimeCompare(key[:], tar[:]) == 1
|
||||||
}
|
}
|
||||||
|
|
||||||
func (key *NoisePrivateKey) FromHex(src string) error {
|
func (key *NoisePrivateKey) FromHex(src string) (err error) {
|
||||||
return loadExactHex(key[:], src)
|
err = loadExactHex(key[:], src)
|
||||||
|
key.clamp()
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (key NoisePrivateKey) ToHex() string {
|
func (key NoisePrivateKey) ToHex() string {
|
||||||
|
|
Loading…
Reference in a new issue