Documentation ¶
Index ¶
- Constants
- Variables
- func ETHSECP256K1TOECDSA(data []byte) *ecdsa.PrivateKey
- func GetFileName(path string, address Address) (string, error)
- func NewKeyPairFromTendermint() (PublicKey, PrivateKey, error)
- func PreHashRequired(sig []byte) (bool, hash.Hash)
- type AccountKey
- type Address
- type Algorithm
- type BTCMultiSig
- func (m *BTCMultiSig) AddSignature(s *BTCSignature) error
- func (m BTCMultiSig) Address() Address
- func (m BTCMultiSig) Bytes() []byte
- func (m *BTCMultiSig) FromBytes(b []byte) error
- func (m *BTCMultiSig) GetSignatures() []BTCSignature
- func (m *BTCMultiSig) GetSignaturesInOrder() [][]byte
- func (m *BTCMultiSig) GetSignerIndex(addr Address) (int, error)
- func (m BTCMultiSig) HasAddressSigned(addr Address) bool
- func (m BTCMultiSig) IsCancel() bool
- func (m BTCMultiSig) IsValid() bool
- func (m *BTCMultiSig) Marshal() ([]byte, error)
- func (m *BTCMultiSig) Unmarshal(b []byte) error
- type BTCSignature
- type KeyStore
- func (ks *KeyStore) DeleteKey(path string, address Address, passphrase string) error
- func (ks *KeyStore) GetAddress(path string, filename string) (Address, error)
- func (ks *KeyStore) GetKeyData(path string, address Address, passphrase string) ([]byte, error)
- func (ks *KeyStore) KeyExists(path string, address Address) bool
- func (ks *KeyStore) SaveKeyData(path string, address Address, data []byte, passphrase string) error
- func (ks *KeyStore) VerifyPassphrase(path string, address Address, passphrase string) (bool, error)
- type MultiSig
- func (m *MultiSig) AddSignature(s Signature) error
- func (m MultiSig) Address() Address
- func (m MultiSig) Bytes() []byte
- func (m *MultiSig) FromBytes(b []byte) error
- func (m *MultiSig) GetSignatures() []Signature
- func (m *MultiSig) GetSignerIndex(ad Address) (int, error)
- func (m MultiSig) HasAddressSigned(addr Address) bool
- func (m *MultiSig) Init(msg []byte, threshold int, signers []Address) error
- func (m MultiSig) IsValid() bool
- type MultiSigner
- type PrivateKey
- type PrivateKeyBTCEC
- type PrivateKeyED25519
- type PrivateKeyETHSECP
- type PrivateKeyHandler
- type PrivateKeySECP256K1
- type PublicKey
- type PublicKeyBTCEC
- type PublicKeyED25519
- func (k PublicKeyED25519) Address() Address
- func (k PublicKeyED25519) Bytes() []byte
- func (k PublicKeyED25519) Equals(pubkey PublicKey) bool
- func (k PublicKeyED25519) String() string
- func (k PublicKeyED25519) VerifyBytes(msg []byte, sig []byte) bool
- func (k PublicKeyED25519) VerifyPreHashMsg(msg []byte, sig []byte, hash hash.Hash) bool
- type PublicKeyETHSECP
- type PublicKeyHandler
- type PublicKeySECP256K1
- type Signature
Constants ¶
const ( SHA224 = "SHA224" SHA256 = "SHA256" SHA384 = "SHA384" SHA512 = "SHA512" TAGLEN = 6 SIG_LEN = 64 )
const ( UNKNOWN Algorithm = iota ED25519 SECP256K1 BTCECSECP ETHSECP ED25519_PUB_SIZE int = ed25519.PubKeyEd25519Size ED25519_PRIV_SIZE int = 64 SECP256K1_PUB_SIZE int = secp256k1.PubKeySecp256k1Size SECP256K1_PRIV_SIZE int = 32 )
const ( EmptyStr = "" VERSION = 1 )
Variables ¶
var ( ErrWrongPublicKeyAdapter = errors.New("error in asserting to PublicKey Addapter") ErrWrongPrivateKeyAdapter = errors.New("error in asserting to PrivateKey Addapter") ErrMissMsg = errors.New("miss message to sign") ErrMissSigners = errors.New("signers not specified") ErrInvalidThreshold = errors.New("invalid threshold") ErrNotExpectedSigner = errors.New("not expected signer") ErrInvalidSignedMsg = errors.New("invalid signed message") )
Functions ¶
func ETHSECP256K1TOECDSA ¶ added in v0.13.0
func ETHSECP256K1TOECDSA(data []byte) *ecdsa.PrivateKey
func NewKeyPairFromTendermint ¶
func NewKeyPairFromTendermint() (PublicKey, PrivateKey, error)
Types ¶
type AccountKey ¶ added in v0.14.0
type Address ¶
type Address []byte
Address to be used as to reference a key-pair.
func (Address) MarshalText ¶ added in v0.10.8
MarshalText returns the text form for an Address. It returns a byteslice containing the hex encoding of the address including the 0x prefix
func (*Address) UnmarshalText ¶ added in v0.10.8
UnmarshalText decodes the given text in a byteslice of characters, and works regardless of whether the 0x prefix is present or not.
type Algorithm ¶
type Algorithm int
func GetAlgorithmFromTmKeyName ¶ added in v0.10.4
func (Algorithm) MarshalText ¶ added in v0.10.8
func (*Algorithm) UnmarshalText ¶ added in v0.10.8
type BTCMultiSig ¶ added in v0.13.0
type BTCMultiSig struct { Msg []byte `json:"msg"` M int `json:"m"` Signers []Address `json:"signers"` Signatures []BTCSignature `json:"signatures"` }
func NewBTCMultiSig ¶ added in v0.13.0
func NewBTCMultiSig(msg []byte, m int, signers []Address) (*BTCMultiSig, error)
func (*BTCMultiSig) AddSignature ¶ added in v0.13.0
func (m *BTCMultiSig) AddSignature(s *BTCSignature) error
func (BTCMultiSig) Address ¶ added in v0.13.0
func (m BTCMultiSig) Address() Address
func (BTCMultiSig) Bytes ¶ added in v0.13.0
func (m BTCMultiSig) Bytes() []byte
func (*BTCMultiSig) FromBytes ¶ added in v0.13.0
func (m *BTCMultiSig) FromBytes(b []byte) error
func (*BTCMultiSig) GetSignatures ¶ added in v0.13.0
func (m *BTCMultiSig) GetSignatures() []BTCSignature
func (*BTCMultiSig) GetSignaturesInOrder ¶ added in v0.13.0
func (m *BTCMultiSig) GetSignaturesInOrder() [][]byte
func (*BTCMultiSig) GetSignerIndex ¶ added in v0.13.0
func (m *BTCMultiSig) GetSignerIndex(addr Address) (int, error)
func (BTCMultiSig) HasAddressSigned ¶ added in v0.13.0
func (m BTCMultiSig) HasAddressSigned(addr Address) bool
func (BTCMultiSig) IsCancel ¶ added in v0.13.0
func (m BTCMultiSig) IsCancel() bool
func (BTCMultiSig) IsValid ¶ added in v0.13.0
func (m BTCMultiSig) IsValid() bool
func (*BTCMultiSig) Marshal ¶ added in v0.13.0
func (m *BTCMultiSig) Marshal() ([]byte, error)
func (*BTCMultiSig) Unmarshal ¶ added in v0.13.0
func (m *BTCMultiSig) Unmarshal(b []byte) error
type BTCSignature ¶ added in v0.13.0
type KeyStore ¶ added in v0.14.0
type KeyStore struct { }
func NewKeyStore ¶ added in v0.14.0
func NewKeyStore() *KeyStore
func (*KeyStore) GetAddress ¶ added in v0.14.0
func (*KeyStore) GetKeyData ¶ added in v0.14.0
func (*KeyStore) SaveKeyData ¶ added in v0.14.0
type MultiSig ¶ added in v0.11.0
type MultiSig struct { // message that need to be sign by this multisig Msg []byte //used for threshold signature where M represent the minimal signatures for the multisig to be valid // M is between (0, len(Signer)] // when M = len(Signer): need all signers to sign M int //the expected signers that need to sign for the message, the signers will be sorted in the slice. Signers []Address //the collection of signatures for signers, the index of signatures should match the index of signers. this should // be empty when created and before add Signature Signatures []Signature }
func (*MultiSig) AddSignature ¶ added in v0.11.0
func (*MultiSig) GetSignatures ¶ added in v0.13.0
func (*MultiSig) GetSignerIndex ¶ added in v0.13.0
func (MultiSig) HasAddressSigned ¶ added in v0.13.0
type MultiSigner ¶ added in v0.11.0
type MultiSigner interface { //Initialize the MultiSig // "msg" that need to be sign by this multisig // "threshold" used for threshold signature representing the minimal signatures for the multisig to be valid // "signers" are the expected signers that need to sign for the message, the signers will be sorted in the slice. Init(msg []byte, threshold int, signers []Address) error // Add a signature to the MultiSig. Return error if the signature not satisfy: // - Valid s.PubKey in signature // - PubKey's address doesn't match signer address of s.Index // - Signed info is not the signature for message in the MultiSig AddSignature(s Signature) error // check MultiSig contains enough signature with threshold IsValid() bool // Return the bytes for the MultiSig, // the Bytes should include all info Bytes() []byte // Set MultiSig from []byte FromBytes(b []byte) error GetSignerIndex(Address) (int, error) GetSignatures() []Signature }
type PrivateKey ¶
func GetPrivateKeyFromBytes ¶
func GetPrivateKeyFromBytes(k []byte, algorithm Algorithm) (PrivateKey, error)
func NodeKeyFromTendermint ¶
func NodeKeyFromTendermint(key *p2p.NodeKey) (PrivateKey, error)
NodeKeyFromTendermint returns a PrivateKey from a tendermint NodeKey. The input key must be a ED25519 key.
func PVKeyFromTendermint ¶ added in v0.10.4
func PVKeyFromTendermint(key *privval.FilePVKey) (PrivateKey, error)
NodeKeyFromTendermint returns a PrivateKey from a tendermint NodeKey. The input key must be a ED25519 key.
func (PrivateKey) GetHandler ¶
func (privKey PrivateKey) GetHandler() (PrivateKeyHandler, error)
get the private key handler
func (*PrivateKey) GobDecode ¶
func (privKey *PrivateKey) GobDecode(buf []byte) error
func (*PrivateKey) GobEncode ¶
func (privKey *PrivateKey) GobEncode() ([]byte, error)
type PrivateKeyBTCEC ¶ added in v0.13.0
type PrivateKeyBTCEC btcec.PrivateKey
func (PrivateKeyBTCEC) Bytes ¶ added in v0.13.0
func (k PrivateKeyBTCEC) Bytes() []byte
func (PrivateKeyBTCEC) Equals ¶ added in v0.13.0
func (k PrivateKeyBTCEC) Equals(privkey PrivateKey) bool
func (PrivateKeyBTCEC) PubKey ¶ added in v0.13.0
func (k PrivateKeyBTCEC) PubKey() PublicKey
type PrivateKeyED25519 ¶
type PrivateKeyED25519 ed25519.PrivKeyEd25519
func (PrivateKeyED25519) Bytes ¶
func (k PrivateKeyED25519) Bytes() []byte
func (PrivateKeyED25519) Equals ¶
func (k PrivateKeyED25519) Equals(privkey PrivateKey) bool
func (PrivateKeyED25519) PubKey ¶
func (k PrivateKeyED25519) PubKey() PublicKey
type PrivateKeyETHSECP ¶ added in v0.13.0
type PrivateKeyETHSECP ecdsa.PrivateKey
func (PrivateKeyETHSECP) Bytes ¶ added in v0.13.0
func (p PrivateKeyETHSECP) Bytes() []byte
func (PrivateKeyETHSECP) Equals ¶ added in v0.13.0
func (p PrivateKeyETHSECP) Equals(privKey PrivateKey) bool
func (PrivateKeyETHSECP) PubKey ¶ added in v0.13.0
func (p PrivateKeyETHSECP) PubKey() PublicKey
type PrivateKeyHandler ¶
type PrivateKeySECP256K1 ¶
type PrivateKeySECP256K1 secp256k1.PrivKeySecp256k1
func (PrivateKeySECP256K1) Bytes ¶
func (k PrivateKeySECP256K1) Bytes() []byte
func (PrivateKeySECP256K1) Equals ¶
func (k PrivateKeySECP256K1) Equals(privkey PrivateKey) bool
func (PrivateKeySECP256K1) PubKey ¶
func (k PrivateKeySECP256K1) PubKey() PublicKey
type PublicKey ¶
key Types
func GetPublicKeyFromBytes ¶
func PubKeyFromTendermint ¶ added in v0.12.0
func (PublicKey) GetABCIPubKey ¶
func (PublicKey) GetHandler ¶
func (pubKey PublicKey) GetHandler() (PublicKeyHandler, error)
Get the public key handler
type PublicKeyBTCEC ¶ added in v0.13.0
type PublicKeyBTCEC struct {
// contains filtered or unexported fields
}
func (PublicKeyBTCEC) Address ¶ added in v0.13.0
func (k PublicKeyBTCEC) Address() Address
Address hashes the key with a RIPEMD-160 hash
func (PublicKeyBTCEC) Bytes ¶ added in v0.13.0
func (k PublicKeyBTCEC) Bytes() []byte
func (PublicKeyBTCEC) Equals ¶ added in v0.13.0
func (k PublicKeyBTCEC) Equals(PubkeyBTCEC PublicKey) bool
func (PublicKeyBTCEC) String ¶ added in v0.13.0
func (k PublicKeyBTCEC) String() string
func (PublicKeyBTCEC) VerifyBytes ¶ added in v0.13.0
func (k PublicKeyBTCEC) VerifyBytes(msg []byte, sig []byte) bool
type PublicKeyED25519 ¶
type PublicKeyED25519 struct {
// contains filtered or unexported fields
}
func (PublicKeyED25519) Address ¶
func (k PublicKeyED25519) Address() Address
Address hashes the key with a RIPEMD-160 hash
func (PublicKeyED25519) Bytes ¶
func (k PublicKeyED25519) Bytes() []byte
func (PublicKeyED25519) Equals ¶
func (k PublicKeyED25519) Equals(pubkey PublicKey) bool
func (PublicKeyED25519) String ¶
func (k PublicKeyED25519) String() string
func (PublicKeyED25519) VerifyBytes ¶
func (k PublicKeyED25519) VerifyBytes(msg []byte, sig []byte) bool
func (PublicKeyED25519) VerifyPreHashMsg ¶ added in v0.14.0
type PublicKeyETHSECP ¶ added in v0.13.0
type PublicKeyETHSECP struct {
// contains filtered or unexported fields
}
func (PublicKeyETHSECP) Address ¶ added in v0.13.0
func (k PublicKeyETHSECP) Address() Address
func (PublicKeyETHSECP) Bytes ¶ added in v0.13.0
func (k PublicKeyETHSECP) Bytes() []byte
func (PublicKeyETHSECP) Equals ¶ added in v0.13.0
func (k PublicKeyETHSECP) Equals(pubKey PublicKey) bool
func (PublicKeyETHSECP) VerifyBytes ¶ added in v0.13.0
func (k PublicKeyETHSECP) VerifyBytes(msg []byte, sig []byte) bool
type PublicKeyHandler ¶
type PublicKeyHandler interface { Address() Address Bytes() []byte VerifyBytes(msg []byte, sig []byte) bool Equals(PublicKey) bool }
Interfaces
type PublicKeySECP256K1 ¶
type PublicKeySECP256K1 struct {
// contains filtered or unexported fields
}
func (PublicKeySECP256K1) Address ¶
func (k PublicKeySECP256K1) Address() Address
Address hashes the key with a RIPEMD-160 hash
func (PublicKeySECP256K1) Bytes ¶
func (k PublicKeySECP256K1) Bytes() []byte
func (PublicKeySECP256K1) Equals ¶
func (k PublicKeySECP256K1) Equals(PubkeySECP256K1 PublicKey) bool
func (PublicKeySECP256K1) String ¶
func (k PublicKeySECP256K1) String() string
func (PublicKeySECP256K1) VerifyBytes ¶
func (k PublicKeySECP256K1) VerifyBytes(msg []byte, sig []byte) bool