aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nitrocli/src/commands.rs10
-rw-r--r--nitrocli/src/pinentry.rs24
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)