mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-21 08:51:32 +00:00
doc.go file started
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.
This commit is contained in:
48
doc.go
Normal file
48
doc.go
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
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
|
35
example_test.go
Normal file
35
example_test.go
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
// Copyright 2017 Tendermint. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package crypto_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/tendermint/go-crypto"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Example_Sha256() {
|
||||||
|
sum := crypto.Sha256([]byte("This is Tendermint"))
|
||||||
|
fmt.Printf("%x\n", sum)
|
||||||
|
// Output:
|
||||||
|
// f91afb642f3d1c87c17eb01aae5cb65c242dfdbe7cf1066cc260f4ce5d33b94e
|
||||||
|
}
|
||||||
|
|
||||||
|
func Example_Ripemd160() {
|
||||||
|
sum := crypto.Ripemd160([]byte("This is Tendermint"))
|
||||||
|
fmt.Printf("%x\n", sum)
|
||||||
|
// Output:
|
||||||
|
// 051e22663e8f0fd2f2302f1210f954adff009005
|
||||||
|
}
|
Reference in New Issue
Block a user