removing old rbw pinentry file
This commit is contained in:
parent
8f75678d03
commit
16bc505b9e
1 changed files with 0 additions and 102 deletions
|
@ -1,102 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
[[ -z "${RBW_PROFILE}" ]] && rbw_profile='rbw' || rbw_profile="rbw-${RBW_PROFILE}"
|
|
||||||
|
|
||||||
set -eEuo pipefail
|
|
||||||
|
|
||||||
function help() {
|
|
||||||
cat <<EOHELP
|
|
||||||
Use this script as pinentry to store master password for rbw into your keyring
|
|
||||||
|
|
||||||
Usage
|
|
||||||
- run "rbw-pinentry-keyring clear" to clear the master password from your keyring
|
|
||||||
- add "rbw-pinentry-keyring" as "pinentry" in rbw config (${XDG_CONFIG_HOME}/rbw/config.json)
|
|
||||||
- use rbw as normal
|
|
||||||
Notes
|
|
||||||
- needs "secret-tool" to access keyring
|
|
||||||
- setup tested with pinentry-gnome3, but you can run the "secret-tool store"-command manually as well
|
|
||||||
- master passwords are stored into the keyring as plaintext, so secure your keyring appropriately
|
|
||||||
- supports multiple profiles, simply set RBW_PROFILE during setup
|
|
||||||
- can easily be rewritten to use other backends than keyring by setting the "secret_value"-variable
|
|
||||||
EOHELP
|
|
||||||
}
|
|
||||||
|
|
||||||
function clear() {
|
|
||||||
secret-tool clear application rbw profile "$rbw_profile" type master_password
|
|
||||||
}
|
|
||||||
|
|
||||||
function getpin() {
|
|
||||||
echo 'OK'
|
|
||||||
|
|
||||||
title=""
|
|
||||||
prompt=""
|
|
||||||
desc=""
|
|
||||||
|
|
||||||
while IFS=' ' read -r command args ; do
|
|
||||||
case "$command" in
|
|
||||||
SETTITLE)
|
|
||||||
title="$args"
|
|
||||||
echo 'OK'
|
|
||||||
;;
|
|
||||||
SETDESC)
|
|
||||||
desc="$args"
|
|
||||||
echo 'OK'
|
|
||||||
;;
|
|
||||||
SETPROMPT)
|
|
||||||
prompt="$args"
|
|
||||||
echo 'OK'
|
|
||||||
;;
|
|
||||||
GETPIN)
|
|
||||||
if [[ "$prompt" == "Master Password" ]]; then
|
|
||||||
set +e
|
|
||||||
secret_value="$(secret-tool lookup application rbw profile "$rbw_profile" type master_password)"
|
|
||||||
err=$?
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [[ $err == 1 ]]; then
|
|
||||||
cmd="SETTITLE rbw\n"
|
|
||||||
cmd+="SETPROMPT Master Password\n"
|
|
||||||
cmd+="SETDESC Please enter the master password for '$rbw_profile'\n"
|
|
||||||
cmd+="GETPIN\n"
|
|
||||||
secret_value="$(printf "$cmd" | pinentry | grep -E "^D " | cut -c3-)"
|
|
||||||
if [ -n "$secret_value" ]; then
|
|
||||||
echo -n "$secret_value" | secret-tool store --label="$rbw_profile master password" application rbw profile "$rbw_profile" type master_password >/dev/null 2>&1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf 'D %s\n' "$secret_value"
|
|
||||||
echo 'OK'
|
|
||||||
else
|
|
||||||
cmd="SETTITLE $title\n"
|
|
||||||
cmd+="SETPROMPT $prompt\n"
|
|
||||||
cmd+="SETDESC $desc\n"
|
|
||||||
cmd+="GETPIN\n"
|
|
||||||
|
|
||||||
secret_value="$(printf "$cmd" | pinentry | grep -E "^D " | cut -c3-)"
|
|
||||||
|
|
||||||
printf 'D %s\n' "$secret_value"
|
|
||||||
echo 'OK'
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
BYE)
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo 'ERR Unknown command'
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
command="$1"
|
|
||||||
case "$command" in
|
|
||||||
-h|--help|help)
|
|
||||||
help
|
|
||||||
;;
|
|
||||||
-c|--clear|clear)
|
|
||||||
clear
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
getpin
|
|
||||||
;;
|
|
||||||
esac
|
|
Loading…
Add table
Add a link
Reference in a new issue