summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJinWang An <jinwang.an@samsung.com>2021-12-01 16:54:35 +0900
committerJinWang An <jinwang.an@samsung.com>2021-12-01 16:54:35 +0900
commit1c25bd8f2d05ddcc1502bc0d59e23e038dfa6d60 (patch)
tree0ec8a9dde426046cb1c97907fe834c9a2794f87b
parent52732d4bead8f505c109dc4242a044275f1b6833 (diff)
downloadgpgme-1c25bd8f2d05ddcc1502bc0d59e23e038dfa6d60.tar.gz
gpgme-1c25bd8f2d05ddcc1502bc0d59e23e038dfa6d60.tar.bz2
gpgme-1c25bd8f2d05ddcc1502bc0d59e23e038dfa6d60.zip
Imported Upstream version 1.5.5upstream/1.5.5
-rw-r--r--AUTHORS2
-rw-r--r--ChangeLog42
-rw-r--r--NEWS10
-rw-r--r--VERSION2
-rwxr-xr-xconfigure30
-rw-r--r--configure.ac4
-rw-r--r--doc/gpgme.info4
-rw-r--r--doc/gpgme.info-18
-rw-r--r--doc/gpgme.info-2bin42141 -> 42141 bytes
-rw-r--r--doc/stamp-vti4
-rw-r--r--doc/version.texi4
-rw-r--r--gpgme.spec2
-rw-r--r--lang/cl/gpgme.asd2
-rw-r--r--src/Makefile.in4
-rw-r--r--src/debug.c19
-rw-r--r--src/debug.h63
-rw-r--r--src/engine-gpg.c1
-rw-r--r--src/engine-gpgsm.c46
-rw-r--r--src/verify.c7
-rw-r--r--tests/Makefile.am2
-rw-r--r--tests/Makefile.in2
-rw-r--r--tests/gpg/Makefile.am23
-rw-r--r--tests/gpg/Makefile.in24
-rwxr-xr-xtests/gpg/final.test2
-rwxr-xr-xtests/gpg/initial.test2
-rw-r--r--tests/gpgsm/Makefile.am20
-rw-r--r--tests/gpgsm/Makefile.in18
-rwxr-xr-xtests/gpgsm/final.test5
-rwxr-xr-xtests/gpgsm/initial.test4
-rw-r--r--tests/run-keylist.c9
-rwxr-xr-xtests/start-stop-agent (renamed from tests/gpg/start-stop-agent)0
31 files changed, 247 insertions, 118 deletions
diff --git a/AUTHORS b/AUTHORS
index 6197416..dd4b492 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -3,7 +3,7 @@ Homepage: http://www.gnupg.org/related_software/gpgme/
Download: ftp://ftp.gnupg.org/gcrypt/gpgme/
Repository: git://git.gnupg.org/gpgme.git
Maintainer: Werner Koch <wk@gnupg.org>
-Bug reports: http://bugs.gnupg.org (use category "gpgme")
+Bug reports: https://bugs.gnupg.org (use category "gpgme")
Security related bug reports: security@gnupg.org
License (software): LGPLv2.1+
License (manual+tools): GPLv3+
diff --git a/ChangeLog b/ChangeLog
index cd2c5db..1008491 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,45 @@
+2015-06-08 Werner Koch <wk@gnupg.org>
+
+ Release 1.5.5.
+
+ Fix regression with gpgsm 2.0 due to "OPTION with-secret".
+ * src/engine-gpgsm.c (gpgsm_assuan_simple_command): Do not terminate
+ on a status lines.
+
+ tests: Add option --secret to run-keylist.
+
+ Fix compiler warnings about unused value in TRACE macros.
+ * src/debug.h: Change macros to not have a literal 0 as last
+ expression of the comma operator.
+ * src/debug.c (_gpgme_debug_frame_end): Return 0.
+ (_gpgme_debug): Return 0.
+
+ Fix test suite for GnuPG 2.1 which uses pubring.kbx.
+ * tests/gpgsm/final.test: New.
+ * tests/gpgsm/initial.test: New.
+ * tests/gpg/start-stop-agent: Move to ../.
+ * tests/gpgsm/Makefile.am (TESTS_ENVIRONMENT): Export top_srcdir.
+ (TESTS): Add intial.test and final.test.
+ (AM_LDFLAGS): Add -no-install.
+ (clean-local): Use start-stop-agent
+ (initial.test): Add dependency.
+ * tests/gpg/Makefile.am (top_srcdir): Export top_srcdir.
+ (AM_LDFLAGS): Add -no-install.
+ (check-local): Depend on pubring-stamp instead of pubring.gpg.
+ (initial.test): Depend on check-local.
+ (./pubring-gpg): Replace by rule for ./pubring-stamp.
+
+2015-06-05 Matthew Barnes <mbarnes@redhat.com>
+
+ Set GPGME_SIGSUM_KEY_REVOKED also for gpg.
+ * src/verify.c (calc_sig_summary): Handle GPG_ERR_CERT_REVOKED.
+
+2015-06-05 Werner Koch <wk@gnupg.org>
+
+ Fix segv for userids with a backslash.
+ * src/engine-gpg.c (gpg_keylist_preprocess): Increment SRC for a
+ backslash.
+
2015-04-13 Werner Koch <wk@gnupg.org>
Release 1.5.4.
diff --git a/NEWS b/NEWS
index dc3bbfc..8e9472a 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,13 @@
+Noteworthy changes in version 1.5.5 (2015-06-08) [C24/A13/R4]
+------------------------------------------------
+
+ * Fixed crash in key listings for user ids with a backslash.
+
+ * Fixed regression for GPGSM use with GnuPG < 2.1.
+
+ * Properly set signature summary for revoked OpenPGP keys.
+
+
Noteworthy changes in version 1.5.4 (2015-04-13) [C24/A13/R3]
------------------------------------------------
diff --git a/VERSION b/VERSION
index 94fe62c..9075be4 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.5.4
+1.5.5
diff --git a/configure b/configure
index f93da1d..4d9c0e5 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gpgme 1.5.4.
+# Generated by GNU Autoconf 2.69 for gpgme 1.5.5.
#
# Report bugs to <http://bugs.gnupg.org>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='gpgme'
PACKAGE_TARNAME='gpgme'
-PACKAGE_VERSION='1.5.4'
-PACKAGE_STRING='gpgme 1.5.4'
+PACKAGE_VERSION='1.5.5'
+PACKAGE_STRING='gpgme 1.5.5'
PACKAGE_BUGREPORT='http://bugs.gnupg.org'
PACKAGE_URL=''
@@ -1409,7 +1409,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gpgme 1.5.4 to adapt to many kinds of systems.
+\`configure' configures gpgme 1.5.5 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1479,7 +1479,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gpgme 1.5.4:";;
+ short | recursive ) echo "Configuration of gpgme 1.5.5:";;
esac
cat <<\_ACEOF
@@ -1607,7 +1607,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gpgme configure 1.5.4
+gpgme configure 1.5.5
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2437,7 +2437,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gpgme $as_me 1.5.4, which was
+It was created by gpgme $as_me 1.5.5, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2804,7 +2804,7 @@ LIBGPGME_LT_CURRENT=24
# Subtract 2 from this value if you want to make the LFS transition an
# ABI break. [Note to self: Remove this comment with the next regular break.]
LIBGPGME_LT_AGE=13
-LIBGPGME_LT_REVISION=3
+LIBGPGME_LT_REVISION=4
# If the API is changed in an incompatible way: increment the next counter.
GPGME_CONFIG_API_VERSION=1
@@ -3337,7 +3337,7 @@ fi
# Define the identity of the package.
PACKAGE='gpgme'
- VERSION='1.5.4'
+ VERSION='1.5.5'
cat >>confdefs.h <<_ACEOF
@@ -6241,7 +6241,7 @@ cat >>confdefs.h <<_ACEOF
#define VERSION "$VERSION"
_ACEOF
-VERSION_NUMBER=0x010504
+VERSION_NUMBER=0x010505
# Don't default to build static libs.
@@ -17585,7 +17585,7 @@ fi
#
# Provide information about the build.
#
-BUILD_REVISION="d2712d9"
+BUILD_REVISION="052a9e3"
cat >>confdefs.h <<_ACEOF
@@ -17594,7 +17594,7 @@ _ACEOF
BUILD_FILEVERSION=`echo "$PACKAGE_VERSION"|sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
-BUILD_FILEVERSION="${BUILD_FILEVERSION}53873"
+BUILD_FILEVERSION="${BUILD_FILEVERSION}1322"
BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+0000 2>/dev/null || date`
@@ -19843,7 +19843,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gpgme $as_me 1.5.4, which was
+This file was extended by gpgme $as_me 1.5.5, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -19909,7 +19909,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gpgme config.status 1.5.4
+gpgme config.status 1.5.5
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -22201,7 +22201,7 @@ fi
echo "
GPGME v${VERSION} has been configured as follows:
- Revision: d2712d9 (53873)
+ Revision: 052a9e3 (1322)
Platform: $host
UI Server: $uiserver
diff --git a/configure.ac b/configure.ac
index 298a22b..7f03170 100644
--- a/configure.ac
+++ b/configure.ac
@@ -29,7 +29,7 @@ min_automake_version="1.14"
# for the LT versions.
m4_define(mym4_version_major, [1])
m4_define(mym4_version_minor, [5])
-m4_define(mym4_version_micro, [4])
+m4_define(mym4_version_micro, [5])
# Below is m4 magic to extract and compute the revision number, the
# decimalized short revision number, a beta version string, and a flag
@@ -59,7 +59,7 @@ LIBGPGME_LT_CURRENT=24
# Subtract 2 from this value if you want to make the LFS transition an
# ABI break. [Note to self: Remove this comment with the next regular break.]
LIBGPGME_LT_AGE=13
-LIBGPGME_LT_REVISION=3
+LIBGPGME_LT_REVISION=4
# If the API is changed in an incompatible way: increment the next counter.
GPGME_CONFIG_API_VERSION=1
diff --git a/doc/gpgme.info b/doc/gpgme.info
index 1517835..b2ee2d4 100644
--- a/doc/gpgme.info
+++ b/doc/gpgme.info
@@ -20,8 +20,8 @@ END-INFO-DIR-ENTRY
This file documents the GPGME library.
- This is Edition 1.5.4, last updated 6 November 2014, of ‘The ‘GnuPG
-Made Easy’ Reference Manual’, for Version 1.5.4.
+ This is Edition 1.5.5, last updated 6 November 2014, of ‘The ‘GnuPG
+Made Easy’ Reference Manual’, for Version 1.5.5.
Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2012,
2013, 2014 g10 Code GmbH.
diff --git a/doc/gpgme.info-1 b/doc/gpgme.info-1
index 96646d8..3ae7217 100644
--- a/doc/gpgme.info-1
+++ b/doc/gpgme.info-1
@@ -20,8 +20,8 @@ END-INFO-DIR-ENTRY
This file documents the GPGME library.
- This is Edition 1.5.4, last updated 6 November 2014, of ‘The ‘GnuPG
-Made Easy’ Reference Manual’, for Version 1.5.4.
+ This is Edition 1.5.5, last updated 6 November 2014, of ‘The ‘GnuPG
+Made Easy’ Reference Manual’, for Version 1.5.5.
Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2012,
2013, 2014 g10 Code GmbH.
@@ -43,8 +43,8 @@ File: gpgme.info, Node: Top, Next: Introduction, Up: (dir)
Main Menu
*********
-This is Edition 1.5.4, last updated 6 November 2014, of ‘The ‘GnuPG Made
-Easy’ Reference Manual’, for Version 1.5.4 of the GPGME library.
+This is Edition 1.5.5, last updated 6 November 2014, of ‘The ‘GnuPG Made
+Easy’ Reference Manual’, for Version 1.5.5 of the GPGME library.
* Menu:
diff --git a/doc/gpgme.info-2 b/doc/gpgme.info-2
index c407ef6..543c024 100644
--- a/doc/gpgme.info-2
+++ b/doc/gpgme.info-2
Binary files differ
diff --git a/doc/stamp-vti b/doc/stamp-vti
index bca6c50..8ad6a99 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -1,4 +1,4 @@
@set UPDATED 6 November 2014
@set UPDATED-MONTH November 2014
-@set EDITION 1.5.4
-@set VERSION 1.5.4
+@set EDITION 1.5.5
+@set VERSION 1.5.5
diff --git a/doc/version.texi b/doc/version.texi
index bca6c50..8ad6a99 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,4 +1,4 @@
@set UPDATED 6 November 2014
@set UPDATED-MONTH November 2014
-@set EDITION 1.5.4
-@set VERSION 1.5.4
+@set EDITION 1.5.5
+@set VERSION 1.5.5
diff --git a/gpgme.spec b/gpgme.spec
index e131d64..59c1afa 100644
--- a/gpgme.spec
+++ b/gpgme.spec
@@ -1,7 +1,7 @@
# This is a template. The dist target uses it to create the real file.
Summary: GPGME - GnuPG Made Easy
Name: gpgme
-Version: 1.5.4
+Version: 1.5.5
Release: 1
URL: http://www.gnupg.org/gpgme.html
Source: ftp://ftp.gnupg.org/gcrypt/alpha/gpgme/%{name}-%{version}.tar.gz
diff --git a/lang/cl/gpgme.asd b/lang/cl/gpgme.asd
index 6910ec1..bc8bf0a 100644
--- a/lang/cl/gpgme.asd
+++ b/lang/cl/gpgme.asd
@@ -27,7 +27,7 @@
(defsystem gpgme
:description "GnuPG Made Easy."
:author "g10 Code GmbH"
- :version "1.5.4"
+ :version "1.5.5"
:licence "GPL"
:depends-on ("cffi" "gpg-error")
:components ((:file "gpgme-package")
diff --git a/src/Makefile.in b/src/Makefile.in
index 0e97fa2..bdfcaf2 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -107,8 +107,8 @@ subdir = src
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/build-aux/mkinstalldirs \
$(srcdir)/versioninfo.rc.in $(srcdir)/gpgme.h.in \
- $(srcdir)/gpgme-config.in ttyname_r.c vasprintf.c funopen.c \
- setenv.c stpcpy.c $(top_srcdir)/build-aux/depcomp
+ $(srcdir)/gpgme-config.in setenv.c funopen.c stpcpy.c \
+ vasprintf.c ttyname_r.c $(top_srcdir)/build-aux/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/glib-2.0.m4 \
$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnupg-ttyname.m4 \
diff --git a/src/debug.c b/src/debug.c
index ca0bb21..292db55 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -80,11 +80,12 @@ _gpgme_debug_frame_begin (void)
#endif
}
-void _gpgme_debug_frame_end (void)
+int _gpgme_debug_frame_end (void)
{
#ifdef FRAME_NR
frame_nr--;
#endif
+ return 0;
}
@@ -223,8 +224,17 @@ _gpgme_debug_subsystem_init (void)
-/* Log the formatted string FORMAT at debug level LEVEL or higher. */
-void
+/* Log the formatted string FORMAT at debug level LEVEL or higher.
+ *
+ * Returns: 0
+ *
+ * Note that we always return 0 because the old TRACE macro evaluated
+ * to 0 which issues a warning with newer gcc version about an unused
+ * values. By using a return value of this function this can be
+ * avoided. Fixme: It might be useful to check whether the return
+ * value from the TRACE macros are actually used somewhere.
+ */
+int
_gpgme_debug (int level, const char *format, ...)
{
va_list arg_ptr;
@@ -232,7 +242,7 @@ _gpgme_debug (int level, const char *format, ...)
saved_errno = errno;
if (debug_level < level)
- return;
+ return 0;
va_start (arg_ptr, format);
LOCK (debug_lock);
@@ -273,6 +283,7 @@ _gpgme_debug (int level, const char *format, ...)
fflush (errfp);
gpg_err_set_errno (saved_errno);
+ return 0;
}
diff --git a/src/debug.h b/src/debug.h
index d0db573..6bde998 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -64,7 +64,7 @@ int _gpgme_debug_set_debug_envvar (const char *value);
void _gpgme_debug_subsystem_init (void);
/* Log the formatted string FORMAT at debug level LEVEL or higher. */
-void _gpgme_debug (int level, const char *format, ...);
+int _gpgme_debug (int level, const char *format, ...);
/* Start a new debug line in *LINE, logged at level LEVEL or higher,
and starting with the formatted string FORMAT. */
@@ -82,7 +82,7 @@ void _gpgme_debug_buffer (int lvl, const char *const fmt,
size_t len);
void _gpgme_debug_frame_begin (void);
-void _gpgme_debug_frame_end (void);
+int _gpgme_debug_frame_end (void);
static inline gpgme_error_t
_gpgme_trace_gpgme_error (gpgme_error_t err, const char *file, int line)
@@ -108,82 +108,80 @@ _gpgme_trace_gpgme_error (gpgme_error_t err, const char *file, int line)
#define TRACE_BEG(lvl, name, tag) \
_TRACE (lvl, name, tag); \
_gpgme_debug (_gpgme_trace_level, "%s: enter: %s=%p\n", \
- _gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag), 0
+ _gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag)
#define TRACE_BEG0(lvl, name, tag, fmt) \
_TRACE (lvl, name, tag); \
_gpgme_debug (_gpgme_trace_level, "%s: enter: %s=%p, " fmt "\n", \
- _gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag), 0
+ _gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag)
#define TRACE_BEG1(lvl, name, tag, fmt, arg1) \
_TRACE (lvl, name, tag); \
_gpgme_debug (_gpgme_trace_level, "%s: enter: %s=%p, " fmt "\n", \
_gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag, \
- arg1), 0
+ arg1)
#define TRACE_BEG2(lvl, name, tag, fmt, arg1, arg2) \
_TRACE (lvl, name, tag); \
_gpgme_debug (_gpgme_trace_level, "%s: enter: %s=%p, " fmt "\n", \
_gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag, \
- arg1, arg2), 0
+ arg1, arg2)
#define TRACE_BEG3(lvl, name, tag, fmt, arg1, arg2, arg3) \
_TRACE (lvl, name, tag); \
_gpgme_debug (_gpgme_trace_level, "%s: enter: %s=%p, " fmt "\n", \
_gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag, \
- arg1, arg2, arg3), 0
+ arg1, arg2, arg3)
#define TRACE_BEG4(lvl, name, tag, fmt, arg1, arg2, arg3, arg4) \
_TRACE (lvl, name, tag); \
_gpgme_debug (_gpgme_trace_level, "%s: enter: %s=%p, " fmt "\n", \
_gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag, \
- arg1, arg2, arg3, arg4), 0
+ arg1, arg2, arg3, arg4)
#define TRACE_BEG5(lvl, name, tag, fmt, arg1, arg2, arg3, arg4, arg5) \
_TRACE (lvl, name, tag); \
_gpgme_debug (_gpgme_trace_level, "%s: enter: %s=%p, " fmt "\n", \
_gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag, \
- arg1, arg2, arg3, arg4, arg5), 0
+ arg1, arg2, arg3, arg4, arg5)
#define TRACE_BEG7(lvl, name, tag, fmt, arg1, arg2, arg3, arg4, \
arg5, arg6, arg7) \
_TRACE (lvl, name, tag); \
_gpgme_debug (_gpgme_trace_level, "%s: enter: %s=%p, " fmt "\n", \
_gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag, \
- arg1, arg2, arg3, arg4, arg5, \
- arg6, arg7), 0
+ arg1, arg2, arg3, arg4, arg5, arg6, arg7)
#define TRACE_BEG8(lvl, name, tag, fmt, arg1, arg2, arg3, arg4, \
arg5, arg6, arg7, arg8) \
_TRACE (lvl, name, tag); \
_gpgme_debug (_gpgme_trace_level, "%s: enter: %s=%p, " fmt "\n", \
_gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag, \
- arg1, arg2, arg3, arg4, arg5, \
- arg6, arg7, arg8), 0
+ arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)
#define TRACE(lvl, name, tag) \
_gpgme_debug_frame_begin (), \
_gpgme_debug (lvl, "%s: call: %s=%p\n", \
name, STRINGIFY (tag), (void *) (uintptr_t) tag), \
- _gpgme_debug_frame_end (), 0
+ _gpgme_debug_frame_end ()
#define TRACE0(lvl, name, tag, fmt) \
_gpgme_debug_frame_begin (), \
_gpgme_debug (lvl, "%s: call: %s=%p, " fmt "\n", \
name, STRINGIFY (tag), (void *) (uintptr_t) tag), \
- _gpgme_debug_frame_end (), 0
+ _gpgme_debug_frame_end ()
#define TRACE1(lvl, name, tag, fmt, arg1) \
_gpgme_debug_frame_begin (), \
_gpgme_debug (lvl, "%s: call: %s=%p, " fmt "\n", \
name, STRINGIFY (tag), (void *) (uintptr_t) tag, arg1), \
- _gpgme_debug_frame_end (), 0
+ _gpgme_debug_frame_end ()
#define TRACE2(lvl, name, tag, fmt, arg1, arg2) \
_gpgme_debug_frame_begin (), \
_gpgme_debug (lvl, "%s: call: %s=%p, " fmt "\n", \
name, STRINGIFY (tag), (void *) (uintptr_t) tag, arg1, \
- arg2), _gpgme_debug_frame_end (), 0
+ arg2), _gpgme_debug_frame_end ()
#define TRACE3(lvl, name, tag, fmt, arg1, arg2, arg3) \
_gpgme_debug_frame_begin (), \
_gpgme_debug (lvl, "%s: call: %s=%p, " fmt "\n", \
name, STRINGIFY (tag), (void *) (uintptr_t) tag, arg1, \
- arg2, arg3), _gpgme_debug_frame_end (), 0
+ arg2, arg3), _gpgme_debug_frame_end ()
#define TRACE6(lvl, name, tag, fmt, arg1, arg2, arg3, arg4, arg5, arg6) \
_gpgme_debug_frame_begin (), \
_gpgme_debug (lvl, "%s: call: %s=%p, " fmt "\n", \
name, STRINGIFY (tag), (void *) (uintptr_t) tag, arg1, \
arg2, arg3, arg4, arg5, arg6), \
- _gpgme_debug_frame_end (), 0
+ _gpgme_debug_frame_end ()
#define TRACE_ERR(err) \
err == 0 ? (TRACE_SUC ()) : \
@@ -203,53 +201,52 @@ _gpgme_trace_gpgme_error (gpgme_error_t err, const char *file, int line)
#define TRACE_SUC() \
_gpgme_debug (_gpgme_trace_level, "%s: leave\n", \
- _gpgme_trace_func), _gpgme_debug_frame_end (), 0
+ _gpgme_trace_func), _gpgme_debug_frame_end ()
#define TRACE_SUC0(fmt) \
_gpgme_debug (_gpgme_trace_level, "%s: leave: " fmt "\n", \
- _gpgme_trace_func), _gpgme_debug_frame_end (), 0
+ _gpgme_trace_func), _gpgme_debug_frame_end ()
#define TRACE_SUC1(fmt, arg1) \
_gpgme_debug (_gpgme_trace_level, "%s: leave: " fmt "\n", \
- _gpgme_trace_func, arg1), _gpgme_debug_frame_end (), 0
+ _gpgme_trace_func, arg1), _gpgme_debug_frame_end ()
#define TRACE_SUC2(fmt, arg1, arg2) \
_gpgme_debug (_gpgme_trace_level, "%s: leave: " fmt "\n", \
- _gpgme_trace_func, arg1, arg2), _gpgme_debug_frame_end (), 0
+ _gpgme_trace_func, arg1, arg2), _gpgme_debug_frame_end ()
#define TRACE_SUC5(fmt, arg1, arg2, arg3, arg4, arg5) \
_gpgme_debug (_gpgme_trace_level, "%s: leave: " fmt "\n", \
_gpgme_trace_func, arg1, arg2, arg3, arg4, arg5), \
- _gpgme_debug_frame_end (), 0
+ _gpgme_debug_frame_end ()
#define TRACE_SUC6(fmt, arg1, arg2, arg3, arg4, arg5, arg6) \
_gpgme_debug (_gpgme_trace_level, "%s: leave: " fmt "\n", \
_gpgme_trace_func, arg1, arg2, arg3, arg4, arg5, arg6), \
- _gpgme_debug_frame_end (), 0
+ _gpgme_debug_frame_end ()
#define TRACE_LOG(fmt) \
_gpgme_debug (_gpgme_trace_level, "%s: check: %s=%p, " fmt "\n", \
- _gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag), 0
+ _gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag)
#define TRACE_LOG1(fmt, arg1) \
_gpgme_debug (_gpgme_trace_level, "%s: check: %s=%p, " fmt "\n", \
_gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag, \
- arg1), 0
+ arg1)
#define TRACE_LOG2(fmt, arg1, arg2) \
_gpgme_debug (_gpgme_trace_level, "%s: check: %s=%p, " fmt "\n", \
_gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag, \
- arg1, arg2), 0
+ arg1, arg2)
#define TRACE_LOG3(fmt, arg1, arg2, arg3) \
_gpgme_debug (_gpgme_trace_level, "%s: check: %s=%p, " fmt "\n", \
_gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag, \
- arg1, arg2, arg3), 0
+ arg1, arg2, arg3)
#define TRACE_LOG4(fmt, arg1, arg2, arg3, arg4) \
_gpgme_debug (_gpgme_trace_level, "%s: check: %s=%p, " fmt "\n", \
_gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag, \
- arg1, arg2, arg3, arg4), 0
+ arg1, arg2, arg3, arg4)
#define TRACE_LOG5(fmt, arg1, arg2, arg3, arg4, arg5) \
_gpgme_debug (_gpgme_trace_level, "%s: check: %s=%p, " fmt "\n", \
_gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag, \
- arg1, arg2, arg3, arg4, arg5), 0
+ arg1, arg2, arg3, arg4, arg5)
#define TRACE_LOG6(fmt, arg1, arg2, arg3, arg4, arg5, arg6) \
_gpgme_debug (_gpgme_trace_level, "%s: check: %s=%p, " fmt "\n", \
_gpgme_trace_func, _gpgme_trace_tagname, _gpgme_trace_tag, \
- arg1, arg2, arg3, arg4, arg5, \
- arg6), 0
+ arg1, arg2, arg3, arg4, arg5, arg6)
#define TRACE_LOGBUF(buf, len) \
_gpgme_debug_buffer (_gpgme_trace_level, "%s: check: %s", \
diff --git a/src/engine-gpg.c b/src/engine-gpg.c
index 57aea8b..e14fd8d 100644
--- a/src/engine-gpg.c
+++ b/src/engine-gpg.c
@@ -2194,6 +2194,7 @@ gpg_keylist_preprocess (char *line, char **r_line)
{
*dst++ = '\\';
*dst++ = '\\';
+ src++;
}
else
*(dst++) = *(src++);
diff --git a/src/engine-gpgsm.c b/src/engine-gpgsm.c
index 3a83757..ac6c5fc 100644
--- a/src/engine-gpgsm.c
+++ b/src/engine-gpgsm.c
@@ -564,7 +564,7 @@ gpgsm_assuan_simple_command (assuan_context_t ctx, char *cmd,
engine_status_handler_t status_fnc,
void *status_fnc_value)
{
- gpg_error_t err;
+ gpg_error_t err, cb_err;
char *line;
size_t linelen;
@@ -572,6 +572,7 @@ gpgsm_assuan_simple_command (assuan_context_t ctx, char *cmd,
if (err)
return err;
+ cb_err = 0;
do
{
err = assuan_read_line (ctx, &line, &linelen);
@@ -584,32 +585,45 @@ gpgsm_assuan_simple_command (assuan_context_t ctx, char *cmd,
if (linelen >= 2
&& line[0] == 'O' && line[1] == 'K'
&& (line[2] == '\0' || line[2] == ' '))
- return 0;
+ return cb_err;
else if (linelen >= 4
&& line[0] == 'E' && line[1] == 'R' && line[2] == 'R'
&& line[3] == ' ')
- err = atoi (&line[4]);
+ {
+ /* We prefer a callback generated error because that one is
+ more related to gpgme and thus probably more important
+ than the error returned by the engine. */
+ err = cb_err? cb_err : atoi (&line[4]);
+ }
else if (linelen >= 2
&& line[0] == 'S' && line[1] == ' ')
{
- char *rest;
- gpgme_status_code_t r;
+ /* After an error from a status callback we skip all further
+ status lines. */
+ if (!cb_err)
+ {
+ char *rest;
+ gpgme_status_code_t r;
- rest = strchr (line + 2, ' ');
- if (!rest)
- rest = line + linelen; /* set to an empty string */
- else
- *(rest++) = 0;
+ rest = strchr (line + 2, ' ');
+ if (!rest)
+ rest = line + linelen; /* set to an empty string */
+ else
+ *(rest++) = 0;
- r = _gpgme_parse_status (line + 2);
+ r = _gpgme_parse_status (line + 2);
- if (r >= 0 && status_fnc)
- err = status_fnc (status_fnc_value, r, rest);
- else
- err = gpg_error (GPG_ERR_GENERAL);
+ if (r >= 0 && status_fnc)
+ cb_err = status_fnc (status_fnc_value, r, rest);
+ }
}
else
- err = gpg_error (GPG_ERR_GENERAL);
+ {
+ /* Invalid line or INQUIRY. We can't do anything else than
+ to stop. As with ERR we prefer a status callback
+ generated error code, though. */
+ err = cb_err ? cb_err : gpg_error (GPG_ERR_GENERAL);
+ }
}
while (!err);
diff --git a/src/verify.c b/src/verify.c
index 37b2bd4..84487ee 100644
--- a/src/verify.c
+++ b/src/verify.c
@@ -195,6 +195,10 @@ calc_sig_summary (gpgme_signature_t sig)
sum |= GPGME_SIGSUM_KEY_MISSING;
break;
+ case GPG_ERR_CERT_REVOKED:
+ sum |= GPGME_SIGSUM_KEY_REVOKED;
+ break;
+
case GPG_ERR_BAD_SIGNATURE:
case GPG_ERR_NO_ERROR:
break;
@@ -213,6 +217,9 @@ calc_sig_summary (gpgme_signature_t sig)
break;
case GPG_ERR_CERT_REVOKED:
+ /* Note that this is a second way to set this flag. It may also
+ have been set due to a sig->status of STATUS_REVKEYSIG from
+ parse_new_sig. */
sum |= GPGME_SIGSUM_KEY_REVOKED;
break;
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 4b465d8..94eddac 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -23,7 +23,7 @@ TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir)
TESTS = t-version t-data t-engine-info
-EXTRA_DIST = t-data-1.txt t-data-2.txt ChangeLog-2011
+EXTRA_DIST = start-stop-agent t-data-1.txt t-data-2.txt ChangeLog-2011
AM_CPPFLAGS = -I$(top_builddir)/src @GPG_ERROR_CFLAGS@
LDADD = ../src/libgpgme.la @GPG_ERROR_LIBS@
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 87e58ca..183598e 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -444,7 +444,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir)
-EXTRA_DIST = t-data-1.txt t-data-2.txt ChangeLog-2011
+EXTRA_DIST = start-stop-agent t-data-1.txt t-data-2.txt ChangeLog-2011
AM_CPPFLAGS = -I$(top_builddir)/src @GPG_ERROR_CFLAGS@
LDADD = ../src/libgpgme.la @GPG_ERROR_LIBS@
noinst_HEADERS = run-support.h
diff --git a/tests/gpg/Makefile.am b/tests/gpg/Makefile.am
index 5f40dfe..107397b 100644
--- a/tests/gpg/Makefile.am
+++ b/tests/gpg/Makefile.am
@@ -22,7 +22,8 @@
GPG = gpg
GPG_AGENT = gpg-agent
-TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) LC_ALL=C GPG_AGENT_INFO=
+TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) LC_ALL=C GPG_AGENT_INFO= \
+ top_srcdir=$(top_srcdir)
# The keylist tests must come after the import and the edit test.
noinst_HEADERS = t-support.h
@@ -43,7 +44,7 @@ TESTS = initial.test $(c_tests) final.test
CLEANFILES = secring.gpg pubring.gpg pubring.kbx trustdb.gpg dirmngr.conf \
gpg-agent.conf pubring.kbx~ S.gpg-agent gpg.conf pubring.gpg~ \
- random_seed S.gpg-agent .gpg-v21-migrated
+ random_seed S.gpg-agent .gpg-v21-migrated pubring-stamp
private_keys = \
13CD0F3BDF24BE53FE192D62F18737256FF6E4FD \
@@ -53,11 +54,12 @@ private_keys = \
7A030357C0F253A5BBCD282FFC4E521B37558F5C
-EXTRA_DIST = start-stop-agent initial.test final.test \
+EXTRA_DIST = initial.test final.test \
pubdemo.asc secdemo.asc cipher-1.asc cipher-2.asc \
geheim.txt pubkey-1.asc seckey-1.asc pinentry $(private_keys)
AM_CPPFLAGS = -I$(top_builddir)/src @GPG_ERROR_CFLAGS@
+AM_LDFLAGS = -no-install
LDADD = ../../src/libgpgme.la
t_thread1_LDADD = ../../src/libgpgme-pthread.la -lpthread
@@ -65,12 +67,16 @@ t_thread1_LDADD = ../../src/libgpgme-pthread.la -lpthread
noinst_PROGRAMS = $(c_tests) t-genkey
clean-local:
- -$(srcdir)/start-stop-agent --stop
+ -$(top_srcdir)/tests/start-stop-agent --stop
-rm -fR private-keys-v1.d
-check-local: ./gpg.conf ./gpg-agent.conf ./pubring.gpg \
+check-local: ./gpg.conf ./gpg-agent.conf ./pubring-stamp \
./private-keys-v1.d/gpg-sample.stamp
+# To guarantee that check-local is run before any tests we
+# add this dependency:
+initial.test : check-local
+
export GNUPGHOME := $(abs_builddir)
export GPG_AGENT_INFO :=
@@ -82,11 +88,12 @@ export GPG_AGENT_INFO :=
done
echo x > ./private-keys-v1.d/gpg-sample.stamp
-./pubring.gpg: $(srcdir)/pubdemo.asc
- -$(GPG) --no-permission-warning \
- --import $(srcdir)/pubdemo.asc
+./pubring-stamp: $(srcdir)/pubdemo.asc
+ $(GPG) --no-permission-warning \
+ --import $(srcdir)/pubdemo.asc
-$(GPG) --no-permission-warning \
--import $(srcdir)/secdemo.asc
+ touch ./pubring-stamp
./gpg.conf:
# This is required for t-sig-notations.
diff --git a/tests/gpg/Makefile.in b/tests/gpg/Makefile.in
index c475e2c..3fbec6d 100644
--- a/tests/gpg/Makefile.in
+++ b/tests/gpg/Makefile.in
@@ -472,7 +472,9 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
GPG = gpg
GPG_AGENT = gpg-agent
-TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) LC_ALL=C GPG_AGENT_INFO=
+TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) LC_ALL=C GPG_AGENT_INFO= \
+ top_srcdir=$(top_srcdir)
+
# The keylist tests must come after the import and the edit test.
noinst_HEADERS = t-support.h
@@ -486,7 +488,7 @@ c_tests = \
CLEANFILES = secring.gpg pubring.gpg pubring.kbx trustdb.gpg dirmngr.conf \
gpg-agent.conf pubring.kbx~ S.gpg-agent gpg.conf pubring.gpg~ \
- random_seed S.gpg-agent .gpg-v21-migrated
+ random_seed S.gpg-agent .gpg-v21-migrated pubring-stamp
private_keys = \
13CD0F3BDF24BE53FE192D62F18737256FF6E4FD \
@@ -495,11 +497,12 @@ private_keys = \
13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F \
7A030357C0F253A5BBCD282FFC4E521B37558F5C
-EXTRA_DIST = start-stop-agent initial.test final.test \
+EXTRA_DIST = initial.test final.test \
pubdemo.asc secdemo.asc cipher-1.asc cipher-2.asc \
geheim.txt pubkey-1.asc seckey-1.asc pinentry $(private_keys)
AM_CPPFLAGS = -I$(top_builddir)/src @GPG_ERROR_CFLAGS@
+AM_LDFLAGS = -no-install
LDADD = ../../src/libgpgme.la
t_thread1_LDADD = ../../src/libgpgme-pthread.la -lpthread
all: all-am
@@ -990,12 +993,16 @@ uninstall-am:
clean-local:
- -$(srcdir)/start-stop-agent --stop
+ -$(top_srcdir)/tests/start-stop-agent --stop
-rm -fR private-keys-v1.d
-check-local: ./gpg.conf ./gpg-agent.conf ./pubring.gpg \
+check-local: ./gpg.conf ./gpg-agent.conf ./pubring-stamp \
./private-keys-v1.d/gpg-sample.stamp
+# To guarantee that check-local is run before any tests we
+# add this dependency:
+initial.test : check-local
+
export GNUPGHOME := $(abs_builddir)
export GPG_AGENT_INFO :=
@@ -1007,11 +1014,12 @@ export GPG_AGENT_INFO :=
done
echo x > ./private-keys-v1.d/gpg-sample.stamp
-./pubring.gpg: $(srcdir)/pubdemo.asc
- -$(GPG) --no-permission-warning \
- --import $(srcdir)/pubdemo.asc
+./pubring-stamp: $(srcdir)/pubdemo.asc
+ $(GPG) --no-permission-warning \
+ --import $(srcdir)/pubdemo.asc
-$(GPG) --no-permission-warning \
--import $(srcdir)/secdemo.asc
+ touch ./pubring-stamp
./gpg.conf:
# This is required for t-sig-notations.
diff --git a/tests/gpg/final.test b/tests/gpg/final.test
index 5148a34..5289396 100755
--- a/tests/gpg/final.test
+++ b/tests/gpg/final.test
@@ -1,4 +1,4 @@
#!/bin/sh
-${srcdir}/start-stop-agent --stop
+${top_srcdir}/tests/start-stop-agent --stop
exit 0
diff --git a/tests/gpg/initial.test b/tests/gpg/initial.test
index 1981c99..93c8621 100755
--- a/tests/gpg/initial.test
+++ b/tests/gpg/initial.test
@@ -1,4 +1,4 @@
#!/bin/sh
-${srcdir}/start-stop-agent --start
+${top_srcdir}/tests/start-stop-agent --start
exit 0
diff --git a/tests/gpgsm/Makefile.am b/tests/gpgsm/Makefile.am
index bf616d3..41645b6 100644
--- a/tests/gpgsm/Makefile.am
+++ b/tests/gpgsm/Makefile.am
@@ -21,20 +21,26 @@
GPGSM = gpgsm
-TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) GPG_AGENT_INFO=
+TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) LC_ALL=C GPG_AGENT_INFO= \
+ top_srcdir=$(top_srcdir)
noinst_HEADERS = t-support.h
-TESTS = t-import t-keylist t-encrypt t-verify t-decrypt t-sign t-export
+
+c_tests = t-import t-keylist t-encrypt t-verify t-decrypt t-sign t-export
+
+
+TESTS = initial.test $(c_tests) final.test
EXTRA_DIST = cert_dfn_pca01.der cert_dfn_pca15.der cert_g10code_test1.der \
- $(key_id)
+ $(key_id) initial.test final.test
AM_CPPFLAGS = -I$(top_builddir)/src @GPG_ERROR_CFLAGS@
+AM_LDFLAGS = -no-install
LDADD = ../../src/libgpgme.la
# We don't run t-genkey in the test suite, because it takes too long
# and needs a working pinentry.
-noinst_PROGRAMS = $(TESTS) t-genkey cms-keylist cms-decrypt
+noinst_PROGRAMS = $(c_tests) t-genkey cms-keylist cms-decrypt
key_id = 32100C27173EF6E9C4E9A25D3D69F86D37A4F939
@@ -42,12 +48,16 @@ CLEANFILES = pubring.kbx pubring.kbx~ gpgsm.conf trustlist.txt \
random_seed S.gpg-agent
clean-local:
- -gpg-connect-agent KILLAGENT /bye
+ -$(top_srcdir)/tests/start-stop-agent --stop
-rm -fR private-keys-v1.d
check-local: ./pubring.kbx ./gpgsm.conf \
./private-keys-v1.d/$(key_id).key ./trustlist.txt
+# To guarantee that check-local is run before any tests we add this
+# dependency:
+initial.test : check-local
+
export GNUPGHOME := $(abs_builddir)
export GPG_AGENT_INFO :=
diff --git a/tests/gpgsm/Makefile.in b/tests/gpgsm/Makefile.in
index c86800e..edcd1a1 100644
--- a/tests/gpgsm/Makefile.in
+++ b/tests/gpgsm/Makefile.in
@@ -98,9 +98,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-TESTS = t-import$(EXEEXT) t-keylist$(EXEEXT) t-encrypt$(EXEEXT) \
- t-verify$(EXEEXT) t-decrypt$(EXEEXT) t-sign$(EXEEXT) \
- t-export$(EXEEXT)
+TESTS = initial.test $(am__EXEEXT_1) final.test
noinst_PROGRAMS = $(am__EXEEXT_1) t-genkey$(EXEEXT) \
cms-keylist$(EXEEXT) cms-decrypt$(EXEEXT)
subdir = tests/gpgsm
@@ -414,12 +412,16 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
GPGSM = gpgsm
-TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) GPG_AGENT_INFO=
+TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) LC_ALL=C GPG_AGENT_INFO= \
+ top_srcdir=$(top_srcdir)
+
noinst_HEADERS = t-support.h
+c_tests = t-import t-keylist t-encrypt t-verify t-decrypt t-sign t-export
EXTRA_DIST = cert_dfn_pca01.der cert_dfn_pca15.der cert_g10code_test1.der \
- $(key_id)
+ $(key_id) initial.test final.test
AM_CPPFLAGS = -I$(top_builddir)/src @GPG_ERROR_CFLAGS@
+AM_LDFLAGS = -no-install
LDADD = ../../src/libgpgme.la
key_id = 32100C27173EF6E9C4E9A25D3D69F86D37A4F939
CLEANFILES = pubring.kbx pubring.kbx~ gpgsm.conf trustlist.txt \
@@ -853,12 +855,16 @@ uninstall-am:
clean-local:
- -gpg-connect-agent KILLAGENT /bye
+ -$(top_srcdir)/tests/start-stop-agent --stop
-rm -fR private-keys-v1.d
check-local: ./pubring.kbx ./gpgsm.conf \
./private-keys-v1.d/$(key_id).key ./trustlist.txt
+# To guarantee that check-local is run before any tests we add this
+# dependency:
+initial.test : check-local
+
export GNUPGHOME := $(abs_builddir)
export GPG_AGENT_INFO :=
diff --git a/tests/gpgsm/final.test b/tests/gpgsm/final.test
new file mode 100755
index 0000000..d0567e3
--- /dev/null
+++ b/tests/gpgsm/final.test
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+${top_srcdir}/tests/start-stop-agent --stop
+
+exit 0
diff --git a/tests/gpgsm/initial.test b/tests/gpgsm/initial.test
new file mode 100755
index 0000000..93c8621
--- /dev/null
+++ b/tests/gpgsm/initial.test
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+${top_srcdir}/tests/start-stop-agent --start
+exit 0
diff --git a/tests/run-keylist.c b/tests/run-keylist.c
index c0c7202..07c6fa1 100644
--- a/tests/run-keylist.c
+++ b/tests/run-keylist.c
@@ -45,6 +45,7 @@ show_usage (int ex)
" --verbose run in verbose mode\n"
" --openpgp use the OpenPGP protocol (default)\n"
" --cms use the CMS protocol\n"
+ " --secret list only secret keys\n"
" --local use GPGME_KEYLIST_MODE_LOCAL\n"
" --extern use GPGME_KEYLIST_MODE_EXTERN\n"
" --sigs use GPGME_KEYLIST_MODE_SIGS\n"
@@ -70,6 +71,7 @@ main (int argc, char **argv)
gpgme_key_t keyarray[100];
int keyidx = 0;
gpgme_protocol_t protocol = GPGME_PROTOCOL_OpenPGP;
+ int only_secret = 0;
if (argc)
{ argc--; argv++; }
@@ -99,6 +101,11 @@ main (int argc, char **argv)
protocol = GPGME_PROTOCOL_CMS;
argc--; argv++;
}
+ else if (!strcmp (*argv, "--secret"))
+ {
+ only_secret = 1;
+ argc--; argv++;
+ }
else if (!strcmp (*argv, "--local"))
{
mode |= GPGME_KEYLIST_MODE_LOCAL;
@@ -150,7 +157,7 @@ main (int argc, char **argv)
gpgme_set_keylist_mode (ctx, mode);
- err = gpgme_op_keylist_start (ctx, argc? argv[0]:NULL, 0);
+ err = gpgme_op_keylist_start (ctx, argc? argv[0]:NULL, only_secret);
fail_if_err (err);
while (!(err = gpgme_op_keylist_next (ctx, &key)))
diff --git a/tests/gpg/start-stop-agent b/tests/start-stop-agent
index ab47d8d..ab47d8d 100755
--- a/tests/gpg/start-stop-agent
+++ b/tests/start-stop-agent