Introduce `sign_with` method in keystore (#4925)
* Add KEY_KIND_ID to the public trait
This change is being introduced for the purpose of identifying a public
key with it's identifier and algorithm "kind".
* Use `sign_with` as implemented in BareCryptoStore
* Implement `sign_with` in sc_keystore
* Fix inconsistencies, use *_KIND_ID in sp_core testing
* Rename KeyKindId to CryptoTypeId
* Remove pair-returning functions from BareCryptoStore trait
* Define CryptoTypeId in app-crypto macros
* Add functions to get keys supported by keystore
* Fix sign_with signature to include CryptoTypePublicPair
* Add `sign_with_any` and `sign_with_all`
* Use keystore.sign_with in auth_discovery
* Rename get_supported_keys -> supported_keys
* Added headers to function docstrings
* Use chain instead of extending a temp vector
* Fixed some code formatting
* Restrict size of CryptoTypeId
This is to be able to use Encode/Decode derives and the overcome having
the size being unknown at compile-time.
* Implement sign_with in the trait itself
* Remove whitespace
* Use key_type also as a CryptoTypeId in app_crypto macros
* Rename `get_keys` to `keys` in BareCryptoStore
* Remove usage of key_pair funcs in tests
* Adjust docstring for *_CYPTO_ID constants
* Fix failures
* Simplify mapping on keys
* Remove one let
* Fixed typo
* PR feedback
* remove whitespace
* Zip keys and signatures
* Use into_iter & remove cloned
* Pass index to MissingSignature
* Use typed errors instead of strings for BareCryptoStore
* Implement Debug for trait error
* Use hashsets for better performance for supported_keys
* Make sure keys are inserted into the keystore
* Make sign_with_all return type consistent with `sign_with`
* Rename Error to BareCryptoStoreError
* Rename CRYPT_TYPE_ID -> CRYPTO_ID
* Remove unnecessary CRYPTO_ID declaration in Public trait
* Convert pub key to CryptoTypePublicPair
* Fix use
* Fix code style
* Implement From on CryptoTypePublicPair in app_crypto macros
* Change CryptoTypePublicPair to a struct
* Implement Display on CryptoTypePublicPair
* Pass CryptoTypePublicPair to MissingSignature error
* Adjust docs according to function signature
* Unify keys implementation
* Fix RPC author tests
* Fix stackoverflow
* Tabify spaces
* Pass KeyTypeId to error for easier debugging
* Fix asserts
* Use ToHex to format public key
* Use constants from sp_core
* Rename testing KeyTypeId constants
* Please compiler
* Restore KeyTypeId names
apparently, they're not only used in tests
* Use BareCryptoStoreError instead of String
* Document return value
* Fix borrow check
* Convert to hashset internally
* WIP - iter_keys
* Return raw_public_keys
* Address PR feedback
* Address PR Feedback
* Fix hexdisplay import error
* Update primitives/core/src/traits.rs
Co-authored-by:
Bastian Köcher <bkchr@users.noreply.github.com>
Showing
- substrate/client/authority-discovery/src/error.rs 6 additions, 0 deletionssubstrate/client/authority-discovery/src/error.rs
- substrate/client/authority-discovery/src/lib.rs 22 additions, 20 deletionssubstrate/client/authority-discovery/src/lib.rs
- substrate/client/keystore/src/lib.rs 124 additions, 48 deletionssubstrate/client/keystore/src/lib.rs
- substrate/client/rpc/src/author/tests.rs 10 additions, 17 deletionssubstrate/client/rpc/src/author/tests.rs
- substrate/primitives/application-crypto/src/ed25519.rs 15 additions, 0 deletionssubstrate/primitives/application-crypto/src/ed25519.rs
- substrate/primitives/application-crypto/src/lib.rs 2 additions, 2 deletionssubstrate/primitives/application-crypto/src/lib.rs
- substrate/primitives/application-crypto/src/sr25519.rs 15 additions, 0 deletionssubstrate/primitives/application-crypto/src/sr25519.rs
- substrate/primitives/application-crypto/test/src/ed25519.rs 7 additions, 5 deletionssubstrate/primitives/application-crypto/test/src/ed25519.rs
- substrate/primitives/application-crypto/test/src/sr25519.rs 7 additions, 5 deletionssubstrate/primitives/application-crypto/test/src/sr25519.rs
- substrate/primitives/authority-discovery/src/lib.rs 18 additions, 1 deletionsubstrate/primitives/authority-discovery/src/lib.rs
- substrate/primitives/core/src/crypto.rs 27 additions, 2 deletionssubstrate/primitives/core/src/crypto.rs
- substrate/primitives/core/src/ecdsa.rs 4 additions, 1 deletionsubstrate/primitives/core/src/ecdsa.rs
- substrate/primitives/core/src/ed25519.rs 16 additions, 1 deletionsubstrate/primitives/core/src/ed25519.rs
- substrate/primitives/core/src/sr25519.rs 17 additions, 2 deletionssubstrate/primitives/core/src/sr25519.rs
- substrate/primitives/core/src/testing.rs 84 additions, 32 deletionssubstrate/primitives/core/src/testing.rs
- substrate/primitives/core/src/traits.rs 92 additions, 10 deletionssubstrate/primitives/core/src/traits.rs
- substrate/primitives/io/src/lib.rs 6 additions, 4 deletionssubstrate/primitives/io/src/lib.rs
Please register or sign in to comment