* gpgme.texi (Key Listing Mode): Doc KEYLIST_MODE_VALIDATE.

* gpgme.h: Add GPGME_KEYLIST_MODE_VALIDATE.
* engine-gpgsm.c (gpgsm_keylist): Send this to gpgsm.
This commit is contained in:
Werner Koch 2004-02-17 15:27:42 +00:00
parent 6e468be50e
commit afabac4c9d
6 changed files with 42 additions and 6 deletions

7
TODO
View File

@ -144,4 +144,9 @@ Hey Emacs, this is -*- outline -*- mode!
* Build suite * Build suite
** Make sure everything is cleaned correctly (esp. test area). ** Make sure everything is cleaned correctly (esp. test area).
** Cofnigure test for gpg and gpgsm version (as a warning). ** Configure test for gpg and gpgsm version (as a warning).
* Error checking
** engine-gpgsm, with-validation
Add error checking some time after releasing a new gpgsm.

View File

@ -1,3 +1,7 @@
2004-02-17 Werner Koch <wk@gnupg.org>
* gpgme.texi (Key Listing Mode): Doc KEYLIST_MODE_VALIDATE.
2004-02-06 Moritz Schulte <mo@g10code.com> 2004-02-06 Moritz Schulte <mo@g10code.com>
* gpgme.texi: A couple of small fixes regarding the Largfile * gpgme.texi: A couple of small fixes regarding the Largfile

View File

@ -1983,6 +1983,14 @@ certificate server.
@item GPGME_KEYLIST_MODE_SIGS @item GPGME_KEYLIST_MODE_SIGS
The @code{GPGME_KEYLIST_MODE_SIGS} symbol specifies that the key The @code{GPGME_KEYLIST_MODE_SIGS} symbol specifies that the key
signatures should be included in the listed keys. signatures should be included in the listed keys.
@item GPGME_KEYLIST_MODE_VALIDATE
The @code{GPGME_KEYLIST_MODE_VALIDATE} symbol specifies that the
backend should do key or certificate validation and not just get the
validity information from an interna cache. This might be an
expensive operation and is in general not usefule. Currently only
implemented for the S/MIME backend and ignored for other backends.
@end table @end table
At least one of @code{GPGME_KEYLIST_MODE_LOCAL} and At least one of @code{GPGME_KEYLIST_MODE_LOCAL} and
@ -2348,7 +2356,10 @@ This is true if the key is expired.
This is true if the key is disabled. This is true if the key is disabled.
@item unsigned int invalid : 1 @item unsigned int invalid : 1
This is true if the key is invalid. This is true if the key is invalid. This might have several reasons,
for a example for the S/MIME backend, it will be set in during key
listsing if the key could not be validated due to a missing
certificates or unmatched policies.
@item unsigned int can_encrypt : 1 @item unsigned int can_encrypt : 1
This is true if the key (ie one of its subkeys) can be used for This is true if the key (ie one of its subkeys) can be used for

View File

@ -1,3 +1,8 @@
2004-02-17 Werner Koch <wk@gnupg.org>
* gpgme.h: Add GPGME_KEYLIST_MODE_VALIDATE.
* engine-gpgsm.c (gpgsm_keylist): Send this to gpgsm.
2004-02-15 Werner Koch <wk@gnupg.org> 2004-02-15 Werner Koch <wk@gnupg.org>
* memrchr.c (memrchr): Fixed implementation. Problem pointed out * memrchr.c (memrchr): Fixed implementation. Problem pointed out

View File

@ -1,6 +1,6 @@
/* engine-gpgsm.c - GpgSM engine. /* engine-gpgsm.c - GpgSM engine.
Copyright (C) 2000 Werner Koch (dd9jn) Copyright (C) 2000 Werner Koch (dd9jn)
Copyright (C) 2001, 2002, 2003 g10 Code GmbH Copyright (C) 2001, 2002, 2003, 2004 g10 Code GmbH
This file is part of GPGME. This file is part of GPGME.
@ -1226,6 +1226,16 @@ gpgsm_keylist (void *engine, const char *pattern, int secret_only,
if (err) if (err)
return err; return err;
/* Use the validation mode if required. We don't check for an error
yet because this is a pretty fresh gpgsm features. */
gpgsm_assuan_simple_command (gpgsm->assuan_ctx,
(mode & GPGME_KEYLIST_MODE_VALIDATE)?
"OPTION with-validation=1":
"OPTION with-validation=0" ,
NULL, NULL);
/* Length is "LISTSECRETKEYS " + p + '\0'. */ /* Length is "LISTSECRETKEYS " + p + '\0'. */
line = malloc (15 + strlen (pattern) + 1); line = malloc (15 + strlen (pattern) + 1);
if (!line) if (!line)

View File

@ -1,6 +1,6 @@
/* gpgme.h - Public interface to GnuPG Made Easy. /* gpgme.h - Public interface to GnuPG Made Easy.
Copyright (C) 2000 Werner Koch (dd9jn) Copyright (C) 2000 Werner Koch (dd9jn)
Copyright (C) 2001, 2002, 2003 g10 Code GmbH Copyright (C) 2001, 2002, 2003, 2004 g10 Code GmbH
This file is part of GPGME. This file is part of GPGME.
@ -71,7 +71,7 @@ extern "C" {
AM_PATH_GPGME macro) check that this header matches the installed AM_PATH_GPGME macro) check that this header matches the installed
library. Warning: Do not edit the next line. configure will do library. Warning: Do not edit the next line. configure will do
that for you! */ that for you! */
#define GPGME_VERSION "0.4.4" #define GPGME_VERSION "0.4.5-cvs"
/* Some opaque data types used by GPGME. */ /* Some opaque data types used by GPGME. */
@ -698,7 +698,8 @@ typedef enum
{ {
GPGME_KEYLIST_MODE_LOCAL = 1, GPGME_KEYLIST_MODE_LOCAL = 1,
GPGME_KEYLIST_MODE_EXTERN = 2, GPGME_KEYLIST_MODE_EXTERN = 2,
GPGME_KEYLIST_MODE_SIGS = 4 GPGME_KEYLIST_MODE_SIGS = 4,
GPGME_KEYLIST_MODE_VALIDATE = 256
} }
gpgme_keylist_mode_t; gpgme_keylist_mode_t;