zcncrypto

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Jun 19, 2019 License: MIT Imports: 10 Imported by: 8

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsMnemonicValid

func IsMnemonicValid(mnemonic string) bool

func Sha3Sum256

func Sha3Sum256(data string) string

Types

type BLS0ChainScheme

type BLS0ChainScheme struct {
	// contains filtered or unexported fields
}

BLS0ChainScheme - a signature scheme for BLS0Chain Signature

func NewBLS0ChainScheme

func NewBLS0ChainScheme() *BLS0ChainScheme

NewBLS0ChainScheme - create a BLS0ChainScheme object

func (*BLS0ChainScheme) Add

func (b0 *BLS0ChainScheme) Add(signature, msg string) (string, error)

func (*BLS0ChainScheme) GenerateKeys

func (b0 *BLS0ChainScheme) GenerateKeys(numKeys int) (*Wallet, error)

GenerateKeys - implement interface

func (*BLS0ChainScheme) RecoverKeys

func (b0 *BLS0ChainScheme) RecoverKeys(mnemonic string, numKeys int) (*Wallet, error)

func (*BLS0ChainScheme) SetPrivateKey

func (b0 *BLS0ChainScheme) SetPrivateKey(privateKey string) error

SetPrivateKey - implement interface

func (*BLS0ChainScheme) SetPublicKey

func (b0 *BLS0ChainScheme) SetPublicKey(publicKey string) error

SetPublicKey - implement interface

func (*BLS0ChainScheme) Sign

func (b0 *BLS0ChainScheme) Sign(hash string) (string, error)

Sign - implement interface

func (*BLS0ChainScheme) Verify

func (b0 *BLS0ChainScheme) Verify(signature, msg string) (bool, error)

Verify - implement interface

type ED255190chainScheme

type ED255190chainScheme struct {
	// contains filtered or unexported fields
}

ED255190chainScheme - a signature scheme based on ED25519

func NewED255190chainScheme

func NewED255190chainScheme() *ED255190chainScheme

NewED25519Scheme - create a ED255219Scheme object

func (*ED255190chainScheme) Add

func (ed *ED255190chainScheme) Add(signature, msg string) (string, error)

func (*ED255190chainScheme) GenerateKeys

func (ed *ED255190chainScheme) GenerateKeys(numKeys int) (*Wallet, error)

GenerateKeys - implement interface

func (*ED255190chainScheme) RecoverKeys

func (ed *ED255190chainScheme) RecoverKeys(mnemonic string, numKeys int) (*Wallet, error)

func (*ED255190chainScheme) SetPrivateKey

func (ed *ED255190chainScheme) SetPrivateKey(privateKey string) error

func (*ED255190chainScheme) SetPublicKey

func (ed *ED255190chainScheme) SetPublicKey(publicKey string) error

func (*ED255190chainScheme) Sign

func (ed *ED255190chainScheme) Sign(hash string) (string, error)

func (*ED255190chainScheme) Verify

func (ed *ED255190chainScheme) Verify(signature, msg string) (bool, error)

type KeyPair

type KeyPair struct {
	PublicKey  string `json:"public_key"`
	PrivateKey string `json:"private_key"`
}

KeyPair private and publickey

type SignatureScheme

type SignatureScheme interface {
	// Generate fresh keys
	GenerateKeys(numKeys int) (*Wallet, error)
	// Generate keys from mnemonic for recovery
	RecoverKeys(mnemonic string, numKeys int) (*Wallet, error)

	// Signing  - Set private key to sign
	SetPrivateKey(privateKey string) error
	Sign(hash string) (string, error)

	// Signature verification - Set public key to verify
	SetPublicKey(publicKey string) error
	Verify(signature string, msg string) (bool, error)

	// Combine signature for schemes BLS
	Add(signature, msg string) (string, error)
}

SignatureScheme - an encryption scheme for signing and verifying messages

func NewSignatureScheme

func NewSignatureScheme(sigScheme string) SignatureScheme

NewSignatureScheme creates an instance for using signature functions

type Wallet

type Wallet struct {
	ClientID    string    `json:"client_id"`
	ClientKey   string    `json:"client_key"`
	Keys        []KeyPair `json:"keys"`
	Mnemonic    string    `json:"mnemonics"`
	Version     string    `json:"version"`
	DateCreated string    `json:"date_created"`
}

Wallet structure

func (*Wallet) Marshal

func (w *Wallet) Marshal() (string, error)

Marshal returns json string

Jump to

Keyboard shortcuts

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