key

package
v0.0.17 Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2021 License: MIT Imports: 9 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Curve

func Curve(key Key) elliptic.Curve

Curve .

func Decode

func Decode(encodingName string, property Property, reader io.Reader) ([]byte, error)

Decode decode key with encoding name

func Decrypt

func Decrypt(providerName string, privkey []byte, block []byte) ([]byte, error)

Decrypt .

func Encode

func Encode(encodingName string, privKey []byte, property Property, writer io.Writer) error

Encode encode key with encoding name

func Encrypt

func Encrypt(providerName string, pubkey []byte, block []byte) ([]byte, error)

Encrypt .

func PriKeyToPubKey

func PriKeyToPubKey(providerName string, prikey []byte) []byte

PriKeyToPubKey .

func PubKeyToAddress

func PubKeyToAddress(providerName string, pubkey []byte) string

PubKeyToAddress .

func RandomMnemonic

func RandomMnemonic(length int) (string, error)

RandomMnemonic generate random mnemonic with provide length

func Recover

func Recover(providerName string, sig []byte, hash []byte) ([]byte, error)

Recover .

func RegisterEncoding

func RegisterEncoding(encoding Encoding)

RegisterEncoding .

func RegisterProvider

func RegisterProvider(provider Provider)

RegisterProvider .

func Sign added in v0.0.2

func Sign(providerName string, prikey []byte, hashed []byte) ([]byte, error)

Sign .

func SignWithKey added in v0.0.5

func SignWithKey(key Key, hashed []byte) ([]byte, error)

SignWithKey .

func ValidAddress

func ValidAddress(providerName string, address string) bool

ValidAddress .

func Verify added in v0.0.2

func Verify(providerName string, pubkey []byte, sig []byte, hash []byte) bool

Verify .

Types

type AddressProvider

type AddressProvider interface {
	PublicKeyToAddress(pubkey []byte) string
	PrivateToPublic(privateKey []byte) []byte
	ValidAddress(address string) bool
}

AddressProvider .

type EllipticProvider

type EllipticProvider interface {
	Curve() elliptic.Curve
}

EllipticProvider .

type Encoding

type Encoding interface {
	Name() string
	Encode(privKey []byte, property Property, writer io.Writer) error
	Decode(property Property, reader io.Reader) ([]byte, error)
}

Encoding the key format encoding facade

type EncryptProvider

type EncryptProvider interface {
	Encrypt(pubkey []byte, block []byte) ([]byte, error)
	Decrypt(privkey []byte, block []byte) ([]byte, error)
}

EncryptProvider .

type Key

type Key interface {
	Address() string    // address display string
	PriKey() []byte     // private key byte array
	PubKey() []byte     // public key byte array
	Provider() Provider // provider
}

Key blockchain signature alogirthm facade

func As

func As(key Key, providerName string) (Key, error)

As convert key to another type key with provider name

func DriveKey

func DriveKey(providerName string, mnemonic string, path string) (Key, error)

DriveKey drive key use bip32

func FromPriKey

func FromPriKey(providerName string, privKey []byte) (Key, error)

FromPriKey create key with provider name

func RandomKey

func RandomKey(providerName string) (Key, error)

RandomKey create random key with provider name

type Property

type Property map[string]string

Property .

type Provider

type Provider interface {
	Name() string                                       // provider unique name
	RandomKey() (Key, error)                            // create new random key
	FromPriKey(priKey []byte) (Key, error)              // create key facade with private key bytes
	Verify(pubkey []byte, sig []byte, hash []byte) bool // verify signature
	Sign(prikey []byte, hashed []byte) ([]byte, error)  // sign the hashed message
}

Provider blockchain signature alogrithm provider

type RecoverableProvider

type RecoverableProvider interface {
	Recover(sig []byte, hash []byte) (pubkey []byte, err error)
}

RecoverableProvider .

Directories

Path Synopsis
did
eth

Jump to

Keyboard shortcuts

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