tendermint/crypto
Dev Ojha 24b94d7aa4 crypto: Switch hkdfchacha back to xchacha (#2058)
hkdfchachapoly was a construction we came up with. There is no longer any
reason to use it. We should instead just use xchacha for the remaining use
cases we have. (Symmetrically encrypting the keys in the sdk keys package)
2018-07-25 23:12:39 +02:00
..
armor crypto: Fix package imports from the refactor 2018-07-23 16:14:21 -07:00
ed25519 crypto: Add benchmarking code for signature schemes (#2061) 2018-07-25 23:07:47 +02:00
encoding/amino Merge pull request #2034 from tendermint/dev/fix_pkg_names 2018-07-23 20:34:34 -04:00
internal/benchmarking crypto: Add benchmarking code for signature schemes (#2061) 2018-07-25 23:07:47 +02:00
merkle fix import paths 2018-07-01 22:36:49 -04:00
secp256k1 crypto: Add benchmarking code for signature schemes (#2061) 2018-07-25 23:07:47 +02:00
tmhash remove go-crypto from go-crypto: 2018-06-20 21:05:38 -07:00
xchacha20poly1305 crypto: Switch hkdfchacha back to xchacha (#2058) 2018-07-25 23:12:39 +02: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"}