[Pcsclite-muscle] What's responsible to filter out Le in Case 4 C-APDUs under T=0?
Ludovic Rousseau
ludovic.rousseau at gmail.com
Mon Feb 7 08:56:00 PST 2022
Hello François,
Le lun. 7 févr. 2022 à 17:01, Francois Grieu <fgrieu at gmail.com> a écrit :
>
> I have a confirmed case where passing to SCardTransmit a valid "Case 4(S)"
> Command-APDU, with incoming data followed by Le, leads to a "mute card" error.
> That's under Windows 10, with an IdBridge K30 (SIM-format) reader, specifically
> it's manufacturer-supplied GemCCID 4.1.4.0 driver as obtained thru Windows
> Update, and several T=0 card types.
>
> 00xx xxxx 06 xxxxxxxxxxxx 08
> \ \ \ \ \_ Le
> \ \ \ \_ data in
> \ \ \_ Lc
> \ \_ P1P2
> \_ CLA INS
>
> The problem vanishes, with the card answering SW=6108 (then a Get Response
> getting the 8 bytes of data and final SW as expected) when I either
> - remove Le = 08 from the C-APDU
> - change the driver to Microsoft's WUDF driver
>
> I understand why the problem occurs and can depend on the driver: the T=0
> protocol is such that the card should not receive the 08, and something has to
> filter it out from the C-APDU (which includes it, see ISO/IEC 7816-3:2006
> section 12.1.1).
>
> My question is: in the PC/SC stack, who should do this filtering ?
> 1. the application, when it senses that T=0 is used (and then, how)
> 2. winscard / pcsclite's SCardTransmit function
> 3. the driver
> 4. the reader (perhaps per CCID)
>
> References appreciated since in options 2/3/4 I'd want to file a bug report to
> whoever is responsible.
What happens on GNU/Linux with pcsc-lite and my CCID driver?
Bye
--
Dr. Ludovic Rousseau
More information about the pcsclite-muscle
mailing list