diff options
-rw-r--r-- | nitrocli/src/commands.rs | 10 | ||||
-rw-r--r-- | nitrocli/src/pinentry.rs | 24 |
2 files changed, 15 insertions, 19 deletions
diff --git a/nitrocli/src/commands.rs b/nitrocli/src/commands.rs index 7d698cc..5af2a44 100644 --- a/nitrocli/src/commands.rs +++ b/nitrocli/src/commands.rs @@ -186,12 +186,12 @@ where let mut retry = 3; let mut error_msg = None; loop { - let pin = pinentry::inquire_pin(pin_entry, pinentry::Mode::Query, error_msg)?; + let pin = pinentry::inquire(pin_entry, pinentry::Mode::Query, error_msg)?; match op(data, &pin) { Ok(result) => return Ok(result), Err((new_data, err)) => match err { nitrokey::CommandError::WrongPassword => { - pinentry::clear_pin(pin_entry)?; + pinentry::clear(pin_entry)?; retry -= 1; if retry > 0 { @@ -582,11 +582,11 @@ pub fn otp_status(ctx: &mut args::ExecCtx<'_>, all: bool) -> Result<()> { pub fn pin_clear(ctx: &mut args::ExecCtx<'_>) -> Result<()> { let device = get_device(ctx)?; - pinentry::clear_pin(&pinentry::PinEntry::from( + pinentry::clear(&pinentry::PinEntry::from( pinentry::PinType::Admin, &device, )?)?; - pinentry::clear_pin(&pinentry::PinEntry::from(pinentry::PinType::User, &device)?)?; + pinentry::clear(&pinentry::PinEntry::from(pinentry::PinType::User, &device)?)?; Ok(()) } @@ -622,7 +622,7 @@ fn choose_pin( .ok_or_else(|| Error::from("Failed to read PIN: invalid Unicode data found")) .map(ToOwned::to_owned) } else { - pinentry::choose_pin(pin_entry) + pinentry::choose(pin_entry) } } diff --git a/nitrocli/src/pinentry.rs b/nitrocli/src/pinentry.rs index e4d2b0d..84db16c 100644 --- a/nitrocli/src/pinentry.rs +++ b/nitrocli/src/pinentry.rs @@ -150,11 +150,7 @@ where /// of the pinentry dialog. It is used to choose an appropriate /// description and to decide whether a quality bar is shown in the /// dialog. -pub fn inquire_pin( - pin_entry: &PinEntry, - mode: Mode, - error_msg: Option<&str>, -) -> Result<String, Error> { +pub fn inquire(pin_entry: &PinEntry, mode: Mode, error_msg: Option<&str>) -> crate::Result<String> { let cache_id = pin_entry.cache_id(); let error_msg = error_msg .map(|msg| msg.replace(" ", "+")) @@ -181,7 +177,7 @@ pub fn inquire_pin( parse_pinentry_pin(str::from_utf8(&output.stdout)?) } -fn check_pin(pin_type: PinType, pin: &str) -> crate::Result<()> { +fn check(pin_type: PinType, pin: &str) -> crate::Result<()> { let minimum_length = match pin_type { PinType::Admin => 8, PinType::User => 6, @@ -196,14 +192,14 @@ fn check_pin(pin_type: PinType, pin: &str) -> crate::Result<()> { } } -pub fn choose_pin(pin_entry: &PinEntry) -> crate::Result<String> { - clear_pin(pin_entry)?; - let new_pin = inquire_pin(pin_entry, Mode::Choose, None)?; - clear_pin(pin_entry)?; - check_pin(pin_entry.pin_type(), &new_pin)?; +pub fn choose(pin_entry: &PinEntry) -> crate::Result<String> { + clear(pin_entry)?; + let new_pin = inquire(pin_entry, Mode::Choose, None)?; + clear(pin_entry)?; + check(pin_entry.pin_type(), &new_pin)?; - let confirm_pin = inquire_pin(pin_entry, Mode::Confirm, None)?; - clear_pin(pin_entry)?; + let confirm_pin = inquire(pin_entry, Mode::Confirm, None)?; + clear(pin_entry)?; if new_pin != confirm_pin { Err(Error::from("Entered PINs do not match")) @@ -227,7 +223,7 @@ where } /// Clear the cached pin represented by the given entry. -pub fn clear_pin(pin_entry: &PinEntry) -> Result<(), Error> { +pub fn clear(pin_entry: &PinEntry) -> Result<(), Error> { let command = format!("CLEAR_PASSPHRASE {}", pin_entry.cache_id()); let output = process::Command::new("gpg-connect-agent") .arg(command) |