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.
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.
Go in the Download
section. I provide .tar.bz2
archives ready to be built
using:
tar xzvf ccid-*.tar.xz cd ccid-* meson setup builddir cd builddir meson compile sudo meson install
The latest README is at README.md.
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 https://salsa.debian.org/rousseau/CCID.git cd CCID meson setup builddir cd builddir meson compile
You will need to also install:
--enable-embedded
Contact me if you want to see the support of the above not yet supported features and you have a budget.
In fact I may implement one of these features if you have a budget.
If you have a problem and want to get support from me you shall include the following information:
/usr/sbin/pcscd
--version
"Then you shall generate a complete log (do not truncate it).
pcscd
processsudo LIBCCID_ifdLogLevel=0x000F pcscd --foreground --debug --apdu --color | tee -i log.txt
log.txt
fileIf 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.
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..
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-*.tar.xz cd ccid-* meson setup builddir cd builddir meson compile 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:
All the readers are also included in a big matrix.
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 <ludovic.rousseau@free.fr>.
I reused source code from other free software projects whose authors are:
towitoko/
directory.openct/
directory. I (Ludovic Rousseau) greatly improved this
code.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
Any GNU/Linux distribution.
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.
If you need to build a custom version of my driver for macOS you can contact me.
The driver is available in the freshport.
The driver is available in pkgsrc as security/ccid.
It may or may not work.
I do maintain the package libccid.