Lenovo USB Smartcard Keyboard (17ef:6007) [patch]
[email protected] (Adam Sjøgren)
| Newsgroups | gmane.comp.lib.muscle |
|---|---|
| Organization | koldfront - analysis & revolution, Copenhagen, Denmark |
| Message-ID | <[email protected]> |
Hi.
On Debian unstable with libccid 1.4.11-1 the following patch seems to be
enough to make pcscd recognize my Lenovo USB Smartcard Keyboard (this
one:
* http://support.lenovo.com/en_US/product-and-parts/detail.page?&LegacyDocID=MIGR-72489
only mine is the Danish version, 51J0364), and to make it work:
--- /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist.orig 2013-07-14 23:07:48.730199942 +0200
+++ /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist 2013-07-14 23:09:21.076233025 +0200
@@ -144,6 +144,7 @@
<string>0x0D46</string>
<string>0x0D46</string>
<string>0x17EF</string>
+ <string>0x17EF</string>
<string>0x09BE</string>
<string>0x076B</string>
<string>0x076B</string>
@@ -408,6 +409,7 @@
<string>0x3003</string>
<string>0x3010</string>
<string>0x1003</string>
+ <string>0x6007</string>
<string>0x0002</string>
<string>0x3021</string>
<string>0xA022</string>
@@ -672,6 +674,7 @@
<string>KOBIL KAAN SIM III</string>
<string>KOBIL EMV CAP - SecOVID Reader III</string>
<string>Lenovo Integrated Smart Card Reader</string>
+ <string>Lenovo USB Smartcard Keyboard</string>
<string>MYSMART MySMART PAD V2.0</string>
<string>OMNIKEY AG CardMan 3121</string>
<string>Precise Biometrics Sense MC</string>
Here is the output of running src/parse from ccid-1.4.11:
idVendor: 0x17EF
iManufacturer: Lenovo
idProduct: 0x6007
iProduct: Lenovo USB Smartcard Keyboard
bcdDevice: 1.11 (firmware release?)
bLength: 9
bDescriptorType: 4
bInterfaceNumber: 1
bAlternateSetting: 0
bNumEndpoints: 3
bulk-IN, bulk-OUT and Interrupt-IN
bInterfaceClass: 0x0B [Chip Card Interface Device Class (CCID)]
bInterfaceSubClass: 0
bInterfaceProtocol: 0
bulk transfer, optional interrupt-IN (CCID)
iInterface: Lenovo Keyboard Smartcard Reader
CCID Class Descriptor
bLength: 0x36
bDescriptorType: 0x21
bcdCCID: 1.10
bMaxSlotIndex: 0x00
bVoltageSupport: 0x01
5.0V
dwProtocols: 0x0000 0x0003
T=0
T=1
dwDefaultClock: 4.800 MHz
dwMaximumClock: 8.000 MHz
bNumClockSupported: 0 (will use whatever is returned)
Support 4800 kHz
Support 6000 kHz
Support 8000 kHz
Support 12000 kHz
dwDataRate: 12903 bps
dwMaxDataRate: 307200 bps
bNumDataRatesSupported: 0 (will use whatever is returned)
Support 12903 bps
Support 25806 bps
Support 51613 bps
Support 103226 bps
Support 10753 bps
Support 21505 bps
Support 43011 bps
Support 86022 bps
dwMaxIFSD: 252
dwSynchProtocols: 0x00000000
dwMechanical: 0x00000001
Card accept mechanism
dwFeatures: 0x000100BA
....02 Automatic parameter configuration based on ATR data
....08 Automatic ICC voltage selection
....10 Automatic ICC clock frequency change according to parameters
....20 Automatic baud rate change according to frequency and Fi, Di params
....80 Automatic PPS made by the CCID
01.... TPDU level exchange
dwMaxCCIDMessageLength: 271 bytes
bClassGetResponse: 0xFF
echoes the APDU class
bClassEnvelope: 0xFF
echoes the APDU class
wLcdLayout: 0x0000
bPINSupport: 0x03
PIN Verification supported
PIN Modification supported
bMaxCCIDBusySlots: 1
I have a vague memory that it used to work out of the box back in 2011
(and a note http://www.koldfront.dk/archive/2011/03/09-224731.html to
support that :-))
I hope this information is useful; thanks for ccid!
Best regards,
Adam
--
"I do not find reading diffs in email to be a Adam Sjøgren
hardship, but I used to walk uphill both ways to [email protected]
school, so I dunno."