CCID free software driver

This package provides the source code for a generic USB CCID (Chip/Smart Card Interface Devices) driver and ICCD (Integrated Circuit(s) Card Devices).

See the USB CCID and ICCD specifications from the USB working group.

Source download

Get released/stable versions

Go in the Download section. I provide .tar.bz2 archives ready to be built using:

tar xzvf ccid-*.tar.bz2
cd ccid-*
make install

The latest README is at

Get the current source code from git

If you are a C-language developper (or you know what you are doing), you can also access the git developement version. You may need to use the git version to support the latest added readers.

git clone --recursive


You will need to also install:

Main CCID/ICCD features supported

CCID features not yet supported

Contact me if you want to see the support of the above not yet supported features and you have a budget.

Non CCID features that I do not plan to support

In fact I may implement one of these features if you have a budget.

How to get support

If you have a problem and want to get support from me you shall include the following information:




Then you shall generate a complete log (do not truncate it).

gdb backtrace

If you experience a crash of pcscd it is useful for me to have a backtrace.

$ gdb pcscd
(gdb) set args --foreground --debug --apdu
(gdb) run
wait for the crash to happen
(gdb) backtrace

Then copy/paste the complete output in your bug report.

Mailing list

If you have general questions or bug reports you should use the Pcsclite-muscle mailing list.

First search the mailing list archives. Maybe your probem has already been reported and solved. If you have not found a solution then subscribe to the Pcsclite-muscle mailing list and send your request to

Check reader's compliance to CCID specification

To know if a smart card reader is CCID compliant and should be supported by this driver but is not listed bellow

Just get the source code of this driver, install the build dependencies (see Build-Depends: for Debian systems) and do:

tar xjvf ccid-x.y.z.tar.bz2
cd ccid-x.y.z
sudo ./src/parse > output.txt

and send me ( the generated output.txt file.

If your reader is CCID compliant and you would like to add it to the list of readers I would also need:

CCID/ICCD readers

All the readers are also included in a big matrix.

Reader selection

You can use an interactive reader selection tool at: Reader selection.

See Reader Selection: find the smart card reader you search for a presentation of the tool.


The main author is Ludovic Rousseau <>.

I reused source code from other free software projects whose authors are:


This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

The complete licence is available at GNU Lesser General Public License, version 2.1

Supported Operating Systems


GNU/Linux using libusb 1.0.x and later


Apple includes my CCID driver (version 1.3.8, released in June 2008) since Leopard 10.5.6. See the mail from Shawn Geddis to have a list of changes.

See the evolutions of the CCID driver in Lion (10.7), Mountain Lion (10.8), Mavericks (10.9), Yosemite (10.10), El Capitan (10.11), Sierra (10.12), High Sierra (10.13), Mojave (10.14), Catalina (10.15), Big Sur (11.0), Monterey (12.0).

Mac OS X Snow Leopard (10.6) and later are supported without patches. To build and install the driver you need to extract the archive and do:

sudo make install


The driver should work on Solaris.

I can't test is myself so patches are welcome if needed.

You can find a PC/SC-lite package form Oracle.


The driver is available in the freshport.

NetBSD (pkgsrc)

The driver is available in pkgsrc as security/ccid.

Other operating systems

It may or may not work.

Available binaries

The drivers are also available as debian packages libccid