summaryrefslogtreecommitdiff
path: root/src/password-store.sh
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2012-09-21 03:32:09 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2012-09-21 03:32:09 +0200
commit93c025c69aac8867916bbd0f5813765fac7d852b (patch)
tree2cee4ec373e4f6b178798f751dde05d6db43e44e /src/password-store.sh
parent74e4ea941bb61d9e830ae9d2a7cfe690c2df34f0 (diff)
downloadpass-93c025c69aac8867916bbd0f5813765fac7d852b.tar.gz
pass-93c025c69aac8867916bbd0f5813765fac7d852b.tar.bz2
pass-93c025c69aac8867916bbd0f5813765fac7d852b.zip
Add option to init to reencrypt all passwords.
Reported-by: Simon KP <si@eskp.net>
Diffstat (limited to '')
-rwxr-xr-xsrc/password-store.sh24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/password-store.sh b/src/password-store.sh
index 9923907..f137f55 100755
--- a/src/password-store.sh
+++ b/src/password-store.sh
@@ -30,8 +30,9 @@ usage() {
cat <<_EOF
Usage:
- $program init gpg-id
+ $program init [--reencrypt,-e] gpg-id
Initialize new password storage and use gpg-id for encryption.
+ Optionally reencrypt existing passwords using new gpg-id.
$program [ls] [subfolder]
List passwords.
$program [show] [--clip,-c] pass-name
@@ -134,15 +135,34 @@ fi
case "$command" in
init)
+ reencrypt=0
+
+ opts="$($GETOPT -o e -l reencrypt -n "$program" -- "$@")"
+ err=$?
+ eval set -- "$opts"
+ while true; do case $1 in
+ -e|--reencrypt) reencrypt=1; shift ;;
+ --) shift; break ;;
+ esac done
+
if [[ $# -ne 1 ]]; then
- echo "Usage: $program $command gpg-id"
+ echo "Usage: $program $command [--reencrypt,-e] gpg-id"
exit 1
fi
+
gpg_id="$1"
mkdir -v -p "$PREFIX"
echo "$gpg_id" > "$ID"
echo "Password store initialized for $gpg_id."
git_add_file "$ID" "Set GPG id to $gpg_id."
+
+ if [[ $reencrypt -eq 1 ]]; then
+ find "$PREFIX" -iname '*.gpg' | while read passfile; do
+ $GPG -d $GPG_OPTS "$passfile" | $GPG -e -r "$gpg_id" -o "$passfile.new" $GPG_OPTS &&
+ mv -v "$passfile.new" "$passfile"
+ done
+ git_add_file "$PREFIX" "Reencrypted entire store using new GPG id $gpg_id."
+ fi
exit 0
;;
help|--help)
2020-04-23Concurrent imapRené 'Necoro' Neumann4-96/+184 2020-04-22Fix html templateRené 'Necoro' Neumann2-3/+11 2020-04-22Concurrent feed processing; central imap handlerRené 'Necoro' Neumann6-31/+161 2020-04-22Revert to the now patched version of go-messageRené 'Necoro' Neumann2-5/+4 2020-04-22Use patched version of go-messageRené 'Necoro' Neumann3-10/+5 2020-04-21Update README.mdRené 'Necoro' Neumann1-0/+2 2020-04-21Improved HTML creationRené 'Necoro' Neumann4-3/+22 2020-04-21Upload mails to imapRené 'Necoro' Neumann3-35/+80 2020-04-21Move HTML template to stringRené 'Necoro' Neumann3-12/+13 2020-04-21HTML Template part of the mailRené 'Necoro' Neumann7-18/+199 2020-04-20Fixes and validationRené 'Necoro' Neumann6-28/+25 2020-04-20Fix vettingRené 'Necoro' Neumann1-1/+1 2020-04-20Started with mail creationRené 'Necoro' Neumann4-3/+126 2020-04-20FeeditemsRené 'Necoro' Neumann2-2/+14 2020-04-20GlobalOptionsRené 'Necoro' Neumann3-25/+79 2020-04-19RestructureRené 'Necoro' Neumann6-152/+177 2020-04-19Rename package 'parse' to 'feed'René 'Necoro' Neumann2-3/+3 2020-04-19SELECT is not necessary for most operations -- skip itRené 'Necoro' Neumann2-12/+1 2020-04-19Store path as array -- the delimiter is not always '.'René 'Necoro' Neumann3-36/+44 2020-04-19Split client part to client.goRené 'Necoro' Neumann2-125/+137 2020-04-19IMAP: Create foldersRené 'Necoro' Neumann1-4/+38 2020-04-19Improved IMAPRené 'Necoro' Neumann1-3/+88 2020-04-19Started IMAP connectionRené 'Necoro' Neumann4-0/+152 2020-04-19Use our own logger for debug for convenience sakeRené 'Necoro' Neumann1-2/+3 2020-04-19Fix debug logging m(René 'Necoro' Neumann1-2/+2 2020-04-19Rename util.go to log.go. Add verbose modeRené 'Necoro' Neumann4-24/+54 2020-04-19Clean go.modRené 'Necoro' Neumann2-3/+0 2020-04-19Do not print the parsedCfg anymoreRené 'Necoro' Neumann1-1/+1 2020-04-19Increase go-version to 1.14René 'Necoro' Neumann1-2/+2 2020-04-19CI: go vetRené 'Necoro' Neumann1-0/+3 2020-04-19Fetching and parsing the feedsRené 'Necoro' Neumann5-4/+113 2020-04-19Ignore all config*.ymlRené 'Necoro' Neumann1-1/+1