tendermint/crypto
Ethan Buchman 2aef80bcff
Merge pull request #2034 from tendermint/dev/fix_pkg_names
crypto: Fix package imports from the refactor
2018-07-23 20:34:34 -04:00
..
armor crypto: Fix package imports from the refactor 2018-07-23 16:14:21 -07:00
ed25519 crypto/ed25519: Remove privkey.Generate method (#2022) 2018-07-23 15:35:13 +04:00
encoding/amino Merge pull request #2034 from tendermint/dev/fix_pkg_names 2018-07-23 20:34:34 -04:00
hkdfchacha20poly1305 crypto: Refactor to move files out of the top level directory 2018-07-18 08:38:44 -07:00
merkle fix import paths 2018-07-01 22:36:49 -04:00
secp256k1 crypto/secp256k1: Add godocs, remove indirection in privkeys (#2017) 2018-07-21 08:52:04 +04:00
tmhash remove go-crypto from go-crypto: 2018-06-20 21:05:38 -07:00
xsalsa20symmetric crypto: Fix package imports from the refactor 2018-07-23 16:14:21 -07:00
CHANGELOG.md mv go-crypto files to crypto dir 2018-06-20 15:30:44 -07:00
README.md crypto: Refactor to move files out of the top level directory 2018-07-18 08:38:44 -07:00
crypto.go crypto: Refactor to move files out of the top level directory 2018-07-18 08:38:44 -07:00
doc.go crypto: Remove Ed25519 and Secp256k1 suffix on GenPrivKey 2018-07-20 10:44:21 -07:00
example_test.go fix crypto tests 2018-06-20 17:34:28 -07:00
hash.go crypto: Refactor to move files out of the top level directory 2018-07-18 08:38:44 -07:00
random.go fix import paths 2018-07-01 22:36:49 -04:00
version.go mv go-crypto files to crypto dir 2018-06-20 15:30:44 -07:00

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 spec.

JSON Encoding

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

Example Amino:JSON encodings:

ed25519.PrivKeyEd25519     - {"type":"954568A3288910","value":"EVkqJO/jIXp3rkASXfh9YnyToYXRXhBr6g9cQVxPFnQBP/5povV4HTjvsy530kybxKHwEi85iU8YL0qQhSYVoQ=="}
crypto.SignatureEd25519   - {"type":"6BF5903DA1DB28","value":"77sQNZOrf7ltExpf7AV1WaYPCHbyRLgjBsoWVzcduuLk+jIGmYk+s5R6Emm29p12HeiNAuhUJgdFGmwkpeGJCA=="}
ed25519.PubKeyEd25519      - {"type":"AC26791624DE60","value":"AT/+aaL1eB0477Mud9JMm8Sh8BIvOYlPGC9KkIUmFaE="}
crypto.PrivKeySecp256k1   - {"type":"019E82E1B0F798","value":"zx4Pnh67N+g2V+5vZbQzEyRerX9c4ccNZOVzM9RvJ0Y="}
crypto.SignatureSecp256k1 - {"type":"6D1EA416E1FEE8","value":"MEUCIQCIg5TqS1l7I+MKTrSPIuUN2+4m5tA29dcauqn3NhEJ2wIgICaZ+lgRc5aOTVahU/XoLopXKn8BZcl0bnuYWLvohR8="}
crypto.PubKeySecp256k1    - {"type":"F8CCEAEB5AE980","value":"A8lPKJXcNl5VHt1FK8a244K9EJuS4WX1hFBnwisi0IJx"}