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) {
 | 
			
		||||
	// clamping: https://cr.yp.to/ecdh.html
 | 
			
		||||
	_, err = rand.Read(sk[:])
 | 
			
		||||
func (sk *NoisePrivateKey) clamp() {
 | 
			
		||||
	sk[0] &= 248
 | 
			
		||||
	sk[31] &= 127
 | 
			
		||||
	sk[31] |= 64
 | 
			
		||||
	sk[31] = (sk[31] & 127) | 64
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func newPrivateKey() (sk NoisePrivateKey, err error) {
 | 
			
		||||
	_, err = rand.Read(sk[:])
 | 
			
		||||
	sk.clamp()
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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 {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user