- package cryptoAmino
-
- import (
- amino "github.com/tendermint/go-amino"
- "github.com/tendermint/tendermint/crypto"
- "github.com/tendermint/tendermint/crypto/ed25519"
- "github.com/tendermint/tendermint/crypto/secp256k1"
- )
-
- var cdc = amino.NewCodec()
-
- func init() {
- // NOTE: It's important that there be no conflicts here,
- // as that would change the canonical representations,
- // and therefore change the address.
- // TODO: Remove above note when
- // https://github.com/tendermint/go-amino/issues/9
- // is resolved
- RegisterAmino(cdc)
- }
-
- // RegisterAmino registers all crypto related types in the given (amino) codec.
- func RegisterAmino(cdc *amino.Codec) {
- // These are all written here instead of
- cdc.RegisterInterface((*crypto.PubKey)(nil), nil)
- cdc.RegisterConcrete(ed25519.PubKeyEd25519{},
- "tendermint/PubKeyEd25519", nil)
- cdc.RegisterConcrete(secp256k1.PubKeySecp256k1{},
- "tendermint/PubKeySecp256k1", nil)
-
- cdc.RegisterInterface((*crypto.PrivKey)(nil), nil)
- cdc.RegisterConcrete(ed25519.PrivKeyEd25519{},
- "tendermint/PrivKeyEd25519", nil)
- cdc.RegisterConcrete(secp256k1.PrivKeySecp256k1{},
- "tendermint/PrivKeySecp256k1", nil)
-
- cdc.RegisterInterface((*crypto.Signature)(nil), nil)
- cdc.RegisterConcrete(ed25519.SignatureEd25519{},
- "tendermint/SignatureEd25519", nil)
- cdc.RegisterConcrete(secp256k1.SignatureSecp256k1{},
- "tendermint/SignatureSecp256k1", nil)
- }
-
- func PrivKeyFromBytes(privKeyBytes []byte) (privKey crypto.PrivKey, err error) {
- err = cdc.UnmarshalBinaryBare(privKeyBytes, &privKey)
- return
- }
-
- func PubKeyFromBytes(pubKeyBytes []byte) (pubKey crypto.PubKey, err error) {
- err = cdc.UnmarshalBinaryBare(pubKeyBytes, &pubKey)
- return
- }
-
- func SignatureFromBytes(pubKeyBytes []byte) (pubKey crypto.Signature, err error) {
- err = cdc.UnmarshalBinaryBare(pubKeyBytes, &pubKey)
- return
- }
|