[Pcsclite-muscle] Difference with Windows (maybe a bug)

Abraham Macias Paredes amacias at solutia-it.es
Fri Sep 23 10:00:40 UTC 2016


Sorry but there is no sample code. It’s a RDP client that connects to a Windows server (with Smart card redirection enabled). In the RDP session I use the Internet Explorer to Access to HTTPS page with user authentication.

 

 

De: Pcsclite-muscle [mailto:pcsclite-muscle-bounces+amacias=solutia-it.es at lists.alioth.debian.org] En nombre de Ludovic Rousseau
Enviado el: viernes, 23 de septiembre de 2016 11:23
Para: Talks about MUSCLE <pcsclite-muscle at lists.alioth.debian.org>
Asunto: Re: [Pcsclite-muscle] Difference with Windows (maybe a bug)

 

2016-09-23 11:03 GMT+02:00 Abraham Macias Paredes <amacias at solutia-it.es <mailto:amacias at solutia-it.es> >:

Hi PCSC lite Project people,

 

Hello,
 

I’m developing a software that must work in Windows and Linux. And I found a difference between Windows PCSC API and “pcsc-lite” that may be a bug.

 

The software has several threads. In a thread a “SCardGetStatusChange” is performed and it locks until there is a change in the status.

When another thread performs a “SCardConnect”, in Windows the “SCardGetStatusChange” call returns with the “SCARD_STATE_INUSE”  flag activated. But in Linux the thread continues locked at “SCardGetStatusChange”. 

 

Windows trace:

 

Thread 1: SmartCard SCardGetStatusChange(context: CD00000100000000, timeout: ffffffff)

Thread 1:  atr = 3b 7f ffffff96 0 0 0 6a 46 4e 4d 54 3 4 11 43 4 30 3 ffffff90 0 

Thread 1:  [0]   Dell Smart Card Reader Keyboard 0

Thread 1:         user: null, state: 0xb0420, event: 0xb0422

Thread 2: SmartCard SCardConnect(context: CD00000100000001, share: 2, proto: 3, reader: 'Dell Smart Card Reader Keyboard 0')

Thread 1:  -> [0]  Dell Smart Card Reader Keyboard 0

Thread 1:  ->       user: null, state: 0xb0420, event: 0xb0122

 

 

Thread 2: SmartCard Connect successful: 1 hCard: EA00000100000000

 

Linux trace:

 

Thread 1: SmartCard SCardGetStatusChange(context: CD00000100000000, timeout: ffffffff)

Thread 1:  atr = 3b 7f ffffff96 0 0 0 6a 46 4e 4d 54 3 4 11 43 4 30 3 ffffff90 0 

Thread 1:  [0]   Dell Smart Card Reader Keyboard 0

Thread 1:         user: null, state: 0x20, event: 0x22

Thread 2:  SmartCard SCardConnect(context: CD00000100000001, share: 2, proto: 3, reader: 'Dell Smart Card Reader Keyboard 0')

Thread 2:  SmartCard Connect successful: 1 hCard: EA00000100000000

 

If I use another thread to perform another “SCardGetStatusChange”, the status shows the “SCARD_STATE_INUSE” flag activated, but the first thread is still locked.

 

Can you share your sample code with us?

Thanks



-- 

 Dr. Ludovic Rousseau

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pcsclite-muscle/attachments/20160923/cca3d44f/attachment.html>


More information about the Pcsclite-muscle mailing list