keyringer <keyring> encrypt <file>
+Encrypting a key from a file
+
+ keyringer <keyring> encrypt <plaintext-file> <file>
+
Decrypting a key (only to stdout)
keyringer <keyring> decrypt <file>
source "$LIB" || exit 1
# Aditional parameters
-keyringer_get_new_file "$2"
+if [ ! -z "$3" ]; then
+ UNENCRYPTED_FILE="$2"
+ keyringer_get_new_file "$3"
+
+ if [ ! -f "$UNENCRYPTED_FILE" ]; then
+ echo "Error: cannot encrypted $UNENCRYPTED_FILE: file not found."
+ exit 1
+ fi
+else
+ UNENCRYPTED_FILE="-"
+ keyringer_get_new_file "$2"
+fi
# Set recipients file
keyringer_set_recipients "$FILE"
if [ "$BASENAME" == "encrypt" ]; then
# Only display directions if we're running encrypt, not encrypt-batch
- echo "Type your message and finish your input with EOF (Ctrl-D)."
+ if [ "$UNENCRYPTED_FILE" == "-" ]; then
+ echo "Type your message and finish your input with EOF (Ctrl-D)."
+ fi
fi
-$GPG --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS_FILE") - > "$KEYDIR/$FILE"
+$GPG --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS_FILE") --yes --output "$KEYDIR/$FILE" $UNENCRYPTED_FILE
err="$?"
: Edits a secret by temporarily decrypting it, opening the decrypted copy into *$EDITOR*
and then recrypting it again.
-encrypt <*SECRET*>
-: Encrypts content from standard input into *SECRET*.
+encrypt [*file*] <*SECRET*>
+: Encrypts content from standard input or *file* into *SECRET*.
encrypt-batch <*SECRET*>
: Encrypt content, batch mode.