diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2012-02-27 11:25:28 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2012-02-27 11:25:28 -0300 |
commit | e6d3f3e0c5671ff853404a962d856ec493b8dbdb (patch) | |
tree | 61959b54f3b2ac214de733472f77bf8872bd1c2b /share | |
parent | 8fa3ddbc6cdf5adb3414c782ff83c371b17d38d8 (diff) | |
download | keyringer-e6d3f3e0c5671ff853404a962d856ec493b8dbdb.tar.gz keyringer-e6d3f3e0c5671ff853404a962d856ec493b8dbdb.tar.bz2 |
Multiple recipients file support
Diffstat (limited to 'share')
-rwxr-xr-x | share/keyringer/edit | 5 | ||||
-rwxr-xr-x | share/keyringer/encrypt | 5 | ||||
-rwxr-xr-x | share/keyringer/recipients | 31 | ||||
-rwxr-xr-x | share/keyringer/recrypt | 5 |
4 files changed, 40 insertions, 6 deletions
diff --git a/share/keyringer/edit b/share/keyringer/edit index 73a59d9..10798e2 100755 --- a/share/keyringer/edit +++ b/share/keyringer/edit @@ -10,6 +10,9 @@ source "$LIB" || exit 1 # Get file keyringer_get_file "$2" +# Set recipients file +keyringer_set_recipients "$FILE" + # Warn user echo "Make sure that $BASEDIR is atop of an encrypted volume." @@ -25,7 +28,7 @@ read key "$EDITOR" "$TMPWORK" # Encrypt again -$GPG --yes -o "$KEYDIR/$FILE" --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS") "$TMPWORK" +$GPG --yes -o "$KEYDIR/$FILE" --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS_FILE") "$TMPWORK" # Remove temp file keyringer_unset_tmpfile "$TMPWORK" diff --git a/share/keyringer/encrypt b/share/keyringer/encrypt index 709aac3..da0941f 100755 --- a/share/keyringer/encrypt +++ b/share/keyringer/encrypt @@ -10,6 +10,9 @@ source "$LIB" || exit 1 # Aditional parameters keyringer_get_new_file "$2" +# Set recipients file +keyringer_set_recipients "$FILE" + # Encrypt mkdir -p "$KEYDIR/`dirname $FILE`" @@ -18,7 +21,7 @@ if [ "$BASENAME" == "encrypt" ]; then echo "Type your message and finish your input with EOF (Ctrl-D)." fi -$GPG --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS") - > "$KEYDIR/$FILE" +$GPG --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS_FILE") - > "$KEYDIR/$FILE" # Stage if [ -d "$BASEDIR/.git" ]; then diff --git a/share/keyringer/recipients b/share/keyringer/recipients index 2fe2ddf..ab61bd7 100755 --- a/share/keyringer/recipients +++ b/share/keyringer/recipients @@ -10,11 +10,36 @@ source "$LIB/functions" || exit 1 # Command parser keyringer_get_command "$2" +# Set recipients file +keyringer_set_new_recipients "$3" + if [ "$COMMAND" == "ls" ]; then - cat "$RECIPIENTS" + if [ ! -z "$3" ]; then + if [ -e "$RECIPIENTS_FILE" ]; then + cat "$RECIPIENTS_FILE" + else + echo "Recipients file not found: $RECIPIENTS_FILE_BASE" + exit 1 + fi + else + for recipients in `ls $RECIPIENTS`; do + echo "In recipients file $recipients:" + echo "-----------------------------------------------------------------------------------" + cat $RECIPIENTS/$recipients + echo "" + done + fi elif [ "$COMMAND" == "edit" ]; then - "$EDITOR" "$RECIPIENTS" - keyringer_check_recipients + if [ ! -z "$3" ]; then + keyringer_create_new_recipients $RECIPIENTS_FILE + "$EDITOR" "$RECIPIENTS_FILE" + keyringer_check_recipients + keyringer_exec git "$BASEDIR" add "$RECIPIENTS_FILE_BASE" + else + echo "Please specify one recipient to edit among the available:" + ls $RECIPIENTS | sed -e 's/^/\t/' + exit 1 + fi else printf "%s: No such command %s\n" "$BASENAME" "$COMMAND" exit 1 diff --git a/share/keyringer/recrypt b/share/keyringer/recrypt index 438039d..cbf1af9 100755 --- a/share/keyringer/recrypt +++ b/share/keyringer/recrypt @@ -11,8 +11,11 @@ function keyringer_recrypt { # Get file keyringer_get_file "$1" + # Set recipients file + keyringer_set_recipients "$FILE" + # Recrypt - $GPG --use-agent -d "$KEYDIR/$FILE" | $GPG --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS") > "$KEYDIR/$FILE" + $GPG --use-agent -d "$KEYDIR/$FILE" | $GPG --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS_FILE") > "$KEYDIR/$FILE" if [ "$?" != "0" ]; then exit 1 |