CCID free software driver for Unix

Generic USB CCID (Chip/Smart Card Interface Devices) and ICCD (Integrated Circuit(s) Card Devices) driver for Unix systems (GNU/Linux, macOS, *BSD, etc.).

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

Download #

Binary

I do not provide binary packages on this web site.

Look for a package called libccid (Debian, Ubuntu, etc.) or pcsc-lite-ccid (RedHat, Fedora, etc.) in your distribution package repository. See Supported Operating Systems.

Get released/stable source code versions

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

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

The latest README is at README.md.

Get the current source code from git #

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

git clone --recursive https://salsa.debian.org/rousseau/CCID.git
cd CCID
./bootstrap
./configure
make

Dependencies

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:

Versions

Platform

Log

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 problem 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 pcsclite-muscle@lists.infradead.org..

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 below

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
./configure
make
sudo ./src/parse

or if you do not want to compile the program yourself you can use:

curl https://ccid.apdu.fr/files/parse.sh | bash - 

and send me (ludovic.rousseau@free.fr) the generated output.bin 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.

Authors #

The main author is Ludovic Rousseau <ludovic.rousseau@free.fr>.

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

Licence #

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

Any GNU/Linux distribution.

MacOS #

Apple includes my CCID driver (version 1.3.8, released in June 2008) since Leopard 10.5.6.

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), Ventura (13.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:

./MacOSX/configure
make
sudo make install

Solaris

The driver should work on Solaris.

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

FreeBSD

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 #

I do maintain the debian package libccid.