aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2021-03-02 22:13:21 -0500
committerJesse Luehrs <doy@tozt.net>2021-03-02 22:13:21 -0500
commit604e09e6ae098350bffe18bde26e1c62f7e88a00 (patch)
treeed40c95a683fa200b11dc3f19accca7eee48ccd5 /src/bin
parentd149a01bffd2bfdd16e471c8be55f7760c70dd69 (diff)
downloadrbw-604e09e6ae098350bffe18bde26e1c62f7e88a00.tar.gz
rbw-604e09e6ae098350bffe18bde26e1c62f7e88a00.zip
make the pinentry program configurable
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/rbw-agent/actions.rs8
-rw-r--r--src/bin/rbw/commands.rs2
2 files changed, 10 insertions, 0 deletions
diff --git a/src/bin/rbw-agent/actions.rs b/src/bin/rbw-agent/actions.rs
index 1a5a3c5..4f4096e 100644
--- a/src/bin/rbw-agent/actions.rs
+++ b/src/bin/rbw-agent/actions.rs
@@ -32,6 +32,7 @@ pub async fn login(
None
};
let password = rbw::pinentry::getpin(
+ &config_pinentry().await?,
"Master Password",
&format!("Log in to {}", host),
err.as_deref(),
@@ -134,6 +135,7 @@ async fn two_factor(
None
};
let code = rbw::pinentry::getpin(
+ &config_pinentry().await?,
"Authenticator App",
"Enter the 6 digit verification code from your authenticator app.",
err.as_deref(),
@@ -293,6 +295,7 @@ pub async fn unlock(
None
};
let password = rbw::pinentry::getpin(
+ &config_pinentry().await?,
"Master Password",
"Unlock the local database",
err.as_deref(),
@@ -532,3 +535,8 @@ async fn config_base_url() -> anyhow::Result<String> {
let config = rbw::config::Config::load_async().await?;
Ok(config.base_url())
}
+
+async fn config_pinentry() -> anyhow::Result<String> {
+ let config = rbw::config::Config::load_async().await?;
+ Ok(config.pinentry)
+}
diff --git a/src/bin/rbw/commands.rs b/src/bin/rbw/commands.rs
index 3f11174..2da06a2 100644
--- a/src/bin/rbw/commands.rs
+++ b/src/bin/rbw/commands.rs
@@ -425,6 +425,7 @@ pub fn config_set(key: &str, value: &str) -> anyhow::Result<()> {
config.lock_timeout = timeout;
}
}
+ "pinentry" => config.pinentry = value.to_string(),
_ => return Err(anyhow::anyhow!("invalid config key: {}", key)),
}
config.save()?;
@@ -449,6 +450,7 @@ pub fn config_unset(key: &str) -> anyhow::Result<()> {
"lock_timeout" => {
config.lock_timeout = rbw::config::default_lock_timeout()
}
+ "pinentry" => config.pinentry = rbw::config::default_pinentry(),
_ => return Err(anyhow::anyhow!("invalid config key: {}", key)),
}
config.save()?;