diff options
author | Werner Koch <[email protected]> | 2020-04-03 08:00:57 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2020-04-03 08:44:32 +0000 |
commit | 15352b0eac335e7993fcd7720106a3a7d22caae1 (patch) | |
tree | f8b1f0e63571b66ae293e19e3a291a2b71668e71 /g10/card-util.c | |
parent | scd:openpgp: New attribute "MANUFACTURER". (diff) | |
download | gnupg-15352b0eac335e7993fcd7720106a3a7d22caae1.tar.gz gnupg-15352b0eac335e7993fcd7720106a3a7d22caae1.zip |
gpg,card: Use the new MANUFACTURER attribute.
* tools/gpg-card.h (struct card_info_s): Add manufacturer fields.
* tools/card-call-scd.c (release_card_info): Release them.
(learn_status_cb): Parse MANUFACTURER attribute.
* tools/gpg-card.c (get_manufacturer): Remove.
(list_card): Use the new attribute.
* g10/call-agent.h (struct agent_card_info_s): Add manufacturer fields.
* g10/call-agent.c (agent_release_card_info): Release them.
(learn_status_cb): Parse MANUFACTURER attribute.
* g10/card-util.c (get_manufacturer): Remove.
(current_card_status): Use new attribute.
--
This does away with the duplicated OpenPGP vendor tables; they are now
at a better place (app-openpgp.c).
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'g10/card-util.c')
-rw-r--r-- | g10/card-util.c | 49 |
1 files changed, 6 insertions, 43 deletions
diff --git a/g10/card-util.c b/g10/card-util.c index 98adc61ad..cf365e9d2 100644 --- a/g10/card-util.c +++ b/g10/card-util.c @@ -192,46 +192,6 @@ change_pin (int unblock_v2, int allow_admin) agent_release_card_info (&info); } -static const char * -get_manufacturer (unsigned int no) -{ - /* Note: Make sure that there is no colon or linefeed in the string. */ - switch (no) - { - case 0x0001: return "PPC Card Systems"; - case 0x0002: return "Prism"; - case 0x0003: return "OpenFortress"; - case 0x0004: return "Wewid"; - case 0x0005: return "ZeitControl"; - case 0x0006: return "Yubico"; - case 0x0007: return "OpenKMS"; - case 0x0008: return "LogoEmail"; - case 0x0009: return "Fidesmo"; - case 0x000A: return "Dangerous Things"; - case 0x000B: return "Feitian Technologies"; - - case 0x002A: return "Magrathea"; - case 0x0042: return "GnuPG e.V."; - - case 0x1337: return "Warsaw Hackerspace"; - case 0x2342: return "warpzone"; /* hackerspace Muenster. */ - case 0x4354: return "Confidential Technologies"; /* cotech.de */ - case 0x5443: return "TIF-IT e.V."; break; - case 0x63AF: return "Trustica"; - case 0xBA53: return "c-base e.V."; - case 0xBD0E: return "Paranoidlabs"; - case 0xF517: return "FSIJ"; - case 0xF5EC: return "F-Secure"; - - /* 0x0000 and 0xFFFF are defined as test cards per spec, - 0xFF00 to 0xFFFE are assigned for use with randomly created - serial numbers. */ - case 0x0000: - case 0xffff: return "test card"; - default: return (no & 0xff00) == 0xff00? "unmanaged S/N range":"unknown"; - } -} - static void print_shax_fpr (estream_t fp, const unsigned char *fpr, unsigned int fprlen) @@ -396,6 +356,7 @@ current_card_status (ctrl_t ctrl, estream_t fp, const unsigned char *thefpr; unsigned int thefprlen; int i; + char *pesc; if (serialno && serialnobuflen) *serialno = 0; @@ -482,7 +443,10 @@ current_card_status (ctrl_t ctrl, estream_t fp, { es_fprintf (fp, "version:%.4s:\n", info.serialno+12); uval = xtoi_2(info.serialno+16)*256 + xtoi_2 (info.serialno+18); - es_fprintf (fp, "vendor:%04x:%s:\n", uval, get_manufacturer (uval)); + pesc = (info.manufacturer_name + ? percent_escape (info.manufacturer_name, NULL) : NULL); + es_fprintf (fp, "vendor:%04x:%s:\n", uval, pesc? pesc:""); + xfree (pesc); es_fprintf (fp, "serial:%.8s:\n", info.serialno+20); print_isoname (fp, "Name of cardholder: ", "name", info.disp_name); @@ -583,8 +547,7 @@ current_card_status (ctrl_t ctrl, estream_t fp, info.serialno[14] == '0'?"":info.serialno+14, info.serialno[15]); tty_fprintf (fp, "Manufacturer .....: %s\n", - get_manufacturer (xtoi_2(info.serialno+16)*256 - + xtoi_2 (info.serialno+18))); + info.manufacturer_name? info.manufacturer_name : "?"); tty_fprintf (fp, "Serial number ....: %.8s\n", info.serialno+20); print_isoname (fp, "Name of cardholder: ", "name", info.disp_name); |