Documentation ¶
Index ¶
Constants ¶
const BankSize = 2048
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CRC16 ¶
type CRC16 struct { Poly uint16 // contains filtered or unexported fields }
CRC16 does the ieee crc16 polynomial check
func NewCCITTCRC16 ¶
func NewCCITTCRC16() *CRC16
func NewIBMCRC16 ¶
func NewIBMCRC16() *CRC16
func NewSCSICRC16 ¶
func NewSCSICRC16() *CRC16
type CRC32 ¶
type CRC32 struct { Poly uint32 // contains filtered or unexported fields }
CRC32 does the ieee crc32 polynomial check
func NewCastagnoliCRC32 ¶
func NewCastagnoliCRC32() *CRC32
func NewIEEECRC32 ¶
func NewIEEECRC32() *CRC32
func NewKoopmanCRC32 ¶
func NewKoopmanCRC32() *CRC32
type CRC64 ¶
type CRC64 struct { Poly uint64 // contains filtered or unexported fields }
CRC64 does the ieee crc64 polynomial check
func NewECMACRC64 ¶
func NewECMACRC64() *CRC64
func NewISOCRC64 ¶
func NewISOCRC64() *CRC64
type ECC ¶
type ECC interface { // AddECC calculates an error-correcting code for the input // returns an output with the code appended AddECC([]byte) []byte // CheckECC verifies if the ECC is proper on the input and returns // the data with the code removed, or an error CheckECC([]byte) ([]byte, error) }
ECC is used for anything that calculates an error-correcting code
type Info ¶
type Info struct { Name string `json:"name"` Address data.Bytes `json:"address"` PubKey crypto.PubKey `json:"pubkey"` }
Info is the public information about a key
type Manager ¶
type Manager interface { Signer // Create also returns a seed phrase for cold-storage Create(name, passphrase, algo string) (Info, string, error) // Recover takes a seedphrase and loads in the private key Recover(name, passphrase, seedphrase 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 MockSignable ¶
MockSignable lets us wrap arbitrary data with a go-crypto signature
func NewMockSignable ¶
func NewMockSignable(data []byte) *MockSignable
NewMockSignable sets the data to sign
func (*MockSignable) Sign ¶
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
func (*MockSignable) SignBytes ¶
func (s *MockSignable) SignBytes() []byte
SignBytes returns the original data passed into `NewSig`
func (*MockSignable) Signers ¶
func (s *MockSignable) Signers() ([]crypto.PubKey, 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
func (*MockSignable) TxBytes ¶
func (s *MockSignable) TxBytes() ([]byte, error)
TxBytes returns the full data with signatures
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 Storage ¶
type Storage interface { Put(name string, key []byte, info Info) error Get(name string) (key []byte, info Info, err 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.
type WordCodec ¶
type WordCodec struct {
// contains filtered or unexported fields
}
func MustLoadCodec ¶
MustLoadCodec panics if word bank is missing, only for tests
func (*WordCodec) BytesToWords ¶
TODO: add checksum
Directories ¶
Path | Synopsis |
---|---|
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. |
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. |