crypto
import "github.com/tendermint/go-crypto"
Overview
Index
- Constants
- func CRandBytes(numBytes int) []byte
- func CRandHex(numDigits int) string
- func CReader() io.Reader
- func DecodeArmor(armorStr string) (blockType string, headers map[string]string, data []byte, err error)
- func DecryptSymmetric(ciphertext []byte, secret []byte) (plaintext []byte, err error)
- func EncodeArmor(blockType string, headers map[string]string, data []byte) string
- func EncryptSymmetric(plaintext []byte, secret []byte) (ciphertext []byte)
- func MixEntropy(seedBytes []byte)
- func Ripemd160(bytes []byte) []byte
- func Sha256(bytes []byte) []byte
- type PrivKey
- type PrivKeyEd25519
- func GenPrivKeyEd25519() PrivKeyEd25519
- func GenPrivKeyEd25519FromSecret(secret []byte) PrivKeyEd25519
- func (privKey PrivKeyEd25519) Bytes() []byte
- func (privKey PrivKeyEd25519) Equals(other PrivKey) bool
- func (privKey PrivKeyEd25519) Generate(index int) PrivKeyEd25519
- func (p PrivKeyEd25519) MarshalJSON() ([]byte, error)
- func (privKey PrivKeyEd25519) PubKey() PubKey
- func (privKey PrivKeyEd25519) Sign(msg []byte) Signature
- func (privKey PrivKeyEd25519) String() string
- func (privKey PrivKeyEd25519) ToCurve25519() *[32]byte
- func (p *PrivKeyEd25519) UnmarshalJSON(enc []byte) error
- type PrivKeyS
- type PrivKeySecp256k1
- func GenPrivKeySecp256k1() PrivKeySecp256k1
- func GenPrivKeySecp256k1FromSecret(secret []byte) PrivKeySecp256k1
- func (privKey PrivKeySecp256k1) Bytes() []byte
- func (privKey PrivKeySecp256k1) Equals(other PrivKey) bool
- func (p PrivKeySecp256k1) MarshalJSON() ([]byte, error)
- func (privKey PrivKeySecp256k1) PubKey() PubKey
- func (privKey PrivKeySecp256k1) Sign(msg []byte) Signature
- func (privKey PrivKeySecp256k1) String() string
- func (p *PrivKeySecp256k1) UnmarshalJSON(enc []byte) error
- type PubKey
- type PubKeyEd25519
- func (pubKey PubKeyEd25519) Address() []byte
- func (pubKey PubKeyEd25519) Bytes() []byte
- func (pubKey PubKeyEd25519) Equals(other PubKey) bool
- func (pubKey PubKeyEd25519) KeyString() string
- func (p PubKeyEd25519) MarshalJSON() ([]byte, error)
- func (pubKey PubKeyEd25519) String() string
- func (pubKey PubKeyEd25519) ToCurve25519() *[32]byte
- func (p *PubKeyEd25519) UnmarshalJSON(enc []byte) error
- func (pubKey PubKeyEd25519) VerifyBytes(msg []byte, sig_ Signature) bool
- type PubKeyS
- type PubKeySecp256k1
- func (pubKey PubKeySecp256k1) Address() []byte
- func (pubKey PubKeySecp256k1) Bytes() []byte
- func (pubKey PubKeySecp256k1) Equals(other PubKey) bool
- func (pubKey PubKeySecp256k1) KeyString() string
- func (p PubKeySecp256k1) MarshalJSON() ([]byte, error)
- func (pubKey PubKeySecp256k1) String() string
- func (p *PubKeySecp256k1) UnmarshalJSON(enc []byte) error
- func (pubKey PubKeySecp256k1) VerifyBytes(msg []byte, sig_ Signature) bool
- type Signature
- type SignatureEd25519
- func (sig SignatureEd25519) Bytes() []byte
- func (sig SignatureEd25519) Equals(other Signature) bool
- func (sig SignatureEd25519) IsZero() bool
- func (p SignatureEd25519) MarshalJSON() ([]byte, error)
- func (sig SignatureEd25519) String() string
- func (p *SignatureEd25519) UnmarshalJSON(enc []byte) error
- type SignatureS
- type SignatureSecp256k1
- func (sig SignatureSecp256k1) Bytes() []byte
- func (sig SignatureSecp256k1) Equals(other Signature) bool
- func (sig SignatureSecp256k1) IsZero() bool
- func (p SignatureSecp256k1) MarshalJSON() ([]byte, error)
- func (sig SignatureSecp256k1) String() string
- func (p *SignatureSecp256k1) UnmarshalJSON(enc []byte) error
Package files
armor.go hash.go priv_key.go pub_key.go random.go signature.go symmetric.go
Constants
const (
TypeEd25519 = byte(0x01)
TypeSecp256k1 = byte(0x02)
NameEd25519 = "ed25519"
NameSecp256k1 = "secp256k1"
)
Types of implementations
func CRandBytes
func CRandBytes(numBytes int) []byte
This uses the OS and the Seed(s).
func CRandHex
func CRandHex(numDigits int) string
RandHex(24) gives 96 bits of randomness, strong enough for most purposes.
func CReader
func CReader() io.Reader
Returns a crand.Reader mixed with user-supplied entropy
func DecodeArmor
func DecodeArmor(armorStr string) (blockType string, headers map[string]string, data []byte, err error)
func DecryptSymmetric
func DecryptSymmetric(ciphertext []byte, secret []byte) (plaintext []byte, err error)
secret must be 32 bytes long. Use something like Sha256(Bcrypt(passphrase)) The ciphertext is (secretbox.Overhead + 24) bytes longer than the plaintext.
func EncodeArmor
func EncodeArmor(blockType string, headers map[string]string, data []byte) string
func EncryptSymmetric
func EncryptSymmetric(plaintext []byte, secret []byte) (ciphertext []byte)
secret must be 32 bytes long. Use something like Sha256(Bcrypt(passphrase)) The ciphertext is (secretbox.Overhead + 24) bytes longer than the plaintext. NOTE: call crypto.MixEntropy() first.
func MixEntropy
func MixEntropy(seedBytes []byte)
Mix additional bytes of randomness, e.g. from hardware, user-input, etc. It is OK to call it multiple times. It does not diminish security.
func Ripemd160
func Ripemd160(bytes []byte) []byte
func Sha256
func Sha256(bytes []byte) []byte
type PrivKey
type PrivKey interface {
Bytes() []byte
Sign(msg []byte) Signature
PubKey() PubKey
Equals(PrivKey) bool
}
PrivKey is part of PrivAccount and state.PrivValidator.
func PrivKeyFromBytes
func PrivKeyFromBytes(privKeyBytes []byte) (privKey PrivKey, err error)
type PrivKeyEd25519
type PrivKeyEd25519 [64]byte
Implements PrivKey
func GenPrivKeyEd25519
func GenPrivKeyEd25519() PrivKeyEd25519
func GenPrivKeyEd25519FromSecret
func GenPrivKeyEd25519FromSecret(secret []byte) PrivKeyEd25519
NOTE: secret should be the output of a KDF like bcrypt, if it's derived from user input.
func (PrivKeyEd25519) Bytes
func (privKey PrivKeyEd25519) Bytes() []byte
func (PrivKeyEd25519) Equals
func (privKey PrivKeyEd25519) Equals(other PrivKey) bool
func (PrivKeyEd25519) Generate
func (privKey PrivKeyEd25519) Generate(index int) PrivKeyEd25519
Deterministically generates new priv-key bytes from key.
func (PrivKeyEd25519) MarshalJSON
func (p PrivKeyEd25519) MarshalJSON() ([]byte, error)
func (PrivKeyEd25519) PubKey
func (privKey PrivKeyEd25519) PubKey() PubKey
func (PrivKeyEd25519) Sign
func (privKey PrivKeyEd25519) Sign(msg []byte) Signature
func (PrivKeyEd25519) String
func (privKey PrivKeyEd25519) String() string
func (PrivKeyEd25519) ToCurve25519
func (privKey PrivKeyEd25519) ToCurve25519() *[32]byte
func (*PrivKeyEd25519) UnmarshalJSON
func (p *PrivKeyEd25519) UnmarshalJSON(enc []byte) error
type PrivKeyS
type PrivKeyS struct {
PrivKey
}
PrivKeyS add json serialization to PrivKey
func (PrivKeyS) Empty
func (p PrivKeyS) Empty() bool
func (PrivKeyS) MarshalJSON
func (p PrivKeyS) MarshalJSON() ([]byte, error)
func (*PrivKeyS) UnmarshalJSON
func (p *PrivKeyS) UnmarshalJSON(data []byte) (err error)
type PrivKeySecp256k1
type PrivKeySecp256k1 [32]byte
Implements PrivKey
func GenPrivKeySecp256k1
func GenPrivKeySecp256k1() PrivKeySecp256k1
func GenPrivKeySecp256k1FromSecret
func GenPrivKeySecp256k1FromSecret(secret []byte) PrivKeySecp256k1
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
func (PrivKeySecp256k1) Equals
func (privKey PrivKeySecp256k1) Equals(other PrivKey) bool
func (PrivKeySecp256k1) MarshalJSON
func (p PrivKeySecp256k1) MarshalJSON() ([]byte, error)
func (PrivKeySecp256k1) PubKey
func (privKey PrivKeySecp256k1) PubKey() PubKey
func (PrivKeySecp256k1) Sign
func (privKey PrivKeySecp256k1) Sign(msg []byte) Signature
func (PrivKeySecp256k1) String
func (privKey PrivKeySecp256k1) String() string
func (*PrivKeySecp256k1) UnmarshalJSON
func (p *PrivKeySecp256k1) UnmarshalJSON(enc []byte) error
type PubKey
type PubKey interface {
Address() []byte
Bytes() []byte
KeyString() string
VerifyBytes(msg []byte, sig Signature) bool
Equals(PubKey) bool
}
PubKey is part of Account and Validator.
func PubKeyFromBytes
func PubKeyFromBytes(pubKeyBytes []byte) (pubKey PubKey, err error)
type PubKeyEd25519
type PubKeyEd25519 [32]byte
Implements PubKey
func (PubKeyEd25519) Address
func (pubKey PubKeyEd25519) Address() []byte
func (PubKeyEd25519) Bytes
func (pubKey PubKeyEd25519) Bytes() []byte
func (PubKeyEd25519) Equals
func (pubKey PubKeyEd25519) Equals(other PubKey) bool
func (PubKeyEd25519) KeyString
func (pubKey PubKeyEd25519) KeyString() string
Must return the full bytes in hex. Used for map keying, etc.
func (PubKeyEd25519) MarshalJSON
func (p PubKeyEd25519) MarshalJSON() ([]byte, error)
func (PubKeyEd25519) String
func (pubKey PubKeyEd25519) String() string
func (PubKeyEd25519) ToCurve25519
func (pubKey PubKeyEd25519) ToCurve25519() *[32]byte
For use with golang/crypto/nacl/box If error, returns nil.
func (*PubKeyEd25519) UnmarshalJSON
func (p *PubKeyEd25519) UnmarshalJSON(enc []byte) error
func (PubKeyEd25519) VerifyBytes
func (pubKey PubKeyEd25519) VerifyBytes(msg []byte, sig_ Signature) bool
type PubKeyS
type PubKeyS struct {
PubKey
}
PubKeyS add json serialization to PubKey
func (PubKeyS) Empty
func (p PubKeyS) Empty() bool
func (PubKeyS) MarshalJSON
func (p PubKeyS) MarshalJSON() ([]byte, error)
func (*PubKeyS) UnmarshalJSON
func (p *PubKeyS) UnmarshalJSON(data []byte) (err error)
type PubKeySecp256k1
type PubKeySecp256k1 [33]byte
Implements PubKey. Compressed pubkey (just the x-cord), prefixed with 0x02 or 0x03, depending on the y-cord.
func (PubKeySecp256k1) Address
func (pubKey PubKeySecp256k1) Address() []byte
Implements Bitcoin style addresses: RIPEMD160(SHA256(pubkey))
func (PubKeySecp256k1) Bytes
func (pubKey PubKeySecp256k1) Bytes() []byte
func (PubKeySecp256k1) Equals
func (pubKey PubKeySecp256k1) Equals(other PubKey) bool
func (PubKeySecp256k1) KeyString
func (pubKey PubKeySecp256k1) KeyString() string
Must return the full bytes in hex. Used for map keying, etc.
func (PubKeySecp256k1) MarshalJSON
func (p PubKeySecp256k1) MarshalJSON() ([]byte, error)
func (PubKeySecp256k1) String
func (pubKey PubKeySecp256k1) String() string
func (*PubKeySecp256k1) UnmarshalJSON
func (p *PubKeySecp256k1) UnmarshalJSON(enc []byte) error
func (PubKeySecp256k1) VerifyBytes
func (pubKey PubKeySecp256k1) VerifyBytes(msg []byte, sig_ Signature) bool
type Signature
type Signature interface {
Bytes() []byte
IsZero() bool
String() string
Equals(Signature) bool
}
Signature is a part of Txs and consensus Votes.
func SignatureFromBytes
func SignatureFromBytes(sigBytes []byte) (sig Signature, err error)
type SignatureEd25519
type SignatureEd25519 [64]byte
Implements Signature
func (SignatureEd25519) Bytes
func (sig SignatureEd25519) Bytes() []byte
func (SignatureEd25519) Equals
func (sig SignatureEd25519) Equals(other Signature) bool
func (SignatureEd25519) IsZero
func (sig SignatureEd25519) IsZero() bool
func (SignatureEd25519) MarshalJSON
func (p SignatureEd25519) MarshalJSON() ([]byte, error)
func (SignatureEd25519) String
func (sig SignatureEd25519) String() string
func (*SignatureEd25519) UnmarshalJSON
func (p *SignatureEd25519) UnmarshalJSON(enc []byte) error
type SignatureS
type SignatureS struct {
Signature
}
SignatureS add json serialization to Signature
func (SignatureS) Empty
func (p SignatureS) Empty() bool
func (SignatureS) MarshalJSON
func (p SignatureS) MarshalJSON() ([]byte, error)
func (*SignatureS) UnmarshalJSON
func (p *SignatureS) UnmarshalJSON(data []byte) (err error)
type SignatureSecp256k1
type SignatureSecp256k1 []byte
Implements Signature
func (SignatureSecp256k1) Bytes
func (sig SignatureSecp256k1) Bytes() []byte
func (SignatureSecp256k1) Equals
func (sig SignatureSecp256k1) Equals(other Signature) bool
func (SignatureSecp256k1) IsZero
func (sig SignatureSecp256k1) IsZero() bool
func (SignatureSecp256k1) MarshalJSON
func (p SignatureSecp256k1) MarshalJSON() ([]byte, error)
func (SignatureSecp256k1) String
func (sig SignatureSecp256k1) String() string
func (*SignatureSecp256k1) UnmarshalJSON
func (p *SignatureSecp256k1) UnmarshalJSON(enc []byte) error
Generated by godoc2md