ecc

package
v0.0.0-...-1b82a1e Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2020 License: MIT Imports: 16 Imported by: 1

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
)
View Source
const PrivateKeyPrefix = "PVT_"
View Source
const PublicKeyK1Prefix = "PUB_K1_"
View Source
const PublicKeyPrefix = "PUB_"
View Source
const PublicKeyPrefixCompat = "EOS"
View Source
const PublicKeyR1Prefix = "PUB_R1_"
View Source
const PublicKeyWAPrefix = "PUB_WA_"
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

Functions

func Ripemd160checksumHashCurve

func Ripemd160checksumHashCurve(in []byte, curve CurveID) []byte

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 NewDeterministicPrivateKey

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

func NewPrivateKey

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

func NewPrivateKeyFromSeed

func NewPrivateKeyFromSeed(seed string) (*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

func (p PublicKey) IsEmpty() bool

func (PublicKey) Key

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

func (PublicKey) KeyMaterialSize

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

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 MustNewSignature

func MustNewSignature(fromText string) Signature

func MustNewSignatureFromData

func MustNewSignatureFromData(data []byte) Signature

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

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