Browse Source

Merge pull request #76 from tendermint/update-go-amino

wire -> amino
pull/1782/head
Jae Kwon 7 years ago
committed by GitHub
parent
commit
7dee27c851
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 48 additions and 171 deletions
  1. +3
    -0
      .github/CODEOWNERS
  2. +3
    -3
      Gopkg.lock
  3. +1
    -1
      Gopkg.toml
  4. +3
    -3
      Makefile
  5. +1
    -1
      README.md
  6. +4
    -4
      _nano/keys.go
  7. +11
    -11
      amino.go
  8. +8
    -8
      encode_test.go
  9. +0
    -93
      glide.lock
  10. +0
    -34
      glide.yaml
  11. +4
    -4
      keys/wire.go
  12. +10
    -9
      signature_test.go

+ 3
- 0
.github/CODEOWNERS View File

@ -0,0 +1,3 @@
# CODEOWNERS: https://help.github.com/articles/about-codeowners/
* @ebuchman @jaekwon

+ 3
- 3
Gopkg.lock View File

@ -125,9 +125,9 @@
[[projects]]
branch = "develop"
name = "github.com/tendermint/go-wire"
name = "github.com/tendermint/go-amino"
packages = ["."]
revision = "dec83f641903b22f039da3974607859715d0377e"
revision = "3b9e2b978447707c255922bc3f87a53d55c400c9"
[[projects]]
branch = "develop"
@ -163,6 +163,6 @@
[solve-meta]
analyzer-name = "dep"
analyzer-version = 1
inputs-digest = "e0628df240b8ceeb91403f5218f5561d8580f15f3d5b0ea0da40710d1cba3707"
inputs-digest = "375b661ad202b62c6847981416c03ce0518c33ac293f5f0863b69af04d2af91f"
solver-name = "gps-cdcl"
solver-version = 1

+ 1
- 1
Gopkg.toml View File

@ -47,7 +47,7 @@
[[constraint]]
branch = "develop"
name = "github.com/tendermint/go-wire"
name = "github.com/tendermint/go-amino"
[[constraint]]
branch = "develop"


+ 3
- 3
Makefile View File

@ -1,11 +1,11 @@
GOTOOLS = \
github.com/golang/dep/cmd/dep \
github.com/jteeuwen/go-bindata/go-bindata
github.com/jteeuwen/go-bindata/go-bindata
# gopkg.in/alecthomas/gometalinter.v2 \
#
GOTOOLS_CHECK = glide go-bindata #gometalinter.v2
GOTOOLS_CHECK = dep go-bindata #gometalinter.v2
all: check get_vendor_deps build test install
all: check get_vendor_deps build test install
check: check_tools


+ 1
- 1
README.md View File

@ -3,4 +3,4 @@
go-crypto is the cryptographic package adapted for Tendermint's uses
## Importing it
`import "github.com/tendermint/go-crypto"`
`import "github.com/tendermint/go-crypto"`

+ 4
- 4
_nano/keys.go View File

