github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/crypto/elliptic/params.go (about) 1 // Copyright 2021 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package elliptic 6 7 import "github.com/shogo82148/std/math/big" 8 9 // CurveParamsは楕円曲線のパラメータを含み、 [Curve] の汎用で非定数時間の実装も提供します。 10 // 11 // 汎用のCurve実装は非推奨であり、カスタム曲線( [P224] 、 [P256] 、 [P384] 、 [P521] によって返されない曲線)を使用することは、 12 // いかなるセキュリティプロパティも保証しないことに注意してください。 13 type CurveParams struct { 14 P *big.Int 15 N *big.Int 16 B *big.Int 17 Gx, Gy *big.Int 18 BitSize int 19 Name string 20 } 21 22 func (curve *CurveParams) Params() *CurveParams 23 24 // IsOnCurveは [Curve.IsOnCurve] を実装します。 25 // 26 // Deprecated: [CurveParams] のメソッドは非推奨であり、任意のセキュリティプロパティを提供することは保証されていません。 27 // ECDHには [crypto/ecdh] パッケージを使用してください。 28 // ECDSAには、 [P224] 、 [P256] 、 [P384] 、または [P521] から直接返されるCurve値を使用して、 [crypto/ecdsa] パッケージを使用してください。 29 func (curve *CurveParams) IsOnCurve(x, y *big.Int) bool 30 31 // Addは [Curve.Add] を実装します。 32 // 33 // Deprecated: [CurveParams] のメソッドは非推奨であり、任意のセキュリティプロパティを提供することは保証されていません。 34 // ECDHには [crypto/ecdh] パッケージを使用してください。 35 // ECDSAには、 [P224] 、 [P256] 、 [P384] 、または [P521] から直接返されるCurve値を使用して、 [crypto/ecdsa] パッケージを使用してください。 36 func (curve *CurveParams) Add(x1, y1, x2, y2 *big.Int) (*big.Int, *big.Int) 37 38 // Doubleは [Curve.Double] を実装します。 39 // 40 // Deprecated: [CurveParams] のメソッドは非推奨であり、任意のセキュリティプロパティを提供することは保証されていません。 41 // ECDHには [crypto/ecdh] パッケージを使用してください。 42 // ECDSAには、 [P224] 、 [P256] 、 [P384] 、または [P521] から直接返されるCurve値を使用して、 [crypto/ecdsa] パッケージを使用してください。 43 func (curve *CurveParams) Double(x1, y1 *big.Int) (*big.Int, *big.Int) 44 45 // ScalarMultは [Curve.ScalarMult] を実装します。 46 // 47 // Deprecated: [CurveParams] のメソッドは非推奨であり、任意のセキュリティプロパティを提供することは保証されていません。 48 // ECDHには [crypto/ecdh] パッケージを使用してください。 49 // ECDSAには、 [P224] 、 [P256] 、 [P384] 、または [P521] から直接返されるCurve値を使用して、 [crypto/ecdsa] パッケージを使用してください。 50 func (curve *CurveParams) ScalarMult(Bx, By *big.Int, k []byte) (*big.Int, *big.Int) 51 52 // ScalarBaseMultは [Curve.ScalarBaseMult] を実装します。 53 // 54 // Deprecated: [CurveParams] のメソッドは非推奨であり、任意のセキュリティプロパティを提供することは保証されていません。 55 // ECDHには [crypto/ecdh] パッケージを使用してください。 56 // ECDSAには、 [P224] 、 [P256] 、 [P384] 、または [P521] から直接返されるCurve値を使用して、 [crypto/ecdsa] パッケージを使用してください。 57 func (curve *CurveParams) ScalarBaseMult(k []byte) (*big.Int, *big.Int)