mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-24 22:32:15 +00:00
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
|