Documentation
¶
Index ¶
- func FlattenECPoints(in []*ECPoint) ([]*big.Int, error)
- func GenerateNTildei(rand io.Reader, safePrimes [2]*big.Int) (NTildei, h1i, h2i *big.Int, err error)
- type ECPoint
- func NewECPoint(curve elliptic.Curve, X, Y *big.Int) (*ECPoint, error)
- func NewECPointNoCurveCheck(curve elliptic.Curve, X, Y *big.Int) *ECPoint
- func ScalarBaseMult(curve elliptic.Curve, k *big.Int) *ECPoint
- func UnFlattenECPoints(curve elliptic.Curve, in []*big.Int, noCurveCheck ...bool) ([]*ECPoint, error)
- func (p *ECPoint) Add(p1 *ECPoint) (*ECPoint, error)
- func (p *ECPoint) Curve() elliptic.Curve
- func (p *ECPoint) EightInvEight() *ECPoint
- func (p *ECPoint) Equals(p2 *ECPoint) bool
- func (p *ECPoint) GobDecode(buf []byte) error
- func (p *ECPoint) GobEncode() ([]byte, error)
- func (p *ECPoint) IsOnCurve() bool
- func (p *ECPoint) MarshalJSON() ([]byte, error)
- func (p *ECPoint) ScalarMult(k *big.Int) *ECPoint
- func (p *ECPoint) SetCurve(curve elliptic.Curve) *ECPoint
- func (p *ECPoint) ToECDSAPubKey() *ecdsa.PublicKey
- func (p *ECPoint) ToEd25519PubKey() *edwards25519.PublicKey
- func (p *ECPoint) ToSecp256k1PubKey() *secp256k1.PublicKey
- func (p *ECPoint) UnmarshalJSON(payload []byte) error
- func (p *ECPoint) ValidateBasic() bool
- func (p *ECPoint) X() *big.Int
- func (p *ECPoint) Y() *big.Int
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FlattenECPoints ¶
FlattenECPoints serializes a slice of ECPoints into a flat slice of big.Int coordinates (x1, y1, x2, y2, ...).
Types ¶
type ECPoint ¶
type ECPoint struct {
// contains filtered or unexported fields
}
ECPoint convenience helper
func NewECPoint ¶
Creates a new ECPoint and checks that the given coordinates are on the elliptic curve.
func NewECPointNoCurveCheck ¶
Creates a new ECPoint without checking that the coordinates are on the elliptic curve. Only use this function when you are completely sure that the point is already on the curve.
func ScalarBaseMult ¶
ScalarBaseMult returns k*G where G is the base point of the given curve.
func UnFlattenECPoints ¶
func UnFlattenECPoints(curve elliptic.Curve, in []*big.Int, noCurveCheck ...bool) ([]*ECPoint, error)
UnFlattenECPoints reconstructs a slice of ECPoints from a flat slice of big.Int coordinate pairs.
func (*ECPoint) EightInvEight ¶
EightInvEight multiplies the point by 8 and then by the modular inverse of 8 (used for cofactor clearing on Ed25519).
func (*ECPoint) MarshalJSON ¶
crypto.ECPoint is not inherently json marshal-able
func (*ECPoint) ScalarMult ¶
ScalarMult returns the result of multiplying the point by the scalar k.
func (*ECPoint) ToECDSAPubKey ¶
ToECDSAPubKey converts the ECPoint to a standard library ECDSA public key.
func (*ECPoint) ToEd25519PubKey ¶ added in v2.1.4
func (p *ECPoint) ToEd25519PubKey() *edwards25519.PublicKey
ToEd25519PubKey returns a github.com/ModChain/edwards25519.PublicKey object for this public key or nil if this is not a ed25519 key.
func (*ECPoint) ToSecp256k1PubKey ¶ added in v2.1.1
ToSecp256k1PubKey returns a github.com/ModChain/secp256k1.PublicKey object for this public key or nil if this is not a secp256k1 key.
func (*ECPoint) UnmarshalJSON ¶
UnmarshalJSON implements the json.Unmarshaler interface for ECPoint.
func (*ECPoint) ValidateBasic ¶
ValidateBasic checks that the point is non-nil, has non-nil coordinates, and lies on its curve.