Robert Zaremba
7568b6680a
Remove bech32 PubKey support ( #7477 )
...
* Move PubKey bech32 to legacy package and migrate the usage where possible
* update /server
* wip
* move proto json encoding helper functions to internal
* update internal/marshal
* wip
* update sections which needs legacybech32
* update validators output
* fix conflicts
* slashing update
* add more tests and helper function for ANY JSON serialization
* update slashing
* Update function documentation
* Rename code any-marshal helper functions
* Update pubkey unpacking test
* Update test comments
* solve TestDecodeStore
* solve legacytx issues
* all code compiles
* keyring tests
* keyring cleanup
* remove AssertMsg
* fix some tests
* fix add_ledger_test.go
* update cli tests
* debug cli test
* rename clashed bech32 names
* linter fixes
* update tmservice tests
* linter: update legacy deprecated checks
* fix names
* linting
* legacybech32 pubkey type rename
* fix staking client
* fix test compilation
* fix TestGetCmdQuerySigningInfo
* rename NewIfcJSONAnyMarshaler
* keyring: remove duplicated information from multinfo structure
* todo cleanups
* Update Changelog
* remove some legacybech32 from tests
* remove todos
* remove printlnJSON from /server CLI and amino encoding
* remove protocdc.MarshalJSON
* client/show remove duplicated function
* remove protocdc package
* comment update
* remove legacybech32.MustMarshalPubKey from a test
* add todo
* fix TestPublicKeyUnsafe test
* review update
* fix bech32 UnmarshalPubKey
* Use codec.MarshalIfcJSON
* fix linter issues
* merging conflict: fix codec.Unmarshal calls
* cleanups
* Update CHANGELOG.md
Co-authored-by: Aaron Craelius <aaron@regen.network>
* Reword changelog updates
* use pubkey.String for comparison in Test_runAddCmdLedgerWithCustomCoinType
* Update GetCmdQuerySigningInfo example
* cli: update keys add docs
* Add errors AsOf and errors.ErrIO type
* restore multisigPubKeyInfo structure bring it back to multiInfo struct
* Update codec/proto_codec.go
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
* Update crypto/keys/ed25519/ed25519_test.go
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
* Update codec/proto_codec.go
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
* move pubkey any marshaling tests
* Apply suggestions from code review
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
* review updates
* adding missing return
* errors: use IsOf instead of AsOf
* keyring: add a correct check for key not found in keyring.Get
* add checkKeyNotFound
* fix linter issues
* fix: keyring key not found check
* fix keyring tests
* fix linting issues
* cli tests
* fix: 'simd keys show <key> -p'
* fix: TestVerifyMultisignature
* rename keyring Bech32... functions to Mk...
* fix RunAddCmd
* Update pubkey display
* wip
* add more tests
* udate keyring output tests
* remove todo from ledger tests
* rename MkKeyOutput
* Changelog update
* solve liner issues
* add link to github issue
Co-authored-by: Aaron Craelius <aaron@regen.network>
Co-authored-by: Marie Gauthier <marie.gauthier63@gmail.com>
2021-03-25 14:53:22 +00:00
Amaury
d4d27e1c0c
Fix multisig LegacyAminoPubKey Amino marshaling ( #8841 )
...
* Use v034auth RegisterCrypto
* Add custom amino for LegacyAminoPubKey
* Fix registercrypto
* Revert old PR
* revert some genutil stuff
* Add comment
* Add changelog
* Remove binary marshalling
* Fix lint
* Fix lint again
* Fix lint, 3rd time's a charm
* ignore wrong linter warning
* Fix UnmarshalAmioJSON
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Co-authored-by: Anil Kumar Kammari <anil@vitwit.com>
2021-03-15 12:42:10 +00:00
Robert Zaremba
8dd6c325ba
multisig checks and optimization ( #8600 )
...
* Add Equal method to the CompactBitArray
* optimize NumTrueBitsBefore
* fix compact_bit_array
* add more tests and update comments
* add check for unique keys
* add unit tests
* LegacyAminoPubKey: rollback pubkey uniqueness check
* comment update
* Bechmark NumTrueBitsBefore
* Adding one more test
* changelog update
* Update crypto/types/compact_bit_array.go
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
* change iff to if and only if
* add comment to NumTrueBitsBefore
* merge conflict
* Changelog cosmetic update
* Update CHANGELOG.md
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
2021-02-23 15:55:06 +00:00
Aaron Craelius
2521964d50
Update gogo proto deps with v1.3.2 security fixes ( #8350 )
...
* Update gogo proto deps with v1.3.2 security fixes
* Regenerate proto files
2021-01-15 19:45:34 +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
Marie Gauthier
489599b70f
Remove the old message PublicKey proto oneof ( #7390 )
...
* Remove unused PublicKey type and update docs
* Update wording
* Update proto/cosmos/base/crypto/v1beta1/crypto.proto
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
* Edit docs
* Move crypto.proto to multisig
* Proto linting
* Update docs/architecture/adr-020-protobuf-transaction-encoding.md
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
* Update wording for Public Key Encoding
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
2020-09-29 10:01:54 +00:00
Alessio Treglia
8601dcdbb7
types: tests -> test suites migration ( #7400 )
...
Ref #7362
2020-09-28 12:46:49 +02: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
Marie Gauthier
fb0f6d6167
Fix multisig PubKey VerifyMultisignature ( #7377 )
...
* Fix VerifyMultisignature method
* Remove unrelevant test
* Remove empty line
* Fix verify test
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-09-24 15:40:38 +00:00
Robert Zaremba
f5afdd0117
Robert/move amino stdtx ( #7301 )
...
* x/auth: move amino StdTx... to a legacy package
* legacytx: move RegisterLegacyAminoCodec from init to tests/init
* merge fixes
Co-authored-by: Aaron Craelius <aaron@regen.network>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-09-22 14:35:18 +00:00
Alessio Treglia
3e616a60d5
replace testutil.NewTestCaseDir() with Go1.15's T.TempDir() ( #7014 )
...
Override go's default version with go 1.15.
2020-09-18 12:08:24 +01: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