core: Set SECRET flag of subkeys stored on smart cards

* src/keylist.c (parse_sec_field15): Set SECRET flag.
--

Explicitly setting the SECRET flag for subkeys stored on smart cards
makes sure that the flag is also set if GPGME_KEYLIST_MODE_WITH_SECRET
is used when listing OpenPGP keys (as documented in the API
documentation). If secret keys are listed, then the flag is already set
when the packet type is parsed.

GnuPG-bug-id: 5965
This commit is contained in:
Ingo Klöcker 2022-05-06 09:34:18 +02:00
parent 306fd9c915
commit f72cf726ca

View File

@ -423,6 +423,7 @@ parse_sec_field15 (gpgme_key_t key, gpgme_subkey_t subkey, char *field)
{ {
/* Fields starts with a hex digit; thus it is a serial number. */ /* Fields starts with a hex digit; thus it is a serial number. */
key->secret = 1; key->secret = 1;
subkey->secret = 1;
subkey->is_cardkey = 1; subkey->is_cardkey = 1;
subkey->card_number = strdup (field); subkey->card_number = strdup (field);
if (!subkey->card_number) if (!subkey->card_number)