ECDH method does not verify curve Issue #58131 golang/go GitHub

[ad_1]

Yes with go1.20rc3.

package main import ( “crypto/ecdh” “crypto/rand” “fmt”) func main() { p256, _:= ecdh.P256().GenerateKey(rand.Reader) p384, _:= ecdh.P384() .GenerateKey(rand.Reader) x25519, _ := ecdh.X25519().GenerateKey(rand.Reader) secret, err := p256.ECDH(p384.PublicKey()) fmt.Println(secret, err) secret, err = p256.ECDH(x25519.PublicKey()) fmt.Println(secret, err) secret, err = p384.ECDH(p256.PublicKey()) fmt.Println(secret, err) secret, err = p384.ECDH(x25519 .PublicKey()) fmt.Println(secret, err) secret, err = x25519.ECDH(p256.PublicKey()) fmt.Println(secret, err) secret, err = x25519.ECDH(p384.PublicKey()) fmt .Println(secret, uh) }

Some kind of invalid curve error.

[] P256 point encoding invalid
[] P256 point encoding invalid
[] P384 dot encoding invalid
[] P384 dot encoding invalid
[] crypto/ecdh: bad remote ECDH input X25519: low order point
[] crypto/ecdh: bad remote ECDH input X25519: low order point
[] boringcrypto: EC_POINT_mul failed panic: runtime error: invalid memory address or null pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x5f20cd]

goroutine 1 [running]: crypto/internal/boring.ECDH(0xc000014048, 0x0) /home/tom/sdk/go1.20rc3/src/crypto/internal/boring/ecdh.go:150 +0x12d crypto/ecdh.(*nistCurve[…]).ecdh(…) /home/tom/sdk/go1.20rc3/src/crypto/ecdh/nist.go:200 crypto/ecdh.(*PrivateKey).ECDH(…) /home/tom/ sdk/go1.20rc3/src/crypto/ecdh/ecdh.go:121 main.main() /home/tom/ecdh.go:17 +0x155

Sources

1/ https://Google.com/

2/ https://github.com/golang/go/issues/58131

The mention sources can contact us to remove/changing this article

[ad_2]

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts