Skip to content
Snippets Groups Projects
Commit cb77e783 authored by Bastian Köcher's avatar Bastian Köcher Committed by GitHub
Browse files

Require crypto scheme for `insert-key` (#9909)

* Require crypto scheme for `insert-key`

We should not "guess" the scheme as this can depend on the
implementation of the runtime etc.

* FMT
parent 95cf70c6
Branches
No related merge requests found
......@@ -18,7 +18,7 @@
//! Implementation of the `insert` subcommand
use crate::{
utils, with_crypto_scheme, CryptoSchemeFlag, Error, KeystoreParams, SharedParams, SubstrateCli,
utils, with_crypto_scheme, CryptoScheme, Error, KeystoreParams, SharedParams, SubstrateCli,
};
use sc_keystore::LocalKeystore;
use sc_service::config::{BasePath, KeystoreConfig};
......@@ -49,9 +49,14 @@ pub struct InsertKeyCmd {
#[structopt(flatten)]
pub keystore_params: KeystoreParams,
#[allow(missing_docs)]
#[structopt(flatten)]
pub crypto_scheme: CryptoSchemeFlag,
/// The cryptography scheme that should be used to generate the key out of the given URI.
#[structopt(
long,
value_name = "SCHEME",
possible_values = &CryptoScheme::variants(),
case_insensitive = true,
)]
pub scheme: CryptoScheme,
}
impl InsertKeyCmd {
......@@ -68,10 +73,7 @@ impl InsertKeyCmd {
let (keystore, public) = match self.keystore_params.keystore_config(&config_dir)? {
(_, KeystoreConfig::Path { path, password }) => {
let public = with_crypto_scheme!(
self.crypto_scheme.scheme,
to_vec(&suri, password.clone())
)?;
let public = with_crypto_scheme!(self.scheme, to_vec(&suri, password.clone()))?;
let keystore: SyncCryptoStorePtr = Arc::new(LocalKeystore::open(path, password)?);
(keystore, public)
},
......@@ -161,6 +163,7 @@ mod tests {
"test",
"--suri",
&uri,
"--scheme=sr25519",
]);
assert!(inspect.run(&Cli).is_ok());
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment