import "github.com/tendermint/tendermint/crypto"
crypto.go doc.go hash.go random.go version.go
const ( // AddressSize is the size of a pubkey address. AddressSize = tmhash.TruncatedSize )
const Version = "0.9.0-dev"
This only uses the OS's randomness
CRandHex returns a hex encoded string that's floor(numDigits/2) * 2 long.
Note: CRandHex(24) gives 96 bits of randomness that are usually strong enough for most purposes.
Returns a crand.Reader.
Code:
sum := crypto.Sha256([]byte("This is Tendermint")) fmt.Printf("%x\n", sum)
Output:
f91afb642f3d1c87c17eb01aae5cb65c242dfdbe7cf1066cc260f4ce5d33b94e
An address is a []byte, but hex-encoded even in JSON. []byte leaves us the option to change the address length. Use an alias so Unmarshal methods (with ptr receivers) are available too.
type PrivKey interface { Bytes() []byte Sign(msg []byte) ([]byte, error) PubKey() PubKey Equals(PrivKey) bool Type() string }
type PubKey interface { Address() Address Bytes() []byte VerifySignature(msg []byte, sig []byte) bool Equals(PubKey) bool Type() string }
type Symmetric interface { Keygen() []byte Encrypt(plaintext []byte, secret []byte) (ciphertext []byte) Decrypt(ciphertext []byte, secret []byte) (plaintext []byte, err error) }
Path | Synopsis |
---|---|
armor | |
ed25519 | |
encoding | |
internal/benchmarking | |
merkle | Package merkle computes a deterministic minimal height Merkle tree hash. |
secp256k1 | |
sr25519 | |
tmhash | |
xchacha20poly1305 | Package xchacha20poly1305 creates an AEAD using hchacha, chacha, and poly1305 This allows for randomized nonces to be used in conjunction with chacha. |
xsalsa20symmetric |
Package crypto imports 6 packages (graph) and is imported by 532 packages. Updated 2020-11-27. Refresh now. Tools for package owners.