diff options
| author | Werner Koch <[email protected]> | 2014-06-04 07:57:54 +0000 | 
|---|---|---|
| committer | Werner Koch <[email protected]> | 2014-06-04 07:57:54 +0000 | 
| commit | 4dc9af24156b4fd52c7b76e7522b9b7a64e5386a (patch) | |
| tree | 81ef546d2e6b00e5c44b8e3574a884c39065ed0e /src/engine-gpgsm.c | |
| parent | Post release updates (diff) | |
| download | gpgme-4dc9af24156b4fd52c7b76e7522b9b7a64e5386a.tar.gz gpgme-4dc9af24156b4fd52c7b76e7522b9b7a64e5386a.zip | |
Add new keylist mode GPGME_KEYLIST_MODE_WITH_SECRET.
* src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_SECRET): New.
* src/engine-gpg.c (gpg_keylist_build_options): Handle new mode.
* src/engine-gpgsm.c (gpgsm_keylist, gpgsm_keylist_ext): Ditto.
* src/keylist.c (parse_sec_field15): Add arg key and take care of
--with-secret output.
* src/gpgme-tool.c (gt_get_keylist_mode, cmd_keylist_mode): Add
"with_secret".  Print card info and and secret flag for subkeys.
--
Note: This mode may only be used with GnuPG >= 2.1.
Diffstat (limited to 'src/engine-gpgsm.c')
| -rw-r--r-- | src/engine-gpgsm.c | 12 | 
1 files changed, 11 insertions, 1 deletions
| diff --git a/src/engine-gpgsm.c b/src/engine-gpgsm.c index 710bf14a..8ec15985 100644 --- a/src/engine-gpgsm.c +++ b/src/engine-gpgsm.c @@ -1551,7 +1551,7 @@ gpgsm_keylist (void *engine, const char *pattern, int secret_only,       the agent.  However on a fresh installation no public keys are       available and thus there is no need for gpgsm to ask the agent       whether a secret key exists for the public key.  */ -  if (secret_only) +  if (secret_only || (mode & GPGME_KEYLIST_MODE_WITH_SECRET))      gpgsm_assuan_simple_command (gpgsm->assuan_ctx, "GETINFO agent-check",                                   NULL, NULL); @@ -1580,6 +1580,11 @@ gpgsm_keylist (void *engine, const char *pattern, int secret_only,                                 "OPTION with-ephemeral-keys=1":                                 "OPTION with-ephemeral-keys=0" ,                                 NULL, NULL); +  gpgsm_assuan_simple_command (gpgsm->assuan_ctx, +                               (mode & GPGME_KEYLIST_MODE_WITH_SECRET)? +                               "OPTION with-secret=1": +                               "OPTION with-secret=0" , +                               NULL, NULL);    /* Length is "LISTSECRETKEYS " + p + '\0'.  */ @@ -1645,6 +1650,11 @@ gpgsm_keylist_ext (void *engine, const char *pattern[], int secret_only,                                 "OPTION with-validation=1":                                 "OPTION with-validation=0" ,                                 NULL, NULL); +  gpgsm_assuan_simple_command (gpgsm->assuan_ctx, +                               (mode & GPGME_KEYLIST_MODE_WITH_SECRET)? +                               "OPTION with-secret=1": +                               "OPTION with-secret=0" , +                               NULL, NULL);    if (pattern && *pattern) | 
