Disallow bad combination of arguments in keygen grind (#17251)

* Use constant for outfile sentinel value

* Require --use-mnemonic flag when --no-outfile flag passed to keygen grind
This commit is contained in:
steviez
2021-05-18 10:35:07 -05:00
committed by GitHub
parent f7b0184f81
commit 6cba53421e
3 changed files with 13 additions and 6 deletions

View File

@ -17,6 +17,9 @@ use {
std::{str::FromStr, sync::Arc},
};
// Sentinel value used to indicate to write to screen instead of file
pub const STDOUT_OUTFILE_TOKEN: &str = "-";
// Return parsed values from matches at `name`
pub fn values_of<T>(matches: &ArgMatches<'_>, name: &str) -> Option<Vec<T>>
where

View File

@ -1,6 +1,6 @@
use {
crate::{
input_parsers::pubkeys_sigs_of,
input_parsers::{pubkeys_sigs_of, STDOUT_OUTFILE_TOKEN},
offline::{SIGNER_ARG, SIGN_ONLY_ARG},
ArgConstant,
},
@ -235,7 +235,7 @@ pub(crate) fn parse_signer_source<S: AsRef<str>>(
}
} else {
match source {
"-" => Ok(SignerSource::new(SignerSourceKind::Stdin)),
STDOUT_OUTFILE_TOKEN => Ok(SignerSource::new(SignerSourceKind::Stdin)),
ASK_KEYWORD => Ok(SignerSource::new_legacy(SignerSourceKind::Prompt)),
_ => match Pubkey::from_str(source) {
Ok(pubkey) => Ok(SignerSource::new(SignerSourceKind::Pubkey(pubkey))),
@ -632,7 +632,7 @@ mod tests {
#[test]
fn test_parse_signer_source() {
assert!(matches!(
parse_signer_source("-").unwrap(),
parse_signer_source(STDOUT_OUTFILE_TOKEN).unwrap(),
SignerSource {
kind: SignerSourceKind::Stdin,
derivation_path: None,