mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
gpg,tools: Fix detecting OpenPGP card by serialno.
* tools/gpg-card.c (list_openpgp): Use ->apptype to determine card's APP. * g10/card-util.c (get_info_for_key_operation): Likewise. (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>
This commit is contained in:
parent
31def32eee
commit
157f1de64e
@ -385,7 +385,9 @@ current_card_status (ctrl_t ctrl, estream_t fp,
|
|||||||
|| strlen (info.serialno) != 32 )
|
|| strlen (info.serialno) != 32 )
|
||||||
{
|
{
|
||||||
const char *name1, *name2;
|
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";
|
name1 = "netkey";
|
||||||
name2 = "NetKey";
|
name2 = "NetKey";
|
||||||
@ -425,7 +427,7 @@ current_card_status (ctrl_t ctrl, estream_t fp,
|
|||||||
xfree (pk);
|
xfree (pk);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
openpgp:
|
||||||
if (!serialno)
|
if (!serialno)
|
||||||
;
|
;
|
||||||
else if (strlen (info.serialno)+1 > serialnobuflen)
|
else if (strlen (info.serialno)+1 > serialnobuflen)
|
||||||
@ -1253,8 +1255,7 @@ get_info_for_key_operation (struct agent_card_info_s *info)
|
|||||||
|
|
||||||
memset (info, 0, sizeof *info);
|
memset (info, 0, sizeof *info);
|
||||||
rc = agent_scd_getattr ("SERIALNO", info);
|
rc = agent_scd_getattr ("SERIALNO", info);
|
||||||
if (rc || !info->serialno || strncmp (info->serialno, "D27600012401", 12)
|
if (rc || !info->apptype || strcmp (info->apptype, "openpgp"))
|
||||||
|| strlen (info->serialno) != 32 )
|
|
||||||
{
|
{
|
||||||
log_error (_("key operation not possible: %s\n"),
|
log_error (_("key operation not possible: %s\n"),
|
||||||
rc ? gpg_strerror (rc) : _("not an OpenPGP card"));
|
rc ? gpg_strerror (rc) : _("not an OpenPGP card"));
|
||||||
|
@ -841,9 +841,7 @@ list_openpgp (card_info_t info, estream_t fp, int no_key_lookup)
|
|||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!info->serialno
|
if (info->apptype != APP_TYPE_OPENPGP)
|
||||||
|| strncmp (info->serialno, "D27600012401", 12)
|
|
||||||
|| strlen (info->serialno) != 32 )
|
|
||||||
{
|
{
|
||||||
tty_fprintf (fp, "invalid OpenPGP card\n");
|
tty_fprintf (fp, "invalid OpenPGP card\n");
|
||||||
return;
|
return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user