From 5efcc2b8fee8de31d255d09037f0a1e6209eab32 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Wed, 16 Oct 2013 09:52:18 +0900 Subject: scd: add pinpad readers information for PC/SC service. * scd/apdu.c (pcsc_vendor_specific_init): Add information for Cherry ST-2xxx, Reiner cyberJack, Vasco DIGIPASS, FSIJ Gnuk Token, and KAAN Advance. -- --- scd/apdu.c | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/scd/apdu.c b/scd/apdu.c index 293849d94..58f607500 100644 --- a/scd/apdu.c +++ b/scd/apdu.c @@ -1745,21 +1745,30 @@ pcsc_vendor_specific_init (int slot) } } - /* - * For system which doesn't support GET_TLV_PROPERTIES, - * we put some heuristics here. - */ - if (reader_table[slot].rdrname - && strstr (reader_table[slot].rdrname, "SPRx32")) + if (get_tlv_ioctl == (pcsc_dword_t)-1) { - reader_table[slot].is_spr532 = 1; - reader_table[slot].pinpad_varlen_supported = 1; + /* + * For system which doesn't support GET_TLV_PROPERTIES, + * we put some heuristics here. + */ + if (reader_table[slot].rdrname) + { + if (strstr (reader_table[slot].rdrname, "SPRx32")) + { + reader_table[slot].is_spr532 = 1; + reader_table[slot].pinpad_varlen_supported = 1; + } + else if (strstr (reader_table[slot].rdrname, "ST-2xxx") + || strstr (reader_table[slot].rdrname, "cyberJack") + || strstr (reader_table[slot].rdrname, "DIGIPASS") + || strstr (reader_table[slot].rdrname, "Gnuk") + || strstr (reader_table[slot].rdrname, "KAAN")) + reader_table[slot].pinpad_varlen_supported = 1; + } + return 0; } - if (get_tlv_ioctl == (pcsc_dword_t)-1) - return 0; - len = sizeof (buf); sw = control_pcsc (slot, get_tlv_ioctl, NULL, 0, buf, &len); if (sw) @@ -1815,6 +1824,12 @@ pcsc_vendor_specific_init (int slot) reader_table[slot].is_spr532 = 1; reader_table[slot].pinpad_varlen_supported = 1; } + else if (vendor == 0x046a && product == 0x003e /* Cherry ST-2xxx */ + || vendor == 0x0c4b /* Tested with Reiner cyberJack GO */ + || vendor == 0x1a44 /* Tested with Vasco DIGIPASS 920 */ + || vendor == 0x234b /* Tested with FSIJ Gnuk Token */ + || vendor == 0x0d46 /* Tested with KAAN Advanced??? */) + reader_table[slot].pinpad_varlen_supported = 1; return 0; } -- cgit v1.2.3