From jjelen at redhat.com  Mon Oct  2 02:01:22 2023
From: jjelen at redhat.com (Jakub Jelen)
Date: Mon, 2 Oct 2023 11:01:22 +0200
Subject: [Pcsclite-muscle] Simulating a CCID reader in software?
In-Reply-To: <CAGstE8BJLwGLXHDx3jRpW0=kQBLpr9LQXG+pGQs8uy_DszBogg@mail.gmail.com>
References: <CAGstE8BJLwGLXHDx3jRpW0=kQBLpr9LQXG+pGQs8uy_DszBogg@mail.gmail.com>
Message-ID: <CAHrFiA-JGZgB8okv=JauOeEuyFoTXccG8uZ5NVRffkuOjAXMbA@mail.gmail.com>

Hi,
as you probably know, we use vsmartcard for upstream OpenSC testing
with both applets running in jcardsim and for software implementation
of smart cards (libcacard, virt_cacard):

https://github.com/Jakuje/virt_cacard

It really depends on the use case and what you are trying to achieve.
In addition to the uses above, the libcacard was originally written
for the use in VMs so the qemu has a ccid interface which can be
connected to from outside of VM and emulate USB CCID device in the VM:

https://www.qemu.org/docs/master/system/devices/ccid.html

Hope it helps,
Jakub

On Fri, Sep 29, 2023 at 5:58?PM Ludovic Rousseau
<ludovic.rousseau at gmail.com> wrote:
>
> Hello,
>
> I am looking for a software that can simulate a CCID USB reader so I
> can control the reader side of the CCID communication.
>
> I found Frank Morgner project "USB CCID Emulator"
> https://frankmorgner.github.io/vsmartcard/ccid/README.html
> It looks like something I could reuse.
>
> Any other options?
>
> Thanks
>
> --
>  Dr. Ludovic Rousseau
>
> _______________________________________________
> pcsclite-muscle mailing list
> pcsclite-muscle at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/pcsclite-muscle
>



From ludovic.rousseau at gmail.com  Mon Oct  2 09:46:50 2023
From: ludovic.rousseau at gmail.com (Ludovic Rousseau)
Date: Mon, 2 Oct 2023 18:46:50 +0200
Subject: [Pcsclite-muscle] Simulating a CCID reader in software?
In-Reply-To: <CAHrFiA-JGZgB8okv=JauOeEuyFoTXccG8uZ5NVRffkuOjAXMbA@mail.gmail.com>
References: <CAGstE8BJLwGLXHDx3jRpW0=kQBLpr9LQXG+pGQs8uy_DszBogg@mail.gmail.com>
 <CAHrFiA-JGZgB8okv=JauOeEuyFoTXccG8uZ5NVRffkuOjAXMbA@mail.gmail.com>
Message-ID: <CAGstE8Bec-OxP1Co1PyTpmuJDLOkC7wvQU680JoCsKv3Pw7ovw@mail.gmail.com>

Le lun. 2 oct. 2023 ? 11:01, Jakub Jelen <jjelen at redhat.com> a ?crit :
>
> Hi,

Hello,

> as you probably know, we use vsmartcard for upstream OpenSC testing
> with both applets running in jcardsim and for software implementation
> of smart cards (libcacard, virt_cacard):
>
> https://github.com/Jakuje/virt_cacard

Nice project.

> It really depends on the use case and what you are trying to achieve.
> In addition to the uses above, the libcacard was originally written
> for the use in VMs so the qemu has a ccid interface which can be
> connected to from outside of VM and emulate USB CCID device in the VM:
>
> https://www.qemu.org/docs/master/system/devices/ccid.html

I did not know this feature of qemu. Thanks for the info.

My goal is to be able to simulate a CCID reader in software so that I
can control what the "reader" sends and to connect this physically to
a computer.

I was thinking of using a Raspberry Pi to execute Frank Morgner's "USB
CCID Emulator" and connect the Raspberry Pi to a computer USB port.
I will have to find a male-male USB cable.

If I understand correctly what "USB CCID Emulator" does it should work.

