OMNIKEY 3x21 and 6121 Smart Card Reader are not pinpad readers

macOS 10.13 ships with ccid driver 1.4.27 (fixed in 1.4.29) and this version identifies these readers wrongly as pinpad readers.

Signed-off-by: Raul Metsma <raul@metsma.ee>
This commit is contained in:
Raul Metsma 2018-07-20 18:55:52 +03:00 committed by Frank Morgner
parent 4de0d06a93
commit dfe932d00d

View File

@ -1063,6 +1063,7 @@ static void detect_reader_features(sc_reader_t *reader, SCARDHANDLE card_handle)
PCSC_TLV_STRUCTURE *pcsc_tlv;
LONG rv;
const char *log_disabled = "but it's disabled in configuration file";
int id_vendor = 0, id_product = 0;
LOG_FUNC_CALLED(ctx);
@ -1132,6 +1133,17 @@ static void detect_reader_features(sc_reader_t *reader, SCARDHANDLE card_handle)
}
}
/* Some readers claim to have PinPAD support even if they have not */
if ((reader->capabilities & SC_READER_CAP_PIN_PAD) &&
part10_get_vendor_product(reader, card_handle, &id_vendor, &id_product) == SC_SUCCESS) {
/* HID Global OMNIKEY 3x21/6121 Smart Card Reader, fixed in libccid 1.4.29 (remove when last supported OS is using 1.4.29) */
if ((id_vendor == 0x076B && id_product == 0x3031) ||
(id_vendor == 0x076B && id_product == 0x6632)) {
sc_log(ctx, "%s is not pinpad reader, ignoring", reader->name);
reader->capabilities &= ~SC_READER_CAP_PIN_PAD;
}
}
/* Detect display */
if (priv->pin_properties_ioctl) {
rcount = sizeof(rbuf);