[Pcsclite-muscle] C3PO LTC31-v2 does not have a pinpad as reported by CCID

Ludovic Rousseau ludovic.rousseau at free.fr
Sun Jan 21 04:18:20 PST 2018

Le 20/01/2018 à 18:09, Jose Ramon Alvarez-Sanchez a écrit :
> Hi,


> I am using a C3PO LTC31-v2 card-reader. It does NOT have a pinpad,
> but the usb ccid reports it have one, so when trying to use a card,
> the software stops and waits for the inexistent pinpad to reply.
> My system is Debian testing with libccid package (version 1.4.28-2)
> and libpcsclite1, pcscd packages (version 1.8.23-1).
> The output of ccid parse for the reader is attached to this message.
> Some years ago it worked OK, but now something has changed, and the
> manufacturer does not exists any more.
> I have downloaded the git repository for CCID and modified it to add
> an exception for the card-reader, so it can ignore the false pinpad
> reported erroneously. After installing the modified ccid, it works OK.
> The modification was simply to add in src/ccid.h a new line
> in section "/* Product identification for special treatments */"
> (under the line for LTC31):
>      #define LTC31_V20x07830006
> and to add in src/ccid.c a new line just before line 495 that
> says "/* The chip advertises pinpad but actually doesn't have one */":
> case LTC31_V2:
> If you want any other information, please do not hesitate to ask.

Thanks for the parse command result.

It looks like your firmware is *newer* (bcdDevice: 2.50 instead of 0.50) than the one in the reader listed at https://pcsclite.alioth.debian.org/ccid/supported.html#0x07830x0006

The reader listed above does NOT have the problem you report.

The diff is:
@@ -1,8 +1,8 @@
   idVendor: 0x0783
    iManufacturer: C3PO
   idProduct: 0x0006
- bcdDevice: 0.50 (firmware release?)
+ bcdDevice: 2.50 (firmware release?)
   bLength: 9
   bDescriptorType: 4
   bInterfaceNumber: 0
@@ -13,11 +13,11 @@
   bInterfaceSubClass: 0
   bInterfaceProtocol: 0
    bulk transfer, optional interrupt-IN (CCID)
- iInterface: ?
+ Can't get iInterface string
   CCID Class Descriptor
    bLength: 0x36
    bDescriptorType: 0x21
-  bcdCCID: 1.00
+  bcdCCID: 1.01
    bMaxSlotIndex: 0x00
    bVoltageSupport: 0x01
@@ -27,11 +27,11 @@
    dwDefaultClock: 4.000 MHz
    dwMaximumClock: 8.000 MHz
    bNumClockSupported: 0 (will use whatever is returned)
-   IFD does not support GET CLOCK FREQUENCIES request: Success
+   IFD does not support GET CLOCK FREQUENCIES request: Resource temporarily unavailable
    dwDataRate: 9600 bps
    dwMaxDataRate: 230400 bps
    bNumDataRatesSupported: 0 (will use whatever is returned)
-   IFD does not support GET_DATA_RATES request: Success
+   IFD does not support GET_DATA_RATES request: Resource temporarily unavailable
    dwMaxIFSD: 254
    dwSynchProtocols: 0x00000007
     2-wire protocol
@@ -50,5 +50,7 @@
    bClassGetResponse: 0x00
    bClassEnvelope: 0x00
    wLcdLayout: 0x0000
-  bPINSupport: 0x00
+  bPINSupport: 0x03
+   PIN Verification supported
+   PIN Modification supported
    bMaxCCIDBusySlots: 1

I fixed the problem in https://salsa.debian.org/rousseau/CCID/commit/a27a11711a9861acea3a9b43bba56ba157c670af

> Thanks for maintaining this essential software.

You are welcome.


  Dr. Ludovic Rousseau

More information about the pcsclite-muscle mailing list