I have just released version 1.8.2 of
libccid the Free Software CCID class smart
card reader driver.
This version resolves an issue that was introduced in version 1.8.1, which was
released three days ago. Composite devices (devices with both a CCID
interface and also another interface, such as HID) were not being handled
correctly. Yubico Yubikey tokens, for example, are often composite
devices.
Thank you
Less than three days after the release of version 1.8.1, I received three bug
reports concerning an issue with Yubikey tokens.
The bug reports either contain the problematic Git commit or a proposed
patch to solve the problem. That was surprising.
I realise that bug reports are the main way of finding out whether
people are using my software. Perhaps I should introduce more bugs to
prompt a reaction? 😏
You can also email me to let me know that everything is working fine and
that you are happy. My contact details can be found on the
About me page.
Changes:
1.8.2 - 13 June 2026, Ludovic Rousseau
Fix initialisation of composite devices (like Yubico tokens)
Correctly close the slots of a multi-slots reader (serial)
pcsc-lite is a Free Software
implementation of the PC/SC
(also known as WinSCard) API for Unix systems. It provides an API for
using smart cards and
smart card readers.
This version contains a bug fix for multi-slots readers. The bug was
introduced in the previous version 2.5.0 released 2 weeks ago.
Changes:
2.5.1: Ludovic Rousseau
10 June 2026
Fix a bug (introduced in 2.5.0) with multi-slots readers
Since the first version of pcsc-lite (in 2002 according to git history) the maximum number of readers has been set to
16. This number is defined by the PCSCLITE_MAX_READERS_CONTEXTS
constant.
Since pcsc-lite was limited to 16
readers it was obvious to also limit the number of devices supported
by the CCID driver to 16.
This limitation is problematic for some use cases. While it is possible
to change the value of PCSCLITE_MAX_READERS_CONTEXTS and rebuild
both pcsc-lite and the driver, this has side effects. See
Fedora, flatpak and pcsc-lite for more information.
I had already calculated the amount of RAM that could be saved by using
a list instead of a fixed-size array:
You can now use as many readers as you want.
In fact, no. There is still a limit of 256 readers due to the naming
scheme used by pcsc-lite for readers. Readers will go from 00 to FF. See
What is in a PC/SC reader name?.
Backward compatibility
In version 2.4.1 of pcsc-lite I introduced the ability to mix different
versions of the internal communication protocol between the PC/SC daemon
(pcscd) and the PC/SC library (libpcsclite). See
pcsc-lite backward & forward compatible with itself.
In order to remove the limitation of the reader number, I had to update
this internal communication protocol again. However, I tried to make it
smart so that an old libpcsclite can communicate with a recent
pcscd or vice versa. The application will still only recognise up to
16 readers, but at least it should work.
pcsc-lite is a Free Software
implementation of the PC/SC
(also known as WinSCard) API for Unix systems. It provides an API for
using smart cards and
smart card readers.
The major change in this version is: no more limited to 16 smart card
readers.
Changes:
2.5.0: Ludovic Rousseau
27 May 2026
Do not limit to 16 readers only
Remove support of autotools
Fix a crash when rescanning serial configs
Fix a memory leak in Polkit
tokenparser: avoid a crash with corrupted Info.plist files
Which smart card reader is present in a particular laptop model? It can
be difficult to find out the exact model of smart card reader included
in a laptop before buying it.
However, thanks to the Hardware for Linux project, you can submit your own hardware
configuration and also consult the configurations of many laptops and
desktops to find out what hardware is included.
An important point to note is that the first five on the list should be
correct, as they correspond to the manufacturers of embedded smart card
readers. However, the next five in the list are often (if not always)
external smart card readers that are connected via a USB port and not
integrated into the laptop. For instance, I am not aware of any Yubico
readers that are embedded in laptops. These readers are listed on
https://linux-hardware.org/ because they were plugged in when the user
ran the hw-probe program to scan and report the hardware
configuration.
Which laptop manufacturers use which smart card reader?
You can click on a specific slice of the Chipcard Vendor pie chart to
see which laptop manuifacturers uses this smart card reader brand.
Broadcom
All Broadcom readers are used by Dell.
Alcor Micro
#
Vendor
Percent
1
Lenovo
82.4%
2
Hewlett-Packard
8.6%
3
Fujitsu
6.5%
4
Acer
0.7%
5
ASUSTek Computer
0.4%
O2 Micro
#
Vendor
Percent
1
Dell
40.8%
2
Fujitsu
37.3%
3
Toshiba
19.7%
4
Fujitsu Siemens
2.1%
Upek
All of Upek readers are used by Lenovo.
It looks like the Upek devices are "TouchChip Fingerprint Coprocessor"
and not an "Integrated Smart Card Reader". I don't know why they are
listed as "Chipcard Vendor". Perhaps it is a bug or limitation of
https://linux-hardware.org/.
Lenovo
Unsurprisingly, all of Lenovo readers are used by... Lenovo.
Corresponding CCID devices
It is possible to list the CCID devices of each manufacturer that I know
of:
Only three main vendors of smart card readers are used in laptops: Broadcom,
Alcor Micro and O2 Micro.
Do they produce good products? Are their products supported by my CCID
driver? These are both very good questions, but for other blog articles.
To be continued...
Version 1.7.4 of pcsc-tools provides an enhanced version of the
pcsc_scan tool.
Problem
The program waits for card and reader events and reports any
smart card events. If no reader or card is inserted or removed,
nothing happens.
Since version 1.6.0 (New version of pcsc-tools: 1.6.0) the program
has included an animation (cycling \|/- characters) to indicate that
it is waiting. However, this was not obvious to users who did not know
how to stop the program or what to do.
Solution
Now when the program is waiting for an event it displays a message such
as:
Waiting for the first reader... \ (use Ctrl-C to exit)
or
Insert or remove a card or a reader... / (use Ctrl-C to exit)
I hope this makes it clearer what the user is expected to do.
Demo
The animation was recorded and played using asciinema.
The sequence in the animation below correspons to: