Documentation ¶
Index ¶
- Constants
- func RecoverPublicKey(sign, hash []byte) (crypto.PubKey, error)
- type PrivKeySecp256k1
- func (privKey PrivKeySecp256k1) Bytes() []byte
- func (privKey PrivKeySecp256k1) Equals(other crypto.PrivKey) bool
- func (privKey PrivKeySecp256k1) PubKey() crypto.PubKey
- func (privKey PrivKeySecp256k1) Sign(msg []byte) ([]byte, error)
- func (privKey PrivKeySecp256k1) SignCompact(hash []byte) ([]byte, error)
- type PubKeySecp256k1
- func (pubKey PubKeySecp256k1) Address() crypto.Address
- func (pubKey PubKeySecp256k1) ByteArray() []byte
- func (pubKey PubKeySecp256k1) Bytes() []byte
- func (pubKey PubKeySecp256k1) Equals(other crypto.PubKey) bool
- func (pubKey PubKeySecp256k1) String() string
- func (pubKey PubKeySecp256k1) VerifyBytes(msg []byte, sig []byte) bool
Constants ¶
const ( Secp256k1PrivKeyAminoRoute = "tendermint/PrivKeySecp256k1" Secp256k1PubKeyAminoRoute = "tendermint/PubKeySecp256k1" )
-------------------------------------
const PubKeySecp256k1Size = 33
PubKeySecp256k1Size is comprised of 32 bytes for one field element (the x-coordinate), plus one byte for the parity of the y-coordinate.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type PrivKeySecp256k1 ¶
type PrivKeySecp256k1 [32]byte
PrivKeySecp256k1 implements PrivKey.
func GenPrivKey ¶
func GenPrivKey() PrivKeySecp256k1
GenPrivKey generates a new ECDSA private key on curve secp256k1 private key. It uses OS randomness in conjunction with the current global random seed in tendermint/libs/common to generate the private key.
func GenPrivKeySecp256k1 ¶
func GenPrivKeySecp256k1(secret []byte) PrivKeySecp256k1
GenPrivKeySecp256k1 hashes the secret with SHA2, and uses that 32 byte output to create the private key. NOTE: secret should be the output of a KDF like bcrypt, if it's derived from user input.
func (PrivKeySecp256k1) Bytes ¶
func (privKey PrivKeySecp256k1) Bytes() []byte
Bytes marshalls the private key using amino encoding.
func (PrivKeySecp256k1) Equals ¶
func (privKey PrivKeySecp256k1) Equals(other crypto.PrivKey) bool
Equals - you probably don't need to use this. Runs in constant time based on length of the keys.
func (PrivKeySecp256k1) PubKey ¶
func (privKey PrivKeySecp256k1) PubKey() crypto.PubKey
PubKey performs the point-scalar multiplication from the privKey on the generator point to get the pubkey.
func (PrivKeySecp256k1) Sign ¶
func (privKey PrivKeySecp256k1) Sign(msg []byte) ([]byte, error)
Sign creates an ECDSA signature on curve Secp256k1, using SHA256 on the msg.
func (PrivKeySecp256k1) SignCompact ¶
func (privKey PrivKeySecp256k1) SignCompact(hash []byte) ([]byte, error)
SignCompact compact sign
type PubKeySecp256k1 ¶
type PubKeySecp256k1 [PubKeySecp256k1Size]byte
PubKeySecp256k1 implements crypto.PubKey. It is the compressed form of the pubkey. The first byte depends is a 0x02 byte if the y-coordinate is the lexicographically largest of the two associated with the x-coordinate. Otherwise the first byte is a 0x03. This prefix is followed with the x-coordinate.
func (PubKeySecp256k1) Address ¶
func (pubKey PubKeySecp256k1) Address() crypto.Address
Address returns a Bitcoin style addresses: RIPEMD160(SHA256(pubkey))
func (PubKeySecp256k1) ByteArray ¶
func (pubKey PubKeySecp256k1) ByteArray() []byte
ByteArray returns byte array
func (PubKeySecp256k1) Bytes ¶
func (pubKey PubKeySecp256k1) Bytes() []byte
Bytes returns the pubkey marshalled with amino encoding.
func (PubKeySecp256k1) String ¶
func (pubKey PubKeySecp256k1) String() string
func (PubKeySecp256k1) VerifyBytes ¶
func (pubKey PubKeySecp256k1) VerifyBytes(msg []byte, sig []byte) bool