Versions in this module Expand all Collapse all v0 v0.8.2 Feb 15, 2017 Changes in this version + const PrivKeyBytesLen + const PubKeyBytesLenCompressed + const PubKeyBytesLenHybrid + const PubKeyBytesLenUncompressed + var ErrInvalidMAC = errors.New("invalid mac hash") + var FieldOne = new(FieldVal).SetInt(1) + func DecompressPoint(curve *KoblitzCurve, x *big.Int, ybit bool) (*big.Int, error) + func Decrypt(priv *PrivateKey, in []byte) ([]byte, error) + func Encrypt(pubkey *PublicKey, in []byte) ([]byte, error) + func GenerateKey(curve *KoblitzCurve, rand io.Reader) (priv []byte, x, y *big.Int, err error) + func GenerateSharedSecret(privkey *PrivateKey, pubkey *PublicKey) []byte + func NAF(k []byte) ([]byte, []byte) + func NonceRFC6979(privkey *big.Int, hash []byte, extra []byte, version []byte) *big.Int + func PrivKeyFromBytes(curve *KoblitzCurve, pk []byte) (*PrivateKey, *PublicKey) + func PrivKeyFromScalar(curve *KoblitzCurve, s []byte) (*PrivateKey, *PublicKey) + func SignCompact(curve *KoblitzCurve, key *PrivateKey, hash []byte, isCompressedKey bool) ([]byte, error) + type FieldVal struct + func (f *FieldVal) Add(val *FieldVal) *FieldVal + func (f *FieldVal) Add2(val *FieldVal, val2 *FieldVal) *FieldVal + func (f *FieldVal) AddInt(ui uint) *FieldVal + func (f *FieldVal) Bytes() *[32]byte + func (f *FieldVal) Equals(val *FieldVal) bool + func (f *FieldVal) Inverse() *FieldVal + func (f *FieldVal) IsOdd() bool + func (f *FieldVal) IsZero() bool + func (f *FieldVal) Mul(val *FieldVal) *FieldVal + func (f *FieldVal) Mul2(val *FieldVal, val2 *FieldVal) *FieldVal + func (f *FieldVal) MulInt(val uint) *FieldVal + func (f *FieldVal) Negate(magnitude uint32) *FieldVal + func (f *FieldVal) NegateVal(val *FieldVal, magnitude uint32) *FieldVal + func (f *FieldVal) Normalize() *FieldVal + func (f *FieldVal) PutBytes(b *[32]byte) + func (f *FieldVal) Set(val *FieldVal) *FieldVal + func (f *FieldVal) SetByteSlice(b []byte) *FieldVal + func (f *FieldVal) SetBytes(b *[32]byte) *FieldVal + func (f *FieldVal) SetHex(hexString string) *FieldVal + func (f *FieldVal) SetInt(ui uint) *FieldVal + func (f *FieldVal) Square() *FieldVal + func (f *FieldVal) SquareVal(val *FieldVal) *FieldVal + func (f *FieldVal) Zero() + func (f FieldVal) String() string + type KoblitzCurve struct + H int + func S256() *KoblitzCurve + func (curve *KoblitzCurve) Add(x1, y1, x2, y2 *big.Int) (*big.Int, *big.Int) + func (curve *KoblitzCurve) AddJacobian(x1, y1, z1, x2, y2, z2, x3, y3, z3 *FieldVal) + func (curve *KoblitzCurve) BigAffineToField(x, y *big.Int) (*FieldVal, *FieldVal) + func (curve *KoblitzCurve) Double(x1, y1 *big.Int) (*big.Int, *big.Int) + func (curve *KoblitzCurve) FieldJacobianToBigAffine(x, y, z *FieldVal) (*big.Int, *big.Int) + func (curve *KoblitzCurve) IsOnCurve(x, y *big.Int) bool + func (curve *KoblitzCurve) Params() *elliptic.CurveParams + func (curve *KoblitzCurve) QPlus1Div4() *big.Int + func (curve *KoblitzCurve) ScalarBaseMult(k []byte) (*big.Int, *big.Int) + func (curve *KoblitzCurve) ScalarMult(Bx, By *big.Int, k []byte) (*big.Int, *big.Int) + type PrivateKey ecdsa.PrivateKey + func GeneratePrivateKey(curve *KoblitzCurve) (*PrivateKey, error) + func NewPrivateKey(curve *KoblitzCurve, d *big.Int) *PrivateKey + func (p *PrivateKey) Sign(hash []byte) (*Signature, error) + func (p *PrivateKey) ToECDSA() *ecdsa.PrivateKey + func (p PrivateKey) GetD() *big.Int + func (p PrivateKey) GetType() int + func (p PrivateKey) Public() (*big.Int, *big.Int) + func (p PrivateKey) Serialize() []byte + func (p PrivateKey) SerializeSecret() []byte + type PublicKey ecdsa.PublicKey + func NewPublicKey(curve *KoblitzCurve, x *big.Int, y *big.Int) *PublicKey + func ParsePubKey(pubKeyStr []byte, curve *KoblitzCurve) (key *PublicKey, err error) + func RecoverCompact(curve *KoblitzCurve, signature, hash []byte) (*PublicKey, bool, error) + func (p *PublicKey) IsEqual(otherPubKey *PublicKey) bool + func (p PublicKey) GetCurve() interface{} + func (p PublicKey) GetType() int + func (p PublicKey) GetX() *big.Int + func (p PublicKey) GetY() *big.Int + func (p PublicKey) Serialize() []byte + func (p PublicKey) SerializeCompressed() []byte + func (p PublicKey) SerializeHybrid() []byte + func (p PublicKey) SerializeUncompressed() []byte + func (p PublicKey) ToECDSA() *ecdsa.PublicKey + type Signature struct + R *big.Int + S *big.Int + func NewSignature(r, s *big.Int) *Signature + func ParseDERSignature(sigStr []byte, curve elliptic.Curve) (*Signature, error) + func ParseSignature(sigStr []byte, curve elliptic.Curve) (*Signature, error) + func (sig *Signature) IsEqual(otherSig *Signature) bool + func (sig *Signature) Serialize() []byte + func (sig *Signature) Verify(hash []byte, pubKey *PublicKey) bool + func (sig Signature) GetR() *big.Int + func (sig Signature) GetS() *big.Int + func (sig Signature) GetType() int