From 5ac5cb997139addd2fde0f8a35b2d7859460c4af Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 17 Aug 2013 14:58:50 -0300 Subject: Initial code for encrypting a whole tree --- share/keyringer/encrypt | 80 +++++++++++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 33 deletions(-) diff --git a/share/keyringer/encrypt b/share/keyringer/encrypt index c0b7874..21b77aa 100755 --- a/share/keyringer/encrypt +++ b/share/keyringer/encrypt @@ -7,48 +7,62 @@ LIB="`dirname $0`/../../lib/keyringer/functions" source "$LIB" || exit 1 -# Aditional parameters -if [ ! -z "$3" ]; then - UNENCRYPTED_FILE="$2" - keyringer_get_new_file "$3" +# Encrypt a secret +function keyringer_encrypt { + # Set recipients file + keyringer_set_recipients "$FILE" - if [ ! -f "$UNENCRYPTED_FILE" ]; then - echo "Error: cannot encrypted $UNENCRYPTED_FILE: file not found." - exit 1 + # Encrypt + mkdir -p "$KEYDIR/`dirname $FILE`" + + if [ "$BASENAME" == "encrypt" ]; then + # Only display directions if we're running encrypt, not encrypt-batch + if [ "$UNENCRYPTED_FILE" == "-" ]; then + echo "Type your message and finish your input with EOF (Ctrl-D)." + fi fi -else - UNENCRYPTED_FILE="-" - keyringer_get_new_file "$2" -fi -# Set recipients file -keyringer_set_recipients "$FILE" + $GPG --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS_FILE") --yes --output "$KEYDIR/$FILE" $UNENCRYPTED_FILE -# Encrypt -mkdir -p "$KEYDIR/`dirname $FILE`" + err="$?" -if [ "$BASENAME" == "encrypt" ]; then - # Only display directions if we're running encrypt, not encrypt-batch - if [ "$UNENCRYPTED_FILE" == "-" ]; then - echo "Type your message and finish your input with EOF (Ctrl-D)." + if [ "$err" != "0" ]; then + exit "$err" fi -fi -$GPG --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS_FILE") --yes --output "$KEYDIR/$FILE" $UNENCRYPTED_FILE + if [ "$UNENCRYPTED_FILE" != "-" ]; then + echo "Now make to wipe the non-encrypted $UNENCRYPTED_FILE." + fi -err="$?" + # Stage + if [ -d "$BASEDIR/.git" ]; then + keyringer_exec git "$BASEDIR" add "keys/$FILE" + fi -if [ "$err" != "0" ]; then - exit "$err" -fi + exit "$?" +} -if [ "$UNENCRYPTED_FILE" != "-" ]; then - echo "Now make to wipe the non-encrypted $UNENCRYPTED_FILE." -fi +# Aditional parameters +if [ ! -z "$3" ]; then + UNENCRYPTED_FILE="$2" + keyringer_get_new_file "$3" -# Stage -if [ -d "$BASEDIR/.git" ]; then - keyringer_exec git "$BASEDIR" add "keys/$FILE" -fi + if [ ! -e "$UNENCRYPTED_FILE" ]; then + echo "Error: cannot encrypt $UNENCRYPTED_FILE: file not found." + exit 1 + fi + + # TODO: $FILE shall be prepended by unencrypted file's relative pathname + if [ -d "$UNENCRYPTED_FILE" ]; + for UNENCRYPTED_FILE in `find -type f $INPUTS`; do + keyringer_encrypt + done + else + keyringer_encrypt + fi -exit "$?" +else + UNENCRYPTED_FILE="-" + keyringer_get_new_file "$2" + keyringer_encrypt +fi -- cgit v1.2.3