type CurveParams … func (curve *CurveParams) Params() *CurveParams { … } // polynomial returns x³ - 3x + b. func (curve *CurveParams) polynomial(x *big.Int) *big.Int { … } // IsOnCurve implements [Curve.IsOnCurve]. // // Deprecated: the [CurveParams] methods are deprecated and are not guaranteed to // provide any security property. For ECDH, use the [crypto/ecdh] package. // For ECDSA, use the [crypto/ecdsa] package with a [Curve] value returned directly // from [P224], [P256], [P384], or [P521]. func (curve *CurveParams) IsOnCurve(x, y *big.Int) bool { … } // zForAffine returns a Jacobian Z value for the affine point (x, y). If x and // y are zero, it assumes that they represent the point at infinity because (0, // 0) is not on the any of the curves handled here. func zForAffine(x, y *big.Int) *big.Int { … } // affineFromJacobian reverses the Jacobian transform. See the comment at the // top of the file. If the point is ∞ it returns 0, 0. func (curve *CurveParams) affineFromJacobian(x, y, z *big.Int) (xOut, yOut *big.Int) { … } // Add implements [Curve.Add]. // // Deprecated: the [CurveParams] methods are deprecated and are not guaranteed to // provide any security property. For ECDH, use the [crypto/ecdh] package. // For ECDSA, use the [crypto/ecdsa] package with a [Curve] value returned directly // from [P224], [P256], [P384], or [P521]. func (curve *CurveParams) Add(x1, y1, x2, y2 *big.Int) (*big.Int, *big.Int) { … } // addJacobian takes two points in Jacobian coordinates, (x1, y1, z1) and // (x2, y2, z2) and returns their sum, also in Jacobian form. func (curve *CurveParams) addJacobian(x1, y1, z1, x2, y2, z2 *big.Int) (*big.Int, *big.Int, *big.Int) { … } // Double implements [Curve.Double]. // // Deprecated: the [CurveParams] methods are deprecated and are not guaranteed to // provide any security property. For ECDH, use the [crypto/ecdh] package. // For ECDSA, use the [crypto/ecdsa] package with a [Curve] value returned directly // from [P224], [P256], [P384], or [P521]. func (curve *CurveParams) Double(x1, y1 *big.Int) (*big.Int, *big.Int) { … } // doubleJacobian takes a point in Jacobian coordinates, (x, y, z), and // returns its double, also in Jacobian form. func (curve *CurveParams) doubleJacobian(x, y, z *big.Int) (*big.Int, *big.Int, *big.Int) { … } // ScalarMult implements [Curve.ScalarMult]. // // Deprecated: the [CurveParams] methods are deprecated and are not guaranteed to // provide any security property. For ECDH, use the [crypto/ecdh] package. // For ECDSA, use the [crypto/ecdsa] package with a [Curve] value returned directly // from [P224], [P256], [P384], or [P521]. func (curve *CurveParams) ScalarMult(Bx, By *big.Int, k []byte) (*big.Int, *big.Int) { … } // ScalarBaseMult implements [Curve.ScalarBaseMult]. // // Deprecated: the [CurveParams] methods are deprecated and are not guaranteed to // provide any security property. For ECDH, use the [crypto/ecdh] package. // For ECDSA, use the [crypto/ecdsa] package with a [Curve] value returned directly // from [P224], [P256], [P384], or [P521]. func (curve *CurveParams) ScalarBaseMult(k []byte) (*big.Int, *big.Int) { … } func matchesSpecificCurve(params *CurveParams) (Curve, bool) { … }