Documentation ¶
Index ¶
- type EllipticCurve
- func (ec *EllipticCurve) Add(P, Q Point) (R Point)
- func (ec *EllipticCurve) Decompress(x *big.Int, ylsb uint) (P Point, err error)
- func (ec *EllipticCurve) IsInfinity(P Point) bool
- func (ec *EllipticCurve) IsOnCurve(P Point) bool
- func (ec *EllipticCurve) ScalarBaseMult(k *big.Int) (Q Point)
- func (ec *EllipticCurve) ScalarMult(k *big.Int, P Point) (Q Point)
- type Point
- type PrivateKey
- type PublicKey
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EllipticCurve ¶
y**2 = x**3 + a*x + b % p
EllipticCurve represents the parameters of a short Weierstrass equation elliptic curve.
func (*EllipticCurve) Add ¶
func (ec *EllipticCurve) Add(P, Q Point) (R Point)
Add computes R = P + Q on EllipticCurve ec.
func (*EllipticCurve) Decompress ¶
Decompress decompresses coordinate x and ylsb (y's least significant bit) into a Point P on EllipticCurve ec.
func (*EllipticCurve) IsInfinity ¶
func (ec *EllipticCurve) IsInfinity(P Point) bool
IsInfinity checks if point P is infinity on EllipticCurve ec.
func (*EllipticCurve) IsOnCurve ¶
func (ec *EllipticCurve) IsOnCurve(P Point) bool
IsOnCurve checks if point P is on EllipticCurve ec.
func (*EllipticCurve) ScalarBaseMult ¶
func (ec *EllipticCurve) ScalarBaseMult(k *big.Int) (Q Point)
ScalarBaseMult computes Q = k * G on EllipticCurve ec.
func (*EllipticCurve) ScalarMult ¶
func (ec *EllipticCurve) ScalarMult(k *big.Int, P Point) (Q Point)
ScalarMult computes Q = k * P on EllipticCurve ec.
type PrivateKey ¶
PrivateKey represents a Bitcoin private key.
func GenerateKey ¶
func GenerateKey(rand io.Reader) (priv PrivateKey, err error)
GenerateKey generates a public and private key pair using random source rand.
func NewPrivateKey ¶
func NewPrivateKey(d *big.Int) *PrivateKey
func (*PrivateKey) ToBytes ¶
func (priv *PrivateKey) ToBytes() (b []byte)
ToBytes converts a Bitcoin private key to a 32-byte byte slice.
type PublicKey ¶
type PublicKey struct {
Point
}
PublicKey represents a Bitcoin public key.
func (*PublicKey) ToBytes ¶
ToBytes converts a Bitcoin public key to a 33-byte byte slice with point compression.
func (*PublicKey) ToBytesUncompressed ¶
ToBytesUncompressed converts a Bitcoin public key to a 65-byte byte slice without point compression.