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:
parent
50e7c07817
commit
f6a2509764
|
@ -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
|
|
@ -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
|
||||
}
|
Loading…
Reference in New Issue