aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--noise-helpers.go10
-rw-r--r--noise-types.go6
2 files changed, 10 insertions, 6 deletions
diff --git a/noise-helpers.go b/noise-helpers.go
index 1b2746c..af11f09 100644
--- a/noise-helpers.go
+++ b/noise-helpers.go
@@ -78,12 +78,14 @@ func setZero(arr []byte) {
}
}
+func (sk *NoisePrivateKey) clamp() {
+ sk[0] &= 248
+ sk[31] = (sk[31] & 127) | 64
+}
+
func newPrivateKey() (sk NoisePrivateKey, err error) {
- // clamping: https://cr.yp.to/ecdh.html
_, err = rand.Read(sk[:])
- sk[0] &= 248
- sk[31] &= 127
- sk[31] |= 64
+ sk.clamp()
return
}
diff --git a/noise-types.go b/noise-types.go
index df6ee77..902905e 100644
--- a/noise-types.go
+++ b/noise-types.go
@@ -45,8 +45,10 @@ func (key NoisePrivateKey) Equals(tar NoisePrivateKey) bool {
return subtle.ConstantTimeCompare(key[:], tar[:]) == 1
}
-func (key *NoisePrivateKey) FromHex(src string) error {
- return loadExactHex(key[:], src)
+func (key *NoisePrivateKey) FromHex(src string) (err error) {
+ err = loadExactHex(key[:], src)
+ key.clamp()
+ return
}
func (key NoisePrivateKey) ToHex() string {