tnew parsing for gpg_decrypt function - tomb - the crypto undertaker
HTML git clone git://parazyd.org/tomb.git
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
DIR commit df75c39a584d05eba4f7c575d0b5b650bf2c9b01
DIR parent 4b1afb4fab83984b8fb4b3c27c6b5ccabdce93d5
HTML Author: Jaromil <jaromil@dyne.org>
Date: Mon, 26 Dec 2016 12:12:34 +0100
new parsing for gpg_decrypt function
tthis new parser works with all ZSh versions and brings overall
improvement by eliminating the invocation of exernal binary `grep`
over the secret data.
Diffstat:
M tomb | 28 +++++++++++++++-------------
1 file changed, 15 insertions(+), 13 deletions(-)
---
DIR diff --git a/tomb b/tomb
t@@ -919,6 +919,7 @@ gpg_decrypt() {
local gpgver=$(gpg --version --no-permission-warning | awk '/^gpg/ {print $3}')
local gpgpass="$1\n$TOMBKEY"
local gpgstatus
+ local tmpres
[[ $gpgver == "1.4.11" ]] && {
_verbose "GnuPG is version 1.4.11 - adopting status fix."
t@@ -927,23 +928,24 @@ gpg_decrypt() {
gpg --batch --passphrase-fd 0 --no-tty --no-options`
ret=$?
unset gpgpass
+ return $ret
+ }
- } || { # using status-file in gpg != 1.4.11
-
- TOMBSECRET=`print - "$gpgpass" | \
- gpg --batch --passphrase-fd 0 --no-tty --no-options \
+ _tmp_create
+ tmpres=$TOMBTMP
+ print - "$gpgpass" | \
+ gpg --batch --passphrase-fd 0 --no-tty --no-options \
--status-fd 2 --no-mdc-warning --no-permission-warning \
- --no-secmem-warning` |& grep GNUPG: \
- | read -r -d'\n' gpgstatus
-
- unset gpgpass
-
- ret=1
-
- [[ "${gpgstatus}" =~ "DECRYPTION_OKAY" ]] && { ret=0 }
+ --no-secmem-warning 2> $tmpres \
+ | read -r -d'\n' TOMBSECRET
+ unset gpgpass
- }
+ ret=1
+ for i in ${(f)"$(cat $tmpres)"}; do
+ _verbose "$i"
+ [[ "$i" =~ "DECRYPTION_OKAY" ]] && { ret=0 }
+ done
return $ret
}