diff --git a/src/usb/ccid.h b/src/usb/ccid.h index 2c9f950..4149e4b 100644 --- a/src/usb/ccid.h +++ b/src/usb/ccid.h @@ -31,40 +31,19 @@ static const struct ccid_class_descriptor desc_ccid = { 0x02), // T=1 .dwDefaultClock = (0xDFC), .dwMaximumClock = (0xDFC), - .bNumClockSupport = 1, + .bNumClockSupport = 0, .dwDataRate = (0x2580), .dwMaxDataRate = (0x2580), - .bNumDataRatesSupported = 1, - .dwMaxIFSD = (0xFF), // IFSD is handled by the real reader driver + .bNumDataRatesSupported = 0, + .dwMaxIFSD = (0xFE), // IFSD is handled by the real reader driver .dwSynchProtocols = (0), .dwMechanical = (0), - .dwFeatures = ( - 0x00000002| // Automatic parameter configuration based on ATR data - 0x00000004| // Automatic activation of ICC on inserting - 0x00000008| // Automatic ICC voltage selection - 0x00000010| // Automatic ICC clock frequency change - 0x00000020| // Automatic baud rate change - 0x00000040| // Automatic parameters negotiation - 0x00000080| // Automatic PPS - 0x00000400| // Automatic IFSD exchange as first exchange - 0x00040000| // Short and Extended APDU level exchange with CCID - 0x00100000), // USB Wake up signaling supported - .dwMaxCCIDMessageLength = (CCID_EXT_APDU_MAX), + .dwFeatures = 0x40840, //USB-ICC, short & extended APDU + .dwMaxCCIDMessageLength = 65544+10, .bClassGetResponse = 0xFF, .bclassEnvelope = 0xFF, .wLcdLayout = 0x0, - /* - ( - 0xFF00| // Number of lines for the LCD display - 0x00FF), // Number of characters per line - */ .bPINSupport = 0x0, - /* - 0x1| // PIN Verification supported - 0x2| // PIN Modification supported - 0x10| // PIN PACE Capabilities supported - 0x20, // PIN PACE Verification supported - */ .bMaxCCIDBusySlots = 0x01, };