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/gpgme-tool.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/gpgme-tool.c')
-rw-r--r-- | src/gpgme-tool.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gpgme-tool.c b/src/gpgme-tool.c index be8ed078..f02fffa7 100644 --- a/src/gpgme-tool.c +++ b/src/gpgme-tool.c @@ -1861,6 +1861,8 @@ gt_get_keylist_mode (gpgme_tool_t gt) modes[idx++] = "sigs"; if (mode & GPGME_KEYLIST_MODE_SIG_NOTATIONS) modes[idx++] = "sig_notations"; + if (mode & GPGME_KEYLIST_MODE_WITH_SECRET) + modes[idx++] = "with_secret"; if (mode & GPGME_KEYLIST_MODE_EPHEMERAL) modes[idx++] = "ephemeral"; if (mode & GPGME_KEYLIST_MODE_VALIDATE) @@ -2591,6 +2593,8 @@ cmd_keylist_mode (assuan_context_t ctx, char *line) mode |= GPGME_KEYLIST_MODE_SIGS; if (strstr (line, "sig_notations")) mode |= GPGME_KEYLIST_MODE_SIG_NOTATIONS; + if (strstr (line, "with_secret")) + mode |= GPGME_KEYLIST_MODE_WITH_SECRET; if (strstr (line, "ephemeral")) mode |= GPGME_KEYLIST_MODE_EPHEMERAL; if (strstr (line, "validate")) @@ -3299,6 +3303,12 @@ cmd_keylist (assuan_context_t ctx, char *line) result_xml_tag_start (&state, "subkey", NULL); /* FIXME: more data */ result_add_fpr (&state, "fpr", subkey->fpr); + result_add_value (&state, "secret", subkey->secret); + result_add_value (&state, "is_cardkey", subkey->is_cardkey); + if (subkey->card_number) + result_add_string (&state, "card_number", subkey->card_number); + if (subkey->curve) + result_add_string (&state, "curve", subkey->curve); result_xml_tag_end (&state); /* subkey */ subkey = subkey->next; } |