From: Silvio Rhatto Date: Tue, 26 Feb 2013 16:01:34 +0000 (-0300) Subject: Recrypt only when decrypt is successful (#6) X-Git-Tag: 0.2.1~46 X-Git-Url: https://gitweb.fluxo.info/?a=commitdiff_plain;h=4153129f3ae06a7dca7085e05e278232bbb81d32;p=keyringer.git Recrypt only when decrypt is successful (#6) --- diff --git a/share/keyringer/decrypt b/share/keyringer/decrypt index adc1134..bab9b34 100755 --- a/share/keyringer/decrypt +++ b/share/keyringer/decrypt @@ -12,3 +12,6 @@ keyringer_get_file "$2" # Decrypt $GPG --quiet --use-agent -d "$KEYDIR/$FILE" + +# Exit +exit "$?" diff --git a/share/keyringer/recrypt b/share/keyringer/recrypt index cbf1af9..fc16603 100755 --- a/share/keyringer/recrypt +++ b/share/keyringer/recrypt @@ -14,6 +14,16 @@ function keyringer_recrypt { # Set recipients file keyringer_set_recipients "$FILE" + # Test decryption + $GPG --use-agent -d "$KEYDIR/$FILE" > /dev/null + + err="$?" + + if [ "$err" != "0" ]; then + echo "$BASENAME: decryption failed. Can't recrypt." + exit "$err" + fi + # Recrypt $GPG --use-agent -d "$KEYDIR/$FILE" | $GPG --use-agent --armor -e -s $(keyringer_recipients "$RECIPIENTS_FILE") > "$KEYDIR/$FILE"