aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2013-08-17 14:58:50 -0300
committerSilvio Rhatto <rhatto@riseup.net>2013-08-17 14:58:50 -0300
commit5ac5cb997139addd2fde0f8a35b2d7859460c4af (patch)
tree573fc4680c42ae1e659ccf14fb99a5caa7464db4
parentfa8b699d01f21a61db7672945dddcde4c3170f96 (diff)
downloadkeyringer-feature/multiple.tar.gz
keyringer-feature/multiple.tar.bz2
Initial code for encrypting a whole treefeature/multiple
-rwxr-xr-xshare/keyringer/encrypt80
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