diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2013-08-17 14:58:50 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2013-08-17 14:58:50 -0300 |
commit | 5ac5cb997139addd2fde0f8a35b2d7859460c4af (patch) | |
tree | 573fc4680c42ae1e659ccf14fb99a5caa7464db4 | |
parent | fa8b699d01f21a61db7672945dddcde4c3170f96 (diff) | |
download | keyringer-feature/multiple.tar.gz keyringer-feature/multiple.tar.bz2 |
Initial code for encrypting a whole treefeature/multiple
-rwxr-xr-x | share/keyringer/encrypt | 80 |
1 files 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 |