|
@ -1,48 +1,45 @@ |
|
|
/* |
|
|
|
|
|
go-crypto is a customized/convenience cryptography package |
|
|
|
|
|
for supporting Tendermint. |
|
|
|
|
|
|
|
|
// crypto is a customized/convenience cryptography package for supporting
|
|
|
|
|
|
// Tendermint.
|
|
|
|
|
|
|
|
|
It wraps select functionality of equivalent functions in the |
|
|
|
|
|
Go standard library, for easy usage with our libraries. |
|
|
|
|
|
|
|
|
// It wraps select functionality of equivalent functions in the
|
|
|
|
|
|
// Go standard library, for easy usage with our libraries.
|
|
|
|
|
|
|
|
|
Keys: |
|
|
|
|
|
|
|
|
// Keys:
|
|
|
|
|
|
|
|
|
All key generation functions return an instance of the PrivKey interface |
|
|
|
|
|
which implements methods |
|
|
|
|
|
|
|
|
// All key generation functions return an instance of the PrivKey interface
|
|
|
|
|
|
// which implements methods
|
|
|
|
|
|
|
|
|
AssertIsPrivKeyInner() |
|
|
|
|
|
Bytes() []byte |
|
|
|
|
|
Sign(msg []byte) Signature |
|
|
|
|
|
PubKey() PubKey |
|
|
|
|
|
Equals(PrivKey) bool |
|
|
|
|
|
Wrap() PrivKey |
|
|
|
|
|
|
|
|
// AssertIsPrivKeyInner()
|
|
|
|
|
|
// Bytes() []byte
|
|
|
|
|
|
// Sign(msg []byte) Signature
|
|
|
|
|
|
// PubKey() PubKey
|
|
|
|
|
|
// Equals(PrivKey) bool
|
|
|
|
|
|
// Wrap() PrivKey
|
|
|
|
|
|
|
|
|
From the above method we can: |
|
|
|
|
|
a) Retrieve the public key if needed |
|
|
|
|
|
|
|
|
// From the above method we can:
|
|
|
|
|
|
// a) Retrieve the public key if needed
|
|
|
|
|
|
|
|
|
pubKey := key.PubKey() |
|
|
|
|
|
|
|
|
// pubKey := key.PubKey()
|
|
|
|
|
|
|
|
|
For example: |
|
|
|
|
|
privKey, err := crypto.GenPrivKeyEd25519() |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
... |
|
|
|
|
|
} |
|
|
|
|
|
pubKey := privKey.PubKey() |
|
|
|
|
|
... |
|
|
|
|
|
// And then you can use the private and public key
|
|
|
|
|
|
doSomething(privKey, pubKey) |
|
|
|
|
|
|
|
|
// For example:
|
|
|
|
|
|
// privKey, err := crypto.GenPrivKeyEd25519()
|
|
|
|
|
|
// if err != nil {
|
|
|
|
|
|
// ...
|
|
|
|
|
|
// }
|
|
|
|
|
|
// pubKey := privKey.PubKey()
|
|
|
|
|
|
// ...
|
|
|
|
|
|
// // And then you can use the private and public key
|
|
|
|
|
|
// doSomething(privKey, pubKey)
|
|
|
|
|
|
|
|
|
|
|
|
// We also provide hashing wrappers around algorithms:
|
|
|
|
|
|
|
|
|
We also provide hashing wrappers around algorithms: |
|
|
|
|
|
|
|
|
// Sha256
|
|
|
|
|
|
// sum := crypto.Sha256([]byte("This is Tendermint"))
|
|
|
|
|
|
// fmt.Printf("%x\n", sum)
|
|
|
|
|
|
|
|
|
Sha256 |
|
|
|
|
|
sum := crypto.Sha256([]byte("This is Tendermint")) |
|
|
|
|
|
fmt.Printf("%x\n", sum) |
|
|
|
|
|
|
|
|
|
|
|
Ripemd160 |
|
|
|
|
|
sum := crypto.Ripemd160([]byte("This is consensus")) |
|
|
|
|
|
fmt.Printf("%x\n", sum) |
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
// Ripemd160
|
|
|
|
|
|
// sum := crypto.Ripemd160([]byte("This is consensus"))
|
|
|
|
|
|
// fmt.Printf("%x\n", sum)
|
|
|
package crypto |
|
|
package crypto |
|
|
|
|
|
|
|
|
// TODO: Add more docs in here
|
|
|
// TODO: Add more docs in here
|