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)