Robert Zaremba
c66f1f7efe
crypto: add secp256r1 ( #8559 )
...
* Optimize secp256k1 hashing
* Add ADR-028 related functions
* Update ed25519
* fix errors/handle
* fix build
* fix build
* Add tests and update function names
* wip
* Use LengthPrefix for composed addresses
* add tests for NewComposed
* add module hash function
* fix append
* rollback ed25519 ADR-28 update
* rollback ed25519 ADR-28 test
* Adding Module tests and convert tests to test suite
* convert store_key_test.go to test suite
* rollback test check comment
* any.pb.go update
* generated proto files
* wip
* renames
* wip2
* add String method to PBBytes
* wip3
* add pubkey tests
* adding cryptotypes.PrivKey methods
* re-enable test
* fix equals test
* fix ecdsa object receiver
* add ProtoMarshaler implementation and tests
* move code to init and add interface registry
* add bytes tests
* merge Unmarshal with UnmarshalAmino
* implement ProtoMarshaler to ecdsaSK
* remove bytes.go
* add private key marshaling tests
* break tests into 2 suites
* add signature tests
* remove TODO
* remove bytes.proto
* adding changelog
* Update CHANGELOG.md
* Update crypto/keys/ecdsa/ecdsa_privkey.go
* Update crypto/keys/ecdsa/ecdsa_pubkey.go
* comments: add dot (.) at the end
* update comments
* update commented code
* rename files
* remove Amino methods
* use 2 spaces in protocgen.sh
* rollback changes in protocgen.sh
* add MessageName
* rework ecdsa proto structure
* move ecdsa to internal package
* add secp256r1 proto
* refactore proto definition for secp256r1
* fix err check
* update comments
* create const for fieldSize+1
* simplify the PubKey.String test
* Apply suggestions from code review
Co-authored-by: Jonathan Gimeno <jgimeno@gmail.com>
* Update doc comments: SDK Interface -> sdk.Interface
* rename init.go to doc.go
* Add PubKey.Type() test
* Revert "Update doc comments: SDK Interface -> sdk.Interface"
This reverts commit 01f2b4f5efcd79a452483bcda152db54a8fbfee2.
* Use cryptotypes.Address instead of tmcrypto
* Revert "Use cryptotypes.Address instead of tmcrypto"
This reverts commit 15b866ae67bdb7ca4872f4089fcab19f9e2e3608.
This issue will be solved in https://github.com/cosmos/cosmos-sdk/issues/8775
* add link to ANSI X9.62
* move init.go -> doc.go
* use proto.MessageName()
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Co-authored-by: Jonathan Gimeno <jgimeno@gmail.com>
2021-03-04 12:29:48 +00:00
Robert Zaremba
adbf5a71e6
adr-028 address generation ( #8415 )
...
* Optimize secp256k1 hashing
* Add ADR-028 related functions
* Update ed25519
* fix errors/handle
* fix build
* fix build
* Add tests and update function names
* wip
* Use LengthPrefix for composed addresses
* add tests for NewComposed
* add module hash function
* fix append
* rollback ed25519 ADR-28 update
* rollback ed25519 ADR-28 test
* Adding Module tests and convert tests to test suite
* convert store_key_test.go to test suite
* rollback test check comment
* Rename assert.Panic and add comment
* add note to ed25519 about SDK support with regards to ADR-28
* Update ed25519 TestAddress
* Adding Deprecated notes for ed25519.PrivKey
* Update crypto/keys/ed25519/ed25519.go
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
* Update types/address/hash_test.go
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
* solve linter issues
* linter: remove gocritic
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
2021-02-15 15:32:51 +00:00
vincent
f57828c091
Fix CryptoCdc inconsistent ( #7987 )
...
* simple fix
* refactor crypto
* just use codec/legacy.Cdc
* revert armor
* add changelog entry
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
2020-12-02 14:50:50 +01:00
Amaury
6f5eaba95b
Add support for TM secp256k1 ( #7838 )
...
* Add secp256k1 support
* Fix test
* Add test in handler_test
* Use table tests
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-11-13 10:15:29 +00:00
Marie Gauthier
90e9370bd8
Replace tmcrypto.PubKey by our own cryptotypes.PubKey ( #7419 )
...
* WIP on removing tm pub/privkey
* Fix part of crypto tests
* Add PrivKeyLedgerSecp256K1 proto type
* Use BasePrivKey for ledger priv key type
* Refacto continued
* First round
* x/staking
* Continue porting
* x/* done
* Make build pass
* More conversion
* Remove IntoTmPubKey
* Fix test
* Remove crypto.PubKey in some other places
* Revert ledger changes
* Fix comment
* Remove useless function
* Add To/FromTmPublicKey
* Add migrate tests
* Fix test
* Fix another test
* Rename tm conversion functions
* Less code
* Rename BasePrivKey to LedgerPrivKey
* Add changelog
* Rename functions
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
2020-11-09 16:01:43 +00:00
Robert Zaremba
6bc8ff2dfe
Use any as validator pubkey ( #7597 )
...
* protobuf pubkey type update
* wip2
* wip3
* solving types.NewValidator issues
* remove bech32 from validator type assignment
* update Validator interface
* Changelog update
* wip4
* update genutil
* fix simapp & x/ibc/testing tests
* update staking
* changelog update
* fix import cycle in tests
* fix amino panic on TestValidatorMarshalUnmarshalJSON
* fix TestValidatorMarshalUnmarshalJSON consensus_pubkey check
* Add UnpackInterfaces to HistoricalInfo
* fix TestHistoricalInfo
* update todos
* fix: Expecting ed25519.PubKey to implement proto.Message
* fix linter issues
* Fix migrate test
* Update CHANGELOG.md
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
* review comments
* cosmetic changes
* add UnpackInterfaces got GenesisRandomized test
* Validator.Equal reuses Validator.MinEqual
* fix test
* use Validator.Equal in tests
* Fix staking simulation TestRandomizedGenState
* Remove TODO
* use HistoricalInfo.Equal
* use proto.Equal
* rename Validator.GetConsPubKey to TmConsPubKey
* prefer require.Equal over reflect.DeepEqual
* SetHistoricalInfo using a pointer
* Fix TestQueryDelegation test
* Fix TestQueryValidators test
* Fix TestSimulateMsgUnjail test
* experiement with LegacyAmino instances
* Register codecs in all simapp tests
* Fix cli_test compilation problems
* fix typo sdk -> std
* fix typo
* fix TestPlanStringer
* Rename to MakeEncodingConfig
* Remove RegisterCodecsTests
* Use gRPC in GetCmdQueryValidators
* Empty status
* fix info log check
* linter fixes
* rename simapparams to simappparams
* Update simapp/test_helpers.go
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
* comments updates
* use valAddr1 instead of sdk.ValAddress(pk1.Address().Bytes())
Co-authored-by: Cory Levinson <cjlevinson@gmail.com>
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
2020-10-23 12:07:52 +00:00
Marie Gauthier
91ca8ad3c1
Migrate BaseAccount PubKey to use Any ( #7268 )
...
* WIP on BaseAccount protobuf pub_key
* WIP on BaseAccount.PubKey
* WIP on BaseAccount pub key
* Update PubKey
* Update Account
* Docs
* WIP on protobuf keys
* Use Type() and Bytes() in sr25519 pub key Equals
* Add tests
* Add few more tests
* Update other pub/priv key types Equals
* Fix PrivKey's Sign method
* Rename variables in tests
* Fix infinite recursive calls
* Use tm ed25519 keys
* Add Sign and VerifySignature tests
* Remove ed25519 and sr25519 references
* proto linting
* Add proto crypto file
* Implement some of the new multisig proto type methods
* Add tests for MultisigThresholdPubKey
* Add tests for pubkey pb/amino conversion functions
* Move crypto types.go and register new proto pubkeys
* Add missing pointer ref
* Address review comments
* panic in MultisigThresholdPubKey VerifySignature
* Fix compile errors
* Remove pk conversion in ante handler
* Use internal crypto.PubKey in multisig
* Add tests for MultisigThresholdPubKey VerifyMultisignature
* Only keep LegacyAminoMultisigThresholdPubKey and move to proto keys to v1
* Remove conversion functions and introduce internal PubKey type
* Override Amino marshaling for proto pubkeys
* Merge master
* Make proto-gen
* Start removal of old PubKeyMultisigThreshold references
* Fix tests
* Fix solomachine
* Fix ante handler tests
* Pull latest go-amino
* Remove ed25519
* Remove old secp256k1 PubKey and PrivKey
* Uncomment test case
* Fix linting issues
* More linting
* Revert tests keys values
* Add Amino overrides to proto keys
* Add pubkey test
* Fix tests
* Use threshold isntead of K
* Standardize Type
* Revert standardize types commit
* Fix build
* Fix lint
* Fix lint
* Add comment
* Register crypto.PubKey
* Add empty key in BuildSimTx
* Simplify proto names
* Unpack interfaces for signing desc
* Fix IBC tests?
* Format proto
* Use secp256k1 in ibc
* Fixed merge issues
* Uncomment tests
* Update x/ibc/testing/solomachine.go
* UnpackInterfaces for solomachine types
* Remove old multisig
* Add amino marshal for multisig
* Fix lint
* Correctly register amino
* One test left!
* Remove old struct
* Fix test
* Fix test
* Unpack into tmcrypto
* Remove old threshold pubkey tests
* Fix register amino
* Fix lint
* Use sdk crypto PubKey in multisig UnpackInterfaces
* Potential fix?
* Register LegacyAminoPubKey
* Register our own PubKey
* Register tmcrypto PubKey
* Register both PubKeys
* Register interfaces in test
* Refactor fiels
* Add comments
* Remove old cosmos-sdk/crypto/keys reference
* Use anil's suggestion
* Add norace back
* Use our own ed25519
* Fix pubkey types
* Fix network tests
* Fix more tests
* Make ibc work?
* Use TM pubkey in NewValidator
* Fix lint
* Put interface in tpyes
* rerun CI
* Better name register
* Remove stray code
* Add ed25519 tests
* Check nil
* Correct interface impl assert
* rerun CI
* Add fix for Bech32
* Address comments
* FIx lint
* Add tests for solomachine unpack interfaces
* Fix query tx by hash
* Better name in amino register
* Fix lint
* Add back ed25519 test (fixes #7352 )
* go mod tidy
* Fix merge issues
* Sort import
* Add test for backwards-compatibility
* Fix tests
* Fix merge issue
* Update client/context.go
Co-authored-by: Cory <cjlevinson@gmail.com>
* Update types/address.go
Co-authored-by: Cory <cjlevinson@gmail.com>
* Address feedback
* Add comment
* Fix BaseAccount SetPubKey and address further comments
* Lint
* Remove unnecessary use of copy in getPubKeyFromString
* Update comment
Co-authored-by: Aaron Craelius <aaronc@users.noreply.github.com>
Co-authored-by: Aaron Craelius <aaron@regen.network>
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
Co-authored-by: Cory <cjlevinson@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-09-25 08:41:16 +00:00
Amaury Martiny
7cd25abb87
Proto Tx with Any ( #7276 )
...
* WIP on protobuf keys
* Use Type() and Bytes() in sr25519 pub key Equals
* Add tests
* Add few more tests
* Update other pub/priv key types Equals
* Fix PrivKey's Sign method
* Rename variables in tests
* Fix infinite recursive calls
* Use tm ed25519 keys
* Add Sign and VerifySignature tests
* Remove ed25519 and sr25519 references
* proto linting
* Add proto crypto file
* Implement some of the new multisig proto type methods
* Add tests for MultisigThresholdPubKey
* Add tests for pubkey pb/amino conversion functions
* Move crypto types.go and register new proto pubkeys
* Add missing pointer ref
* Address review comments
* panic in MultisigThresholdPubKey VerifySignature
* Use internal crypto.PubKey in multisig
* Add tests for MultisigThresholdPubKey VerifyMultisignature
* Only keep LegacyAminoMultisigThresholdPubKey and move to proto keys to v1
* Remove conversion functions and introduce internal PubKey type
* Override Amino marshaling for proto pubkeys
* Merge master
* Make proto-gen
* Start removal of old PubKeyMultisigThreshold references
* Fix tests
* Fix solomachine
* Fix ante handler tests
* Pull latest go-amino
* Remove ed25519
* Remove old secp256k1 PubKey and PrivKey
* Uncomment test case
* Fix linting issues
* More linting
* Revert tests keys values
* Add Amino overrides to proto keys
* Add pubkey test
* Fix tests
* Use threshold isntead of K
* Standardize Type
* Revert standardize types commit
* Fix build
* Fix lint
* Fix lint
* Add comment
* Register crypto.PubKey
* Add empty key in BuildSimTx
* Simplify proto names
* Unpack interfaces for signing desc
* Fix IBC tests?
* Format proto
* Use secp256k1 in ibc
* Fixed merge issues
* Uncomment tests
* Update x/ibc/testing/solomachine.go
* UnpackInterfaces for solomachine types
* Remove old multisig
* Add amino marshal for multisig
* Fix lint
* Correctly register amino
* One test left!
* Remove old struct
* Fix test
* Fix test
* Unpack into tmcrypto
* Remove old threshold pubkey tests
* Fix register amino
* Fix lint
* Use sdk crypto PubKey in multisig UnpackInterfaces
* Potential fix?
* Register LegacyAminoPubKey
* Register our own PubKey
* Register tmcrypto PubKey
* Register both PubKeys
* Register interfaces in test
* Refactor fiels
* Add comments
* Use anil's suggestion
* Add norace back
* Check nil
* Address comments
* FIx lint
* Add tests for solomachine unpack interfaces
* Fix query tx by hash
* Better name in amino register
* Display StdTx instead of proto Tx
* Remove useless check
Co-authored-by: Aaron Craelius <aaronc@users.noreply.github.com>
Co-authored-by: blushi <marie.gauthier63@gmail.com>
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com>
2020-09-21 16:48:28 +00:00
Marie
23578a9612
Remove old PubKeyMultisigThreshold ( #7284 )
...
* WIP on protobuf keys
* Use Type() and Bytes() in sr25519 pub key Equals
* Add tests
* Add few more tests
* Update other pub/priv key types Equals
* Fix PrivKey's Sign method
* Rename variables in tests
* Fix infinite recursive calls
* Use tm ed25519 keys
* Add Sign and VerifySignature tests
* Remove ed25519 and sr25519 references
* proto linting
* Add proto crypto file
* Implement some of the new multisig proto type methods
* Add tests for MultisigThresholdPubKey
* Add tests for pubkey pb/amino conversion functions
* Move crypto types.go and register new proto pubkeys
* Add missing pointer ref
* Address review comments
* panic in MultisigThresholdPubKey VerifySignature
* Use internal crypto.PubKey in multisig
* Add tests for MultisigThresholdPubKey VerifyMultisignature
* Only keep LegacyAminoMultisigThresholdPubKey and move to proto keys to v1
* Remove conversion functions and introduce internal PubKey type
* Start removal of old PubKeyMultisigThreshold references
* Remove old secp256k1 PubKey and PrivKey
* Uncomment test case
* Fix linting issues
* More linting
* Revert tests keys values
* Add Amino overrides to proto keys
* Add pubkey test
* Fix tests
* Use threshold isntead of K
* Standardize Type
* Revert standardize types commit
* Add comment
* Simplify proto names
* Fixed merge issues
* Uncomment tests
* Remove old multisig
* Add amino marshal for multisig
* Fix lint
* Correctly register amino
* One test left!
* Remove old struct
* Fix test
* Fix test
* Unpack into tmcrypto
* Remove old threshold pubkey tests
* Fix register amino
* Fix lint
* Use sdk crypto PubKey in multisig UnpackInterfaces
* Potential fix?
* Use anil's suggestion
Co-authored-by: Aaron Craelius <aaronc@users.noreply.github.com>
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
2020-09-18 09:40:39 +00:00
Marie
320a852ee2
PubKey proto types ( #7147 )
...
* WIP on protobuf keys
* Use Type() and Bytes() in sr25519 pub key Equals
* Add tests
* Add few more tests
* Update other pub/priv key types Equals
* Fix PrivKey's Sign method
* Rename variables in tests
* Fix infinite recursive calls
* Use tm ed25519 keys
* Add Sign and VerifySignature tests
* Remove ed25519 and sr25519 references
* proto linting
* Add proto crypto file
* Implement some of the new multisig proto type methods
* Add tests for MultisigThresholdPubKey
* Add tests for pubkey pb/amino conversion functions
* Move crypto types.go and register new proto pubkeys
* Add missing pointer ref
* Address review comments
* panic in MultisigThresholdPubKey VerifySignature
* Use internal crypto.PubKey in multisig
* Add tests for MultisigThresholdPubKey VerifyMultisignature
* Only keep LegacyAminoMultisigThresholdPubKey and move to proto keys to v1
* Remove conversion functions and introduce internal PubKey type
* Remove old secp256k1 PubKey and PrivKey
* Uncomment test case
* Fix linting issues
* More linting
* Revert tests keys values
* Add Amino overrides to proto keys
* Add pubkey test
* Fix tests
* Use threshold isntead of K
* Standardize Type
* Revert standardize types commit
* Add comment
* Simplify proto names
* Add comment about multisig codec
Co-authored-by: Aaron Craelius <aaronc@users.noreply.github.com>
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-09-16 11:08:55 +00:00
Anil Kumar Kammari
64b6bb5270
rename RegisterCodec to RegisterLegacyAminoCodec ( #7243 )
...
* rename RegisterCodec to RegisterLegacyAminoCodec
* Add changelog
* gofmt
* rename codec.New() to codec.NewLegacyAmino()
* Add change log
* Update CHANGELOG.md
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
* Fix
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
2020-09-07 14:47:12 +00:00
SaReN
23a9f46aad
Update tm pubkey references ( #7102 )
...
* Update pubkey references
* Update ledger_mock
* Migrate encoding from tm
* Update pubkey prefix
* revert ed25519 to tendermint key
* random account revert
* Revert ed25519 references
* revert secp key name
* test revert
* remove ed25519
* Update x/staking/types/validator.go
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
* Revert "remove ed25519"
This reverts commit 66d2e1d061aeae81c4c0a3daf718536b09dda19e.
* remove ed25519 & sr25519
* Apply suggestions from code review
* remove codec
Co-authored-by: Marko Baricevic <marbar3778@yahoo.com>
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
2020-08-28 16:02:38 +00:00
Marko
8de96d16f9
tendermint: update to rc3 ( #6892 )
...
* modify light imports
* change abci.header to tmproto.header
* use rc
* rc
* fix import
* Merge PR #6893 : fix key imports
* fix rc2
* tendermint: update 3 (#6899 )
* tendermint: update 4 (#6919 )
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
* tendermint: update 5 (#6923 )
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
* bump to latest master
* tendermint: update (#6972 )
Co-authored-by: Aleksandr Bezobchuk <aleks.bezobchuk@gmail.com>
Co-authored-by: Cory Levinson <cjlevinson@gmail.com>
* Update x/ibc/07-tendermint/types/test_utils.go
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
* address comment
* go mod
* bring back things
* fix test
* update tm proto files
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Aleksandr Bezobchuk <aleks.bezobchuk@gmail.com>
Co-authored-by: Cory Levinson <cjlevinson@gmail.com>
Co-authored-by: Federico Kunze <federico.kunze94@gmail.com>
2020-08-14 13:58:53 -04:00
dauTT
20c80cfd44
Rename *codec.Codec to *codec.LegacyAmino ( #6991 )
...
* Rename *codec.Codec to *codec.LegacyAmino
* Implement requested changes
Co-authored-by: Aaron Craelius <aaron@regen.network>
2020-08-10 19:41:21 +00:00
Aaron Craelius
81d647e505
Move codec.RegisterCrypto and codec.Cdc to new packages ( #6330 )
...
* Move codec.Cdc to legacy_global.Cdc
* Update CHANGELOG.md
* Updates
* nit
* Fix imports
* Updates
* Use cosmos multisig instead of tendermint multisig everywhere
* Fix tests
* Rename legacy_global -> legacy
* Add doc.go
* Linting, move all RegisterCrypto calls to crypto/codec
* Update crypto/codec/amino.go
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
2020-06-04 10:38:24 +00:00