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) | 