@ -9,7 +9,7 @@ import (
ledger "github.com/ethanfrey/ledger"
crypto "github.com/tendermint/go-crypto"
wire "github.com/tendermint/go-wire"
amino "github.com/tendermint/go-amino"
)
//nolint
@ -58,7 +58,7 @@ func signLedger(device *ledger.Ledger, msg []byte) (pub crypto.PubKey, sig crypt
// PrivKeyLedgerEd25519 implements PrivKey, calling the ledger nano
// we cache the PubKey from the first call to use it later
type PrivKeyLedgerEd25519 struct {
// PubKey should be private, but we want to encode it via go-wire
// PubKey should be private, but we want to encode it via go-amino
// so we can view the address later, even without having the ledger
// attached
CachedPubKey crypto.PubKey
@ -97,7 +97,7 @@ func (pk *PrivKeyLedgerEd25519) AssertIsPrivKeyInner() {}
// Bytes fulfils PrivKey Interface - but it stores the cached pubkey so we can verify
// the same key when we reconnect to a ledger
func (pk *PrivKeyLedgerEd25519) Bytes() []byte {
return wire.BinaryBytes(pk.Wrap())
return amino.BinaryBytes(pk.Wrap())
}
// Sign calls the ledger and stores the PubKey for future use
@ -250,7 +250,7 @@ func PubKeyLedgerEd25519FromBytes(key [32]byte) crypto.PubKey {
// Bytes fulfils pk Interface - no data, just type info
func (pk PubKeyLedgerEd25519) Bytes() []byte {
return wire.BinaryBytes(pk.Wrap())
return amino.BinaryBytes(pk.Wrap())
}
// VerifyBytes uses the normal Ed25519 algorithm but a sha512 hash beforehand


wire.go → amino.go View File


+ 8
- 8
encode_test.go View File

@ -1,7 +1,7 @@
package crypto
/*
XXX Needs to be refactored to not use go-wire/data
XXX Needs to be refactored to not use go-amino/data
import (
"fmt"
@ -10,15 +10,15 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
wire "github.com/tendermint/go-wire"
data "github.com/tendermint/go-wire/data"
amino "github.com/tendermint/go-amino"
data "github.com/tendermint/go-amino/data"
)
type byter interface {
Bytes() []byte
}
// go to wire encoding and back
// go to amino encoding and back
func checkWire(t *testing.T, in byter, reader interface{}, typ byte, size int) {
// test to and from binary
bin, err := data.ToWire(in)
@ -55,15 +55,15 @@ func checkJSON(t *testing.T, in interface{}, reader interface{}, typ string) {
assert.True(t, strings.Contains(string(js), parts[1]))
}
// make sure go-wire json can still figure this out...
// make sure go-amino json can still figure this out...
func checkWireJSON(t *testing.T, in interface{}, reader interface{}, typ byte) {
// test to and from binary
var err error
js := wire.JSONBytes(in)
js := amino.JSONBytes(in)
btyp := fmt.Sprintf("[%d,", typ)
assert.True(t, strings.HasPrefix(string(js), btyp), string(js), btyp)
wire.ReadJSON(reader, js, &err)
amino.ReadJSON(reader, js, &err)
require.Nil(t, err, "%+v", err)
}
@ -144,7 +144,7 @@ type SigMessage struct {
}
func (s SigMessage) Bytes() []byte {
return wire.BinaryBytes(s)
return amino.BinaryBytes(s)
}
func TestEmbededWireEncodings(t *testing.T) {


+ 0
- 93
glide.lock View File

@ -1,93 +0,0 @@
hash: 95b2c2a089ca7242bc52c3bfe5a0286ae68201197f7f5855dd6e8f2ee3974068
updated: 2018-03-02T11:41:11.205350024-05:00
imports:
- name: github.com/btcsuite/btcd
version: 2be2f12b358dc57d70b8f501b00be450192efbc3
subpackages:
- btcec
- name: github.com/btcsuite/btcutil
version: 501929d3d046174c3d39f0ea54ece471aa17238c
subpackages:
- base58
- name: github.com/davecgh/go-spew
version: 346938d642f2ec3594ed81d874461961cd0faa76
subpackages:
- spew
- name: github.com/go-kit/kit
version: 4dc7be5d2d12881735283bcab7352178e190fc71
subpackages:
- log
- log/level
- log/term
- name: github.com/go-logfmt/logfmt
version: 390ab7935ee28ec6b286364bba9b4dd6410cb3d5
- name: github.com/go-stack/stack
version: 259ab82a6cad3992b4e21ff5cac294ccb06474bc
- name: github.com/gogo/protobuf
version: 1adfc126b41513cc696b209667c8656ea7aac67c
subpackages:
- gogoproto
- proto
- protoc-gen-gogo/descriptor
- name: github.com/golang/snappy
version: 553a641470496b2327abcac10b36396bd98e45c9
- name: github.com/howeyc/crc16
version: 2b2a61e366a66d3efb279e46176e7291001e0354
- name: github.com/jmhodges/levigo
version: c42d9e0ca023e2198120196f842701bb4c55d7b9
- name: github.com/kr/logfmt
version: b84e30acd515aadc4b783ad4ff83aff3299bdfe0
- name: github.com/pkg/errors
version: 645ef00459ed84a119197bfb8d8205042c6df63d
- name: github.com/syndtr/goleveldb
version: c7a14d4b00e222eab6111b4cd1af829c13f53ec2
subpackages:
- leveldb
- leveldb/cache
- leveldb/comparer
- leveldb/errors
- leveldb/filter
- leveldb/iterator
- leveldb/journal
- leveldb/memdb
- leveldb/opt
- leveldb/storage
- leveldb/table
- leveldb/util
- name: github.com/tendermint/ed25519
version: d8387025d2b9d158cf4efb07e7ebf814bcce2057
subpackages:
- edwards25519
- extra25519
- name: github.com/tendermint/go-wire
version: dec83f641903b22f039da3974607859715d0377e
- name: github.com/tendermint/tmlibs
version: 26f2ab65f82cfc6873c312e8030104c47c05f10e
subpackages:
- common
- db
- log
- name: golang.org/x/crypto
version: 91a49db82a88618983a78a06c1cbd4e00ab749ab
subpackages:
- bcrypt
- blowfish
- nacl/secretbox
- openpgp/armor
- openpgp/errors
- pbkdf2
- poly1305
- ripemd160
- salsa20/salsa
testImports:
- name: github.com/pmezard/go-difflib
version: 792786c7400a136282c1664665ae0a8db921c6c2
subpackages:
- difflib
- name: github.com/stretchr/testify
version: 12b6f73e6084dad08a7c6e575284b177ecafbc71
subpackages:
- assert
- require
- name: github.com/tyler-smith/go-bip39
version: 8e7a99b3e716f36d3b080a9a70f9eb45abe4edcc

+ 0
- 34
glide.yaml View File

@ -1,34 +0,0 @@
package: github.com/tendermint/go-crypto
import:
- package: github.com/btcsuite/btcd
subpackages:
- btcec
- package: github.com/btcsuite/btcutil
subpackages:
- base58
- package: github.com/howeyc/crc16
- package: github.com/pkg/errors
version: ^0.8.0
- package: github.com/tendermint/ed25519
subpackages:
- extra25519
- package: github.com/tendermint/go-wire
version: develop
- package: github.com/tendermint/tmlibs
version: develop
subpackages:
- common
- db
- package: golang.org/x/crypto
subpackages:
- blowfish
- nacl/secretbox
- openpgp/armor
- ripemd160
testImport:
- package: github.com/stretchr/testify
version: ^1.2.1
subpackages:
- assert
- require
- package: github.com/tyler-smith/go-bip39

+ 4
- 4
keys/wire.go View File

@ -1,12 +1,12 @@
package keys
import (
"github.com/tendermint/go-crypto"
"github.com/tendermint/go-wire"
amino "github.com/tendermint/go-amino"
crypto "github.com/tendermint/go-crypto"
)
var cdc = wire.NewCodec()
var cdc = amino.NewCodec()
func init() {
crypto.RegisterWire(cdc)
crypto.RegisterAmino(cdc)
}

+ 10
- 9
signature_test.go View File

@ -6,7 +6,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/tendermint/ed25519"
"github.com/tendermint/go-wire"
amino "github.com/tendermint/go-amino"
)
func TestSignAndValidateEd25519(t *testing.T) {
@ -49,17 +49,17 @@ func TestSignatureEncodings(t *testing.T) {
cases := []struct {
privKey PrivKey
sigSize int
sigPrefix wire.PrefixBytes
sigPrefix amino.PrefixBytes
}{
{
privKey: GenPrivKeyEd25519(),
sigSize: ed25519.SignatureSize,
sigPrefix: [4]byte{0xe4, 0x51, 0x7b, 0xa3},
sigPrefix: [4]byte{0xc8, 0x5d, 0xf4, 0xba},
},
{
privKey: GenPrivKeySecp256k1(),
sigSize: 0, // unknown
sigPrefix: [4]byte{0x37, 0xb9, 0x21, 0x3e},
sigPrefix: [4]byte{0xc6, 0xa0, 0xa, 0x42},
},
}
@ -70,17 +70,18 @@ func TestSignatureEncodings(t *testing.T) {
msg := CRandBytes(128)
sig := tc.privKey.Sign(msg)
// store as wire
bin, err := cdc.MarshalBinary(sig)
// store as amino
bin, err := cdc.MarshalBinaryBare(sig)
require.Nil(t, err, "%+v", err)
if tc.sigSize != 0 {
assert.Equal(t, tc.sigSize+4, len(bin))
// Q: where is 1 byte coming from?
assert.Equal(t, tc.sigSize+amino.PrefixBytesLen+1, len(bin))
}
assert.Equal(t, tc.sigPrefix[:], bin[0:4])
assert.Equal(t, tc.sigPrefix[:], bin[0:amino.PrefixBytesLen])
// and back
sig2 := Signature(nil)
err = cdc.UnmarshalBinary(bin, &sig2)
err = cdc.UnmarshalBinaryBare(bin, &sig2)
require.Nil(t, err, "%+v", err)
assert.EqualValues(t, sig, sig2)
assert.True(t, pubKey.VerifyBytes(msg, sig2))


Loading…
Cancel
Save