diff options
| -rw-r--r-- | nitrocli/src/commands.rs | 19 | 
1 files changed, 6 insertions, 13 deletions
| diff --git a/nitrocli/src/commands.rs b/nitrocli/src/commands.rs index e719039..2bea53a 100644 --- a/nitrocli/src/commands.rs +++ b/nitrocli/src/commands.rs @@ -97,7 +97,6 @@ fn get_password_safe(device: &dyn Device) -> Result<nitrokey::PasswordSafe<'_>>      (),      |_, pin| device.get_password_safe(pin).map_err(|err| ((), err)),    ) -  .map_err(|(_, err)| err)  }  /// Authenticate the given device using the given PIN type and operation. @@ -113,7 +112,7 @@ where    D: Device,    F: Fn(D, &str) -> result::Result<A, (D, nitrokey::CommandError)>,  { -  try_with_pin_and_data(pin_type, msg, device, op).map_err(|(_device, err)| err) +  try_with_pin_and_data(pin_type, msg, device, op)  }  /// Authenticate the given device with the user PIN. @@ -174,7 +173,7 @@ fn try_with_pin_and_data<D, F, R>(    msg: &'static str,    data: D,    op: F, -) -> result::Result<R, (D, Error)> +) -> Result<R>  where    F: Fn(D, &str) -> result::Result<R, (D, nitrokey::CommandError)>,  { @@ -182,17 +181,12 @@ where    let mut retry = 3;    let mut error_msg = None;    loop { -    let pin = match pinentry::inquire_pin(pin_type, pinentry::Mode::Query, error_msg) { -      Ok(pin) => pin, -      Err(err) => return Err((data, err)), -    }; +    let pin = pinentry::inquire_pin(pin_type, pinentry::Mode::Query, error_msg)?;      match op(data, &pin) {        Ok(result) => return Ok(result),        Err((new_data, err)) => match err {          nitrokey::CommandError::WrongPassword => { -          if let Err(err) = pinentry::clear_pin(pin_type) { -            return Err((new_data, err)); -          } +          pinentry::clear_pin(pin_type)?;            retry -= 1;            if retry > 0 { @@ -201,9 +195,9 @@ where              continue;            }            let error = format!("{}: Wrong password", msg); -          return Err((new_data, Error::Error(error))); +          return Err(Error::Error(error));          } -        err => return Err((new_data, get_error(msg, err))), +        err => return Err(get_error(msg, err)),        },      };    } @@ -220,7 +214,6 @@ where    try_with_pin_and_data(pin_type, msg, (), |data, pin| {      op(pin).map_err(|err| (data, err))    }) -  .map_err(|(_data, err)| err)  }  /// Query and pretty print the status that is common to all Nitrokey devices. | 
