keys

package module
v0.0.0-...-ae55713 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2017 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Info

type Info struct {
	Name    string         `json:"name"`
	Address data.Bytes     `json:"address"`
	PubKey  crypto.PubKeyS `json:"pubkey"`
}

Info is the public information about a key

func (*Info) Format

func (i *Info) Format() Info

type Infos

type Infos []Info

Infos is a wrapper to allows alphabetical sorting of the keys

func (Infos) Len

func (k Infos) Len() int

func (Infos) Less

func (k Infos) Less(i, j int) bool

func (Infos) Sort

func (k Infos) Sort()

func (Infos) Swap

func (k Infos) Swap(i, j int)

type Manager

type Manager interface {
	Create(name, passphrase, algo string) (Info, error)
	List() (Infos, error)
	Get(name string) (Info, error)
	Update(name, oldpass, newpass string) error
	Delete(name, passphrase string) error
}

Manager allows simple CRUD on a keystore, as an aid to signing

type Signable

type Signable interface {
	// SignBytes is the immutable data, which needs to be signed
	SignBytes() []byte

	// Sign will add a signature and pubkey.
	//
	// Depending on the Signable, one may be able to call this multiple times for multisig
	// Returns error if called with invalid data or too many times
	Sign(pubkey crypto.PubKey, sig crypto.Signature) error

	// Signers will return the public key(s) that signed if the signature
	// is valid, or an error if there is any issue with the signature,
	// including if there are no signatures
	Signers() ([]crypto.PubKey, error)

	// TxBytes returns the transaction data as well as all signatures
	// It should return an error if Sign was never called
	TxBytes() ([]byte, error)
}

Signable represents any transaction we wish to send to tendermint core These methods allow us to sign arbitrary Tx with the KeyStore

type Signer

type Signer interface {
	Sign(name, passphrase string, tx Signable) error
}

Signer allows one to use a keystore to sign transactions

type Storage

type Storage interface {
	Put(name string, key []byte, info Info) error
	Get(name string) ([]byte, Info, error)
	List() (Infos, error)
	Delete(name string) error
}

Storage has many implementation, based on security and sharing requirements like disk-backed, mem-backed, vault, db, etc.

Directories

Path Synopsis
cmd
package cryptostore maintains everything needed for doing public-key signing and key management in software, based on the go-crypto library from tendermint.
package cryptostore maintains everything needed for doing public-key signing and key management in software, based on the go-crypto library from tendermint.
package server provides http handlers to construct a server server for key management, transaction signing, and query validation.
package server provides http handlers to construct a server server for key management, transaction signing, and query validation.
storage
filestorage
package filestorage provides a secure on-disk storage of private keys and metadata.
package filestorage provides a secure on-disk storage of private keys and metadata.
memstorage
package memstorage provides a simple in-memory key store designed for use in test cases, particularly to isolate them from the filesystem, concurrency, and cleanup issues.
package memstorage provides a simple in-memory key store designed for use in test cases, particularly to isolate them from the filesystem, concurrency, and cleanup issues.
package tx contains generic Signable implementations that can be used by your application or tests to handle authentication needs.
package tx contains generic Signable implementations that can be used by your application or tests to handle authentication needs.

Jump to

Keyboard shortcuts

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