I am open to other ideas :-)

Bye

-- 
 Dr. Ludovic Rousseau


From mstjohns at comcast.net  Mon Oct  2 10:33:46 2023
From: mstjohns at comcast.net (Michael StJohns)
Date: Mon, 2 Oct 2023 13:33:46 -0400
Subject: [Pcsclite-muscle] Simulating a CCID reader in software?
In-Reply-To: <CAGstE8Bec-OxP1Co1PyTpmuJDLOkC7wvQU680JoCsKv3Pw7ovw@mail.gmail.com>
References: <CAGstE8BJLwGLXHDx3jRpW0=kQBLpr9LQXG+pGQs8uy_DszBogg@mail.gmail.com>
 <CAHrFiA-JGZgB8okv=JauOeEuyFoTXccG8uZ5NVRffkuOjAXMbA@mail.gmail.com>
 <CAGstE8Bec-OxP1Co1PyTpmuJDLOkC7wvQU680JoCsKv3Pw7ovw@mail.gmail.com>
Message-ID: <4627f9c4-d587-98d7-6f1e-65b271661f20@comcast.net>

On 10/2/2023 12:46 PM, Ludovic Rousseau wrote:
>
> My goal is to be able to simulate a CCID reader in software so that I
> can control what the "reader" sends and to connect this physically to
> a computer.
>
> I was thinking of using a Raspberry Pi to execute Frank Morgner's "USB
> CCID Emulator" and connect the Raspberry Pi to a computer USB port.
> I will have to find a male-male USB cable.
>
> If I understand correctly what "USB CCID Emulator" does it should work.
>
> I am open to other ideas :-)
>
> Bye
>
NXP has the code for an I2C to CCID bridge to allow the use of normal 
CCID/PCSC interactions to their SE050 chips.? The devkit (MCUExpresso) 
for the board mentioned in the link below has the source code for the 
bridge.? It's under the SE_hostlib_examples as the se VCOM device in the 
K64f sdk.

https://community.nxp.com/t5/Secure-Authentication/jcshell-se050-usb-i2c/td-p/1532879

This might be a good base to start from.? The code is written for an NXP 
K64F, which is ARM M4 based.? The particular board I worked with had 
Arduino compatible connections.

It's not exactly what I think you were asking about, but I would think 
you'd need to add a smart card emulator on the back end as well - or at 
least play around with the RAW interfaces.

Later, Mike




From frankmorgner at gmail.com  Mon Oct  2 10:35:16 2023
From: frankmorgner at gmail.com (Frank Morgner)
Date: Mon, 02 Oct 2023 19:35:16 +0200
Subject: [Pcsclite-muscle] Simulating a CCID reader in software?
In-Reply-To: <CAGstE8Bec-OxP1Co1PyTpmuJDLOkC7wvQU680JoCsKv3Pw7ovw@mail.gmail.com>
References: <CAGstE8BJLwGLXHDx3jRpW0=kQBLpr9LQXG+pGQs8uy_DszBogg@mail.gmail.com> <CAHrFiA-JGZgB8okv=JauOeEuyFoTXccG8uZ5NVRffkuOjAXMbA@mail.gmail.com> <CAGstE8Bec-OxP1Co1PyTpmuJDLOkC7wvQU680JoCsKv3Pw7ovw@mail.gmail.com>
Message-ID: <51577844-64DF-4FAA-AB84-AED6C056732D@gmail.com>

You Not only need the right cable, the pi's USB Chip Set also needs to Support Gadget Mode (i.e. at least pi 4):

https://raspberrypi.stackexchange.com/questions/1088/how-can-the-raspberry-pi-emulate-a-usb-storage-device#1090

More than a decade ago, i did exactly that with an openmoko Phone (See my Docs). You may need to extend the USB configuration (1), but my Emulator should also Work for you.

Regards, frank.

(1) https://github.com/frankmorgner/vsmartcard/blob/00f150856b3c824049f9183b38a656859dcefad4/ccid/src/usb.c#L259


Am 2. Oktober 2023 18:46:50 MESZ schrieb Ludovic Rousseau <ludovic.rousseau at gmail.com>:
>Le lun. 2 oct. 2023 ? 11:01, Jakub Jelen <jjelen at redhat.com> a ?crit :
>>
>> Hi,
>
>Hello,
>
>> as you probably know, we use vsmartcard for upstream OpenSC testing
>> with both applets running in jcardsim and for software implementation
>> of smart cards (libcacard, virt_cacard):
>>
>> https://github.com/Jakuje/virt_cacard
>
>Nice project.
>
>> It really depends on the use case and what you are trying to achieve.
>> In addition to the uses above, the libcacard was originally written
>> for the use in VMs so the qemu has a ccid interface which can be
>> connected to from outside of VM and emulate USB CCID device in the VM:
>>
>> https://www.qemu.org/docs/master/system/devices/ccid.html
>
>I did not know this feature of qemu. Thanks for the info.
>
>My goal is to be able to simulate a CCID reader in software so that I
>can control what the "reader" sends and to connect this physically to
>a computer.
>
>I was thinking of using a Raspberry Pi to execute Frank Morgner's "USB
>CCID Emulator" and connect the Raspberry Pi to a computer USB port.
>I will have to find a male-male USB cable.
>
>If I understand correctly what "USB CCID Emulator" does it should work.
>
>I am open to other ideas :-)
>
>Bye
>
>-- 
> Dr. Ludovic Rousseau
>
>_______________________________________________
>pcsclite-muscle mailing list
>pcsclite-muscle at lists.infradead.org
>http://lists.infradead.org/mailman/listinfo/pcsclite-muscle


From emaxx at google.com  Fri Oct  6 12:09:44 2023
From: emaxx at google.com (Maksim Ivanov)
Date: Fri, 6 Oct 2023 21:09:44 +0200
Subject: [Pcsclite-muscle] SCardBeginTransaction behavior under sharing
 violation
Message-ID: <CAH=wB8wHOHo3ZVptj-5g96ZoV7w9j9JYhHOwuP3EHurBwH0G_w@mail.gmail.com>

Hello,

SCardBeginTransaction() is documented as "there will be no action
taken" in case the reader is already locked. Also the
SCARD_E_SHARING_VIOLATION error code is documented to be returned in
case "someone else has exclusive rights".

However, judging from the implementation, it seems that the
SCardBeginTransaction enters a poll loop, waiting for particular
results from the daemon. If I'm reading it correctly, the loop doesn't
exit as long as SCARD_E_SHARING_VIOLATION is received from the daemon
(https://github.com/LudovicRousseau/PCSC/blob/52670e567267baf3579581f32ef3756a3644b9f2/src/winscard_clnt.c#L1193),
meaning that the function would never return this code to the caller.

If so, is this an oversight in the documentation, or rather in the
implementation?


Regards,
Maksim


From ludovic.rousseau at gmail.com  Mon Oct 16 12:35:34 2023
From: ludovic.rousseau at gmail.com (Ludovic Rousseau)
Date: Mon, 16 Oct 2023 21:35:34 +0200
Subject: [Pcsclite-muscle] SCardBeginTransaction behavior under sharing
 violation
In-Reply-To: <CAH=wB8wHOHo3ZVptj-5g96ZoV7w9j9JYhHOwuP3EHurBwH0G_w@mail.gmail.com>
References: <CAH=wB8wHOHo3ZVptj-5g96ZoV7w9j9JYhHOwuP3EHurBwH0G_w@mail.gmail.com>
Message-ID: <CAGstE8D4y1qRHwA7=Epkj5p2Oq9o2oC6R93oNvi6N=+ZmSRWXw@mail.gmail.com>

Le ven. 6 oct. 2023 ? 21:11, Maksim Ivanov <emaxx at google.com> a ?crit :
> Hello,

Hello Maksim,

Sorry for the delay. Your email was in the gmail spam folder. Funny
for a email from @google.com

> SCardBeginTransaction() is documented as "there will be no action
> taken" in case the reader is already locked. Also the
> SCARD_E_SHARING_VIOLATION error code is documented to be returned in
> case "someone else has exclusive rights".

Exact
Documentation at
https://pcsclite.apdu.fr/api/group__API.html#gaddb835dce01a0da1d6ca02d33ee7d861
is/was incorrect.

> However, judging from the implementation, it seems that the
> SCardBeginTransaction enters a poll loop, waiting for particular
> results from the daemon. If I'm reading it correctly, the loop doesn't
> exit as long as SCARD_E_SHARING_VIOLATION is received from the daemon
> (https://github.com/LudovicRousseau/PCSC/blob/52670e567267baf3579581f32ef3756a3644b9f2/src/winscard_clnt.c#L1193),
> meaning that the function would never return this code to the caller.
>
> If so, is this an oversight in the documentation, or rather in the
> implementation?

>From SCardBeginTransaction MSDN
https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardbegintransaction
" The function waits for the completion of all other transactions
before it begins. ".
So blocking is the expected behaviour.

I fixed the documentation in
https://github.com/LudovicRousseau/PCSC/commit/14fae208e37b991efdcc858e34af3b8c57809ddb

Thanks

--
 Dr. Ludovic Rousseau


From emaxx at google.com  Mon Oct 16 15:41:04 2023
From: emaxx at google.com (Maksim Ivanov)
Date: Tue, 17 Oct 2023 00:41:04 +0200
Subject: [Pcsclite-muscle] SCardBeginTransaction behavior under sharing
 violation
In-Reply-To: <CAGstE8D4y1qRHwA7=Epkj5p2Oq9o2oC6R93oNvi6N=+ZmSRWXw@mail.gmail.com>
References: <CAH=wB8wHOHo3ZVptj-5g96ZoV7w9j9JYhHOwuP3EHurBwH0G_w@mail.gmail.com>
 <CAGstE8D4y1qRHwA7=Epkj5p2Oq9o2oC6R93oNvi6N=+ZmSRWXw@mail.gmail.com>
Message-ID: <CAH=wB8wGaA2W5BXArJOsGT4G4kf2Apn_v1mKz6TNxO8tBVg3DA@mail.gmail.com>

Hello Ludovic,

Thank you for the fix!

And I'll try to find out internally whether there's some bug with my
email address :-)


Regards,
Maksim


On Mon, Oct 16, 2023 at 9:35?PM Ludovic Rousseau
<ludovic.rousseau at gmail.com> wrote:
>
> Le ven. 6 oct. 2023 ? 21:11, Maksim Ivanov <emaxx at google.com> a ?crit :
> > Hello,
>
> Hello Maksim,
>
> Sorry for the delay. Your email was in the gmail spam folder. Funny
> for a email from @google.com
>
> > SCardBeginTransaction() is documented as "there will be no action
> > taken" in case the reader is already locked. Also the
> > SCARD_E_SHARING_VIOLATION error code is documented to be returned in
> > case "someone else has exclusive rights".
>
> Exact
> Documentation at
> https://pcsclite.apdu.fr/api/group__API.html#gaddb835dce01a0da1d6ca02d33ee7d861
> is/was incorrect.
>
> > However, judging from the implementation, it seems that the
> > SCardBeginTransaction enters a poll loop, waiting for particular
> > results from the daemon. If I'm reading it correctly, the loop doesn't
> > exit as long as SCARD_E_SHARING_VIOLATION is received from the daemon
> > (https://github.com/LudovicRousseau/PCSC/blob/52670e567267baf3579581f32ef3756a3644b9f2/src/winscard_clnt.c#L1193),
> > meaning that the function would never return this code to the caller.
> >
> > If so, is this an oversight in the documentation, or rather in the
> > implementation?
>
> From SCardBeginTransaction MSDN
> https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardbegintransaction
> " The function waits for the completion of all other transactions
> before it begins. ".
> So blocking is the expected behaviour.
>
> I fixed the documentation in
> https://github.com/LudovicRousseau/PCSC/commit/14fae208e37b991efdcc858e34af3b8c57809ddb
>
> Thanks
>
> --
>  Dr. Ludovic Rousseau


From public.irkutsk at gmail.com  Fri Oct 27 01:34:50 2023
From: public.irkutsk at gmail.com (Andrey Af)
Date: Fri, 27 Oct 2023 08:34:50 +0000
Subject: [Pcsclite-muscle] PCSC proxy mode and READER_STATE struct
Message-ID: <CAGusqHLzAGqQcyysdOJphuucnVstJHQ_4Zn-tLQxyFyn=WTWrw@mail.gmail.com>

Hi all, I use the pcsc-lite-1.8.24 API.

So, PCSC API call to SCardGetStatusChange does the conversion from
READER_STATE to CARDREADER_STATE.
But I have an internal myScardGetStatusChange call and I get a ready
SCARD READER_STATE.

How do I do the reverse conversion, from SCARD_READER_STATE to
READER_STATE, so that  SCardGetStatusChange is working?
I have variables dwCurrentState, dwEventState and need to get
readerState variable.

Sample code what am I doing:

(dwCurrentState, dwEventState, rgbAtr[]) = myGetStatusChange(hContext,
dwTimeout, readerName, dwCurrentState, dwEventState, rgbAtr[]);

if(dwEventState & ReaderStateChanged)
{
   READER_STATE[x].readerState = dwEventState & ReaderStatePresent ?
CardReaderStatePresent : CardReaderStateAbsent;
}

And returned READER_STATE[] from unix socket, for CMD_GET_READERS_STATE.

When scanning, I get the token information, and then after a while -
"Card state: Card removed"


From ludovic.rousseau at gmail.com  Sat Oct 28 07:18:56 2023
From: ludovic.rousseau at gmail.com (Ludovic Rousseau)
Date: Sat, 28 Oct 2023 16:18:56 +0200
Subject: [Pcsclite-muscle] PCSC proxy mode and READER_STATE struct
In-Reply-To: <CAGusqHLzAGqQcyysdOJphuucnVstJHQ_4Zn-tLQxyFyn=WTWrw@mail.gmail.com>
References: <CAGusqHLzAGqQcyysdOJphuucnVstJHQ_4Zn-tLQxyFyn=WTWrw@mail.gmail.com>
Message-ID: <CAGstE8A1dHxPbfnbgML1TOP8Y0swUGoKGO=1B8S4_boXxS4F9Q@mail.gmail.com>

Le ven. 27 oct. 2023 ? 10:36, Andrey Af <public.irkutsk at gmail.com> a ?crit :
>
> Hi all, I use the pcsc-lite-1.8.24 API.

Hello,

> So, PCSC API call to SCardGetStatusChange does the conversion from
> READER_STATE to CARDREADER_STATE.
> But I have an internal myScardGetStatusChange call and I get a ready
> SCARD READER_STATE.
>
> How do I do the reverse conversion, from SCARD_READER_STATE to
> READER_STATE, so that  SCardGetStatusChange is working?
> I have variables dwCurrentState, dwEventState and need to get
> readerState variable.

I don't know what you call SCARD_READER_STATE.

> Sample code what am I doing:
>
> (dwCurrentState, dwEventState, rgbAtr[]) = myGetStatusChange(hContext,
> dwTimeout, readerName, dwCurrentState, dwEventState, rgbAtr[]);
>
> if(dwEventState & ReaderStateChanged)
> {
>    READER_STATE[x].readerState = dwEventState & ReaderStatePresent ?
> CardReaderStatePresent : CardReaderStateAbsent;
> }
>
> And returned READER_STATE[] from unix socket, for CMD_GET_READERS_STATE.

You are trying to talk directly on the pcscd/libcsclite1 communication socket.
This is not supported or documented.

> When scanning, I get the token information, and then after a while -
> "Card state: Card removed"

You should first describe what you want to do at a high level.
For example what do you call "proxy mode"?

Bye

--
 Dr. Ludovic Rousseau


From public.irkutsk at gmail.com  Sun Oct 29 00:20:12 2023
From: public.irkutsk at gmail.com (Andrey Af)
Date: Sun, 29 Oct 2023 15:20:12 +0800
Subject: [Pcsclite-muscle] PCSC proxy mode and READER_STATE struct
In-Reply-To: <CAGstE8A1dHxPbfnbgML1TOP8Y0swUGoKGO=1B8S4_boXxS4F9Q@mail.gmail.com>
References: <CAGusqHLzAGqQcyysdOJphuucnVstJHQ_4Zn-tLQxyFyn=WTWrw@mail.gmail.com>
 <CAGstE8A1dHxPbfnbgML1TOP8Y0swUGoKGO=1B8S4_boXxS4F9Q@mail.gmail.com>
Message-ID: <CAGusqH+M2_e0BhzEdajpNGxvT2GuhSMwxp396-5Y0=JFsrzJyg@mail.gmail.com>

Hi Ludovic,
I found my mistake, I confused SCARD_STATE from PCSC and SCARD_STATE
from Microsoft.

>
> Le ven. 27 oct. 2023 ? 10:36, Andrey Af <public.irkutsk at gmail.com> a ?crit :
> >
> > Hi all, I use the pcsc-lite-1.8.24 API.
>
> Hello,
>
> > So, PCSC API call to SCardGetStatusChange does the conversion from
> > READER_STATE to CARDREADER_STATE.
> > But I have an internal myScardGetStatusChange call and I get a ready
> > SCARD READER_STATE.
> >
> > How do I do the reverse conversion, from SCARD_READER_STATE to
> > READER_STATE, so that  SCardGetStatusChange is working?
> > I have variables dwCurrentState, dwEventState and need to get
> > readerState variable.
>
> I don't know what you call SCARD_READER_STATE.
>
> > Sample code what am I doing:
> >
> > (dwCurrentState, dwEventState, rgbAtr[]) = myGetStatusChange(hContext,
> > dwTimeout, readerName, dwCurrentState, dwEventState, rgbAtr[]);
> >
> > if(dwEventState & ReaderStateChanged)
> > {
> >    READER_STATE[x].readerState = dwEventState & ReaderStatePresent ?
> > CardReaderStatePresent : CardReaderStateAbsent;
> > }
> >
> > And returned READER_STATE[] from unix socket, for CMD_GET_READERS_STATE.
>
> You are trying to talk directly on the pcscd/libcsclite1 communication socket.
> This is not supported or documented.

Ok. let's say I implemented an interface for the RDP protocol.
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpesc/60d5977d-0017-4c90-ab0c-f34bf44a74a5

So, I have all these calls - EstablishContext, ListReaders,
GetStatusChange ant etc.
I want to deliver remote smartcards to a local system. How do I
interact with the PCSC-LITE API?
Please tell me the right way.

>
> > When scanning, I get the token information, and then after a while -
> > "Card state: Card removed"
>
> You should first describe what you want to do at a high level.
> For example what do you call "proxy mode"?
>
> Bye
>
> --
>  Dr. Ludovic Rousseau


From ludovic.rousseau at gmail.com  Sun Oct 29 05:49:07 2023
From: ludovic.rousseau at gmail.com (Ludovic Rousseau)
Date: Sun, 29 Oct 2023 13:49:07 +0100
Subject: [Pcsclite-muscle] PCSC proxy mode and READER_STATE struct
In-Reply-To: <CAGusqH+M2_e0BhzEdajpNGxvT2GuhSMwxp396-5Y0=JFsrzJyg@mail.gmail.com>
References: <CAGusqHLzAGqQcyysdOJphuucnVstJHQ_4Zn-tLQxyFyn=WTWrw@mail.gmail.com>
 <CAGstE8A1dHxPbfnbgML1TOP8Y0swUGoKGO=1B8S4_boXxS4F9Q@mail.gmail.com> <CAGusqH+M2_e0BhzEdajpNGxvT2GuhSMwxp396-5Y0=JFsrzJyg@mail.gmail.com>
Message-ID: <CAGstE8DbNb=3Vvsjka4gQ50Kvom=VuZijNa0OUPXJxFWpNK_dQ@mail.gmail.com>

Hello,

Le dim. 29 oct. 2023 ? 08:20, Andrey Af <public.irkutsk at gmail.com> a ?crit :
> > You are trying to talk directly on the pcscd/libcsclite1 communication socket.
> > This is not supported or documented.
>
> Ok. let's say I implemented an interface for the RDP protocol.
> https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpesc/60d5977d-0017-4c90-ab0c-f34bf44a74a5
>
> So, I have all these calls - EstablishContext, ListReaders,
> GetStatusChange ant etc.
> I want to deliver remote smartcards to a local system. How do I
> interact with the PCSC-LITE API?
> Please tell me the right way.

You want to implement the server part, on the remote system without
the physical smart card reader?
Or the client part, on the user local system with the smart card
reader connected?

On the client part I would say to use the PC/SC API
https://pcsclite.apdu.fr/api/group__API.html

On the server side you have to provide an equivalent of libpcsclite.so.1

You want to implement an RDP client? or server?

Bye

--
 Dr. Ludovic Rousseau


From ludovic.rousseau at gmail.com  Sun Oct 29 10:09:55 2023
From: ludovic.rousseau at gmail.com (Ludovic Rousseau)
Date: Sun, 29 Oct 2023 18:09:55 +0100
Subject: [Pcsclite-muscle] New version of libccid: 1.5.2, 1.5.3 & 1.5.4
Message-ID: <CAGstE8Az4_MFipKcz_Fd2Cc=WDkhsGEU_5AjAhS7xMSd7=mz6g@mail.gmail.com>

Hello,

I just released version 1.5.4 of libccid the Free Software CCID class
smart card reader driver.

I forgot to announce the 2 previous versions so here they are all.

Changes:
1.5.4 - 29 October 2023, Ludovic Rousseau
   - fix a regression introduced in 1.5.3

1.5.3 - 25 October 2023, Ludovic Rousseau
   - Add support of
     - ACS ACR1552 1S CL Reader
     - ACS ACR1552 CL Reader
     - ACS ACR1581
     - ACS ACR40T ICC Reader
     - ACS ACR40U ICC Reader
     - ACS WalletMate 1S CL Reader
     - Aktiv Rutoken SCR 3101 NFC Reader
     - CIRIGHT ONE PASS U2F
     - Dexon Tecnologias Digitais LTDA eSmartDX
     - Excelsecu Card reader
     - GHI NC001
     - Identiv uTrust Token Flex
     - SpringCard M519 with idProduct: 0x6212
     - SpringCard M519 with idProduct: 0x621A
     - WCMi SD5931
   - parse: create output.bin file
   - udev: Disable USB-persist for CCID devices
   - configure: fail if flex is not found
   - Some other minor improvements

1.5.2 - 31 January 2023, Ludovic Rousseau
   - Add support of
     - KAPELSE KAP-LINK
     - LDU LANDI
     - Sensyl SSC-HV Reader
     - TOKEN2 MFA NFC Reader
     - TOKEN2 Molto2
     - Thales RF Reader
   - Alcor Micro AU9560: Remove high speeds since they are not supported
   - Hack for AlcorMicro AU9560 and Acos-ID card
   - configure.ac: disable the use of --disable-usbdropdir

https://ccid.apdu.fr/
https://blog.apdu.fr/posts/2023/01/new-version-of-libccid-152/
https://blog.apdu.fr/posts/2023/10/new-version-of-libccid-153/
https://blog.apdu.fr/posts/2023/10/new-version-of-libccid-154/

-- 
 Dr. Ludovic Rousseau


From public.irkutsk at gmail.com  Sun Oct 29 17:43:37 2023
From: public.irkutsk at gmail.com (Andrey Af)
Date: Mon, 30 Oct 2023 08:43:37 +0800
Subject: [Pcsclite-muscle] PCSC proxy mode and READER_STATE struct
In-Reply-To: <CAGstE8DbNb=3Vvsjka4gQ50Kvom=VuZijNa0OUPXJxFWpNK_dQ@mail.gmail.com>
References: <CAGusqHLzAGqQcyysdOJphuucnVstJHQ_4Zn-tLQxyFyn=WTWrw@mail.gmail.com>
 <CAGstE8A1dHxPbfnbgML1TOP8Y0swUGoKGO=1B8S4_boXxS4F9Q@mail.gmail.com>
 <CAGusqH+M2_e0BhzEdajpNGxvT2GuhSMwxp396-5Y0=JFsrzJyg@mail.gmail.com> <CAGstE8DbNb=3Vvsjka4gQ50Kvom=VuZijNa0OUPXJxFWpNK_dQ@mail.gmail.com>
Message-ID: <CAGusqH+DXgiYEPJ2qPCSdf+SaUtkLi+AUhi=8-ntFm2zR+7e4A@mail.gmail.com>

>
> Hello,
>
> Le dim. 29 oct. 2023 ? 08:20, Andrey Af <public.irkutsk at gmail.com> a ?crit :
> > > You are trying to talk directly on the pcscd/libcsclite1 communication socket.
> > > This is not supported or documented.
> >
> > Ok. let's say I implemented an interface for the RDP protocol.
> > https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpesc/60d5977d-0017-4c90-ab0c-f34bf44a74a5
> >
> > So, I have all these calls - EstablishContext, ListReaders,
> > GetStatusChange ant etc.
> > I want to deliver remote smartcards to a local system. How do I
> > interact with the PCSC-LITE API?
> > Please tell me the right way.
>
> You want to implement the server part, on the remote system without
> the physical smart card reader?
> Or the client part, on the user local system with the smart card
> reader connected?
>
> On the client part I would say to use the PC/SC API
> https://pcsclite.apdu.fr/api/group__API.html
>
> On the server side you have to provide an equivalent of libpcsclite.so.1
Yes, we are talking about the server part.
I can do a libpcsclite.so , but how to make it work, do you mean to
additionally use LD_LIBRARY_PATH?

>
> You want to implement an RDP client? or server?
>
> Bye
>
> --
>  Dr. Ludovic Rousseau


From ludovic.rousseau at gmail.com  Mon Oct 30 06:51:34 2023
From: ludovic.rousseau at gmail.com (Ludovic Rousseau)
Date: Mon, 30 Oct 2023 14:51:34 +0100
Subject: [Pcsclite-muscle] PCSC proxy mode and READER_STATE struct
In-Reply-To: <CAGusqH+DXgiYEPJ2qPCSdf+SaUtkLi+AUhi=8-ntFm2zR+7e4A@mail.gmail.com>
References: <CAGusqHLzAGqQcyysdOJphuucnVstJHQ_4Zn-tLQxyFyn=WTWrw@mail.gmail.com>
 <CAGstE8A1dHxPbfnbgML1TOP8Y0swUGoKGO=1B8S4_boXxS4F9Q@mail.gmail.com>
 <CAGusqH+M2_e0BhzEdajpNGxvT2GuhSMwxp396-5Y0=JFsrzJyg@mail.gmail.com>
 <CAGstE8DbNb=3Vvsjka4gQ50Kvom=VuZijNa0OUPXJxFWpNK_dQ@mail.gmail.com> <CAGusqH+DXgiYEPJ2qPCSdf+SaUtkLi+AUhi=8-ntFm2zR+7e4A@mail.gmail.com>
Message-ID: <CAGstE8C=aAW0vdAoq15iSMzUHUrZcF9EH+bvBYBWyxUJYq07wQ@mail.gmail.com>

Le lun. 30 oct. 2023 ? 01:43, Andrey Af <public.irkutsk at gmail.com> a ?crit :
> > On the server side you have to provide an equivalent of libpcsclite.so.1
> Yes, we are talking about the server part.
> I can do a libpcsclite.so , but how to make it work, do you mean to
> additionally use LD_LIBRARY_PATH?

I suggest to read and participate to "XRDP smartcard passthrough via
windows RDP client #2625"
https://github.com/neutrinolabs/xrdp/discussions/2625

Bye

--
 Dr. Ludovic Rousseau


