mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-25 06:42:16 +00:00
Fixes #35 Updates https://github.com/tendermint/coding/issues/27 Started a doc.go file to provide an overview/high level dive into the functionality of this repo. Also added an example_test.go file in which we can put end-to-end code examples/actual usage patterns that can be copied and pasted and will always have to compile when tests are run to ensure that we don't regress.
49 lines
1.0 KiB
Go
49 lines
1.0 KiB
Go
/*
|
|
go-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.
|
|
|
|
Keys:
|
|
|
|
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
|
|
|
|
From the above method we can:
|
|
a) Retrieve the public key if needed
|
|
|
|
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)
|
|
|
|
|
|
We also provide hashing wrappers around algorithms:
|
|
|
|
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)
|
|
*/
|
|
package crypto
|
|
|
|
// TODO: Add more docs in here
|