ecc

package
v0.10.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 14, 2023 License: MIT Imports: 15 Imported by: 0

README

EOSIO Elliptic Curve Cryptography Wrapper

This is a simple wrapper for btcec, that handles the specificities of the format for keys in EOS.

It was crafted in reference to eosjs-ecc, eosjs-keygen and the C++ codebase of EOS.IO Software.

This handles the EOS prefix on public keys, manages the version and checksums in public and private keys.

Documentation

Index

Constants

View Source
const (
	CurveK1 = CurveID(iota)
	CurveR1
	CurveWA
	CurveK1AM
)
View Source
const PrivateKeyPrefix = "PVT_"
View Source
const SignatureK1Prefix = "SIG_K1_"
View Source
const SignatureR1Prefix = "SIG_R1_"
View Source
const SignatureWAPrefix = "SIG_WA_"

Variables

View Source
var B3 = big.NewInt(3)

We use 3 a couple of times in the decompress algorithm below

View Source
var PublicKeyAMPrefix = "AM"
View Source
var PublicKeyK1Prefix = "PUB_K1_"
View Source
var PublicKeyPrefix = "PUB_"
View Source
var PublicKeyPrefixCompat = "EOS"
View Source
var PublicKeyR1Prefix = "PUB_R1_"
View Source
var PublicKeyWAPrefix = "PUB_WA_"

Functions

This section is empty.

Types

type CurveID

type CurveID uint8

func (CurveID) String

func (c CurveID) String() string

func (CurveID) StringPrefix

func (c CurveID) StringPrefix() string

type PrivateKey

type PrivateKey struct {
	Curve CurveID
	// contains filtered or unexported fields
}

func NewAMAPrivateKey added in v0.10.3

func NewAMAPrivateKey(wif string) (*PrivateKey, error)

func NewAMAPrivateKeyFromSeed added in v0.10.3

func NewAMAPrivateKeyFromSeed(seed string) (*PrivateKey, error)

func NewDeterministicAMAPrivateKey added in v0.10.3

func NewDeterministicAMAPrivateKey(randSource io.Reader) (*PrivateKey, error)

func NewDeterministicPrivateKey

func NewDeterministicPrivateKey(randSource io.Reader) (*PrivateKey, error)

func NewPrivateKey

func NewPrivateKey(wif string) (*PrivateKey, error)

func NewPrivateKeyFromSeed added in v0.10.3

func NewPrivateKeyFromSeed(seed string) (*PrivateKey, error)

func NewRandomAMAPrivateKey added in v0.10.3

func NewRandomAMAPrivateKey() (*PrivateKey, error)

func NewRandomPrivateKey

func NewRandomPrivateKey() (*PrivateKey, error)

func (*PrivateKey) MarshalJSON

func (p *PrivateKey) MarshalJSON() ([]byte, error)

func (*PrivateKey) PublicKey

func (p *PrivateKey) PublicKey() PublicKey

func (*PrivateKey) Sign

func (p *PrivateKey) Sign(hash []byte) (out Signature, err error)

Sign signs a 32 bytes SHA256 hash..

func (*PrivateKey) String

func (p *PrivateKey) String() string

func (*PrivateKey) UnmarshalJSON

func (p *PrivateKey) UnmarshalJSON(v []byte) (err error)

type PublicKey

type PublicKey struct {
	Curve   CurveID
	Content []byte
	// contains filtered or unexported fields
}

func MustNewPublicKey

func MustNewPublicKey(pubKey string) PublicKey

func MustNewPublicKeyFromData

func MustNewPublicKeyFromData(data []byte) PublicKey

func NewPublicKey

func NewPublicKey(pubKey string) (out PublicKey, err error)

func NewPublicKeyFromData

func NewPublicKeyFromData(data []byte) (out PublicKey, err error)

func (PublicKey) IsEmpty added in v0.10.3

func (p PublicKey) IsEmpty() bool

func (PublicKey) Key

func (p PublicKey) Key() (*btcec.PublicKey, error)

func (PublicKey) KeyMaterialSize added in v0.10.3

func (p PublicKey) KeyMaterialSize() int

func (PublicKey) MarshalJSON

func (p PublicKey) MarshalJSON() ([]byte, error)

func (PublicKey) String

func (p PublicKey) String() string

func (*PublicKey) UnmarshalJSON

func (p *PublicKey) UnmarshalJSON(data []byte) error

func (PublicKey) Validate added in v0.10.3

func (p PublicKey) Validate() error

type Signature

type Signature struct {
	Curve   CurveID
	Content []byte // the Compact signature as bytes
	// contains filtered or unexported fields
}

Signature represents a signature for some hash

func MustNewAMASignature added in v0.10.3

func MustNewAMASignature(fromText string) Signature

func MustNewAMASignatureFromData added in v0.10.3

func MustNewAMASignatureFromData(data []byte) Signature

AMAX兼容

func MustNewSignature added in v0.10.3

func MustNewSignature(fromText string) Signature

func MustNewSignatureFromData

func MustNewSignatureFromData(data []byte) Signature

func NewAMASignature added in v0.10.3

func NewAMASignature(signature string) (out Signature, err error)

func NewAMASignatureFromData added in v0.10.3

func NewAMASignatureFromData(data []byte) (Signature, error)

func NewSignature

func NewSignature(signature string) (out Signature, err error)

func NewSignatureFromData

func NewSignatureFromData(data []byte) (Signature, error)

func (Signature) MarshalJSON

func (s Signature) MarshalJSON() ([]byte, error)

func (Signature) PublicKey

func (s Signature) PublicKey(hash []byte) (out PublicKey, err error)

func (Signature) String

func (s Signature) String() string

func (*Signature) UnmarshalJSON

func (s *Signature) UnmarshalJSON(data []byte) (err error)

func (Signature) Validate added in v0.10.3

func (s Signature) Validate() error

func (Signature) Verify

func (s Signature) Verify(hash []byte, pubKey PublicKey) bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL