You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Erik Grinaker db8f1b3df3
migrate all JSON to new JSON encoder (#4975)
5 years ago
..
armor crypto: revert to mainline Go crypto lib (#3027) 6 years ago
ed25519 rpc: replace Amino with new JSON encoder (#4968) 5 years ago
encoding migrate all JSON to new JSON encoder (#4975) 5 years ago
internal/benchmarking gocritic (1/2) (#3836) 5 years ago
merkle proto: change to use gogofaster (#4957) 5 years ago
multisig crypto: remove key suffixes (#4941) 5 years ago
secp256k1 migrate all JSON to new JSON encoder (#4975) 5 years ago
sr25519 migrate all JSON to new JSON encoder (#4975) 5 years ago
tmhash format: add format cmd & goimport repo (#4586) 5 years ago
xchacha20poly1305 lint: enable nolintlinter, disable on tests 5 years ago
xsalsa20symmetric linters: enable stylecheck (#4153) 5 years ago
CHANGELOG.md mv go-crypto files to crypto dir 7 years ago
README.md crypto: remove key suffixes (#4941) 5 years ago
crypto.go libs/common: Refactor libs/common 4 (#4237) 5 years ago
doc.go crypto: delete unused code (#3426) 6 years ago
example_test.go crypto: delete unused code (#3426) 6 years ago
hash.go crypto: delete unused code (#3426) 6 years ago
random.go remove MixEntropy (#3278) 6 years ago
random_test.go crypto/random: Use chacha20, add forward secrecy (#2562) 6 years ago
version.go mv go-crypto files to crypto dir 7 years ago

README.md

crypto

crypto is the cryptographic package adapted for Tendermint's uses

Importing it

To get the interfaces, import "github.com/tendermint/tendermint/crypto"

For any specific algorithm, use its specific module e.g. import "github.com/tendermint/tendermint/crypto/ed25519"

If you want to decode bytes into one of the types, but don't care about the specific algorithm, use import "github.com/tendermint/tendermint/crypto/amino"

Binary encoding

For Binary encoding, please refer to the Tendermint encoding specification.

JSON Encoding

crypto .Bytes() uses Amino:binary encoding, but Amino:JSON is also supported.

Example Amino:JSON encodings:

ed25519.PrivKey     - {"type":"tendermint/PrivKeyEd25519","value":"EVkqJO/jIXp3rkASXfh9YnyToYXRXhBr6g9cQVxPFnQBP/5povV4HTjvsy530kybxKHwEi85iU8YL0qQhSYVoQ=="}
ed25519.PubKey      - {"type":"tendermint/PubKeyEd25519","value":"AT/+aaL1eB0477Mud9JMm8Sh8BIvOYlPGC9KkIUmFaE="}
sr25519.PrivKeySr25519   - {"type":"tendermint/PrivKeySr25519","value":"xtYVH8UCIqfrY8FIFc0QEpAEBShSG4NT0zlEOVSZ2w4="}
sr25519.PubKeySr25519    - {"type":"tendermint/PubKeySr25519","value":"8sKBLKQ/OoXMcAJVxBqz1U7TyxRFQ5cmliuHy4MrF0s="}
crypto.PrivKeySecp256k1   - {"type":"tendermint/PrivKeySecp256k1","value":"zx4Pnh67N+g2V+5vZbQzEyRerX9c4ccNZOVzM9RvJ0Y="}
crypto.PubKeySecp256k1    - {"type":"tendermint/PubKeySecp256k1","value":"A8lPKJXcNl5VHt1FK8a244K9EJuS4WX1hFBnwisi0IJx"}