src/crypto/elliptic/elliptic.go | 3 ++- diff --git a/src/crypto/elliptic/elliptic.go b/src/crypto/elliptic/elliptic.go index 4fc2b5e5213af7000b5bddfbf868c6128e334432..c84657c5e36777fcdf435b56ecf34d958f1b686f 100644 --- a/src/crypto/elliptic/elliptic.go +++ b/src/crypto/elliptic/elliptic.go @@ -210,8 +210,9 @@ beta := alpha2.Mul(x, gamma) x3 := new(big.Int).Mul(alpha, alpha) beta8 := new(big.Int).Lsh(beta, 3) + beta8.Mod(beta8, curve.P) x3.Sub(x3, beta8) - for x3.Sign() == -1 { + if x3.Sign() == -1 { x3.Add(x3, curve.P) } x3.Mod(x3, curve.P)