mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-22 14:57:02 +01:00
gpg: Fix detecting OpenPGP card by serialno.
* g10/card-util.c (get_info_for_key_operation): Use ->apptype to determine card's APP. (current_card_status): Even if its SERIALNO is not like OpenPGP card, it's OpenPGP card when app says so. -- GnuPG-bug-id: 5100 Signed-off-by: NIIBE Yutaka <gniibe@fsij.org> Backported-from-master: 157f1de64e437cecd75335e9f4077ba9835e3da0
This commit is contained in:
parent
12ad952978
commit
27ae89db6e
@ -382,7 +382,9 @@ current_card_status (ctrl_t ctrl, estream_t fp,
|
||||
|| strlen (info.serialno) != 32 )
|
||||
{
|
||||
const char *name1, *name2;
|
||||
if (info.apptype && !strcmp (info.apptype, "NKS"))
|
||||
if (info.apptype && !strcmp (info.apptype, "openpgp"))
|
||||
goto openpgp;
|
||||
else if (info.apptype && !strcmp (info.apptype, "NKS"))
|
||||
{
|
||||
name1 = "netkey";
|
||||
name2 = "NetKey";
|
||||
@ -422,7 +424,7 @@ current_card_status (ctrl_t ctrl, estream_t fp,
|
||||
xfree (pk);
|
||||
return;
|
||||
}
|
||||
|
||||
openpgp:
|
||||
if (!serialno)
|
||||
;
|
||||
else if (strlen (info.serialno)+1 > serialnobuflen)
|
||||
@ -1236,8 +1238,7 @@ get_info_for_key_operation (struct agent_card_info_s *info)
|
||||
|
||||
memset (info, 0, sizeof *info);
|
||||
rc = agent_scd_getattr ("SERIALNO", info);
|
||||
if (rc || !info->serialno || strncmp (info->serialno, "D27600012401", 12)
|
||||
|| strlen (info->serialno) != 32 )
|
||||
if (rc || !info->apptype || strcmp (info->apptype, "openpgp"))
|
||||
{
|
||||
log_error (_("key operation not possible: %s\n"),
|
||||
rc ? gpg_strerror (rc) : _("not an OpenPGP card"));
|
||||
|
Loading…
x
Reference in New Issue
Block a user