tests: Use 'gpg-agent --allow-loopback-pinentry' if applicable.

* lang/python/tests/Makefile.am (gpg-agent.conf): Do not hard-code the
option.  This breaks gpg-agent from GnuPG 2.0.
* tests/start-stop-agent: Rather, check if the option is supported and
add it to the configuration if it is.

GnuPG-bug-id: 3008
Fixes-commit: bbf19124bb
Signed-off-by: Justus Winter <justus@g10code.com>
This commit is contained in:
Justus Winter 2017-03-20 16:36:27 +01:00
parent e1cf8bab31
commit 16b202d999
No known key found for this signature in database
GPG Key ID: DD1A52F9DA8C9020
2 changed files with 8 additions and 1 deletions

View File

@ -117,4 +117,3 @@ clean-local:
./gpg-agent.conf:
# This is required for gpg2, which does not support command fd.
echo pinentry-program $(abs_top_srcdir)/tests/gpg/pinentry >$@
echo allow-loopback-pinentry >>$@

View File

@ -38,6 +38,14 @@ fi
echo "starting gpg-agent.." >&2
# GnuPG prior to 2.1.12 needs --allow-loopback-pinentry for the
# loopback entry to work. Old versions do not understand this though,
# so we need to be careful.
if "$GPG_AGENT" --gpgconf-test --allow-loopback-pinentry &&
! grep -q allow-loopback-pinentry "$GNUPGHOME/gpg-agent.conf"; then
echo allow-loopback-pinentry >> "$GNUPGHOME/gpg-agent.conf"
fi
gpg-connect-agent --agent-program="${GPG_AGENT}|--debug-quick-random" putval\ $token\ set /bye
if [ $? -ne 0 -o "$(gpg-connect-agent getval\ $token /bye 2>/dev/null | head -1)" \
!= "D set" ]; then