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.
The main author is Ludovic Rousseau <ludovic.rousseau@free.fr>.
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
30 April 2008, ccid-1.3.6, README.
You can also access the Subversion developement version. You may need to use the Subversion version to support the latest added readers.
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:
Then you shall generate a complete log.
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 and do:
tar xzvf ccid-x.y.z.tar.gz cd ccid-x.y.z ./configure make sudo ./src/parse > output
and send me the generated output file.
then contact me.


Old versions of this reader are bogus: the reader do timeout when a special USB frame is sent from the reader. If the frame size if a multiple of wMaxPacketSize the communication is stopped.
Firmware 1.01 is bogus. The time request sent by the card is not forwarded by the reader to the host.














If you want official support from Gemalto you can use this driver. See also Gemalto drivers in the known problems section.

If you want official support from the Gemalto you can use this driver. See also Gemalto drivers in the known problems section.

Known problems/limitations:
If you want official support from the Gemalto you can use this driver. See also Gemalto drivers in the known problems section.

If you want official support from the Gemalto you can use this driver. See also Gemalto drivers in the known problems section.

If you want official support from the Gemalto you can use this driver. See also Gemalto drivers in the known problems section.








This reader is common as an internal reader in laptops like the Dell D420 or D820.











I would like to get these readers to perform test and validation and move them in the supported list above. If you are one of the manufacturers, please, contact me.







If you want official support from the manufacturer you can use this driver.







This reader is common as an internal reader in laptops.





The RFID interface is not supported.

The HID PROX interface is not supported.

The RFID interface is not supported.












The reader do timeout when a special USB frame is sent from the reader. If the frame size if a multiple of wMaxPacketSize the communication is stopped.
Some users report that this reader is in fact a SCR-331 with a different firmware and that you can upgrade its firmware to transform it into a (supported) SCR-331 reader.

The reader works fine with Linux kernel 2.4 but does not with Linux kernel 2.6. The ioctl() syscall returns EINVAL (Invalid argument). The manufacturer is working on a solution.
For linux 2.6 you have to use this patch and recompile the kernel as described here.

The reader does work with the belgium eID (the reader is sold for this application) until you remove the card and the reader goes mad.

Time requests are not managed correctly and make the firmware fails. This is not a problem unless you use a time-consuming APDU like RSA key generation.
A new firmware will correct the bug.

Time requests are not managed and the driver may time out without any response from the reader. This is not a problem unless you use a time-consuming APDU like RSA key generation.
GNU/Linux using libusb 0.1.7 and later
To be able to use the asynchronous card movement notification (instead of active polling every 400ms) you need to use libusb > 0.1.12 (not yet available) or use this patch. See the discussion on the MUSCLE list.
Mac OS X Leopard (10.5) is supported without patches. To build the driver you need to extract the archive and do:
$ ./MacOSX/configure $ make $ sudo make install
NOTE: The execution of ./MacOSX/configure will fail if you have a space character in your current working directory pathname.
NOTE: Apple's version of pcsc-lite installed with Leopard has many bugs and problems. See LeopardBugs for a list of known bugs.
Mac OS X Tiger (10.4) uses an old pcsc-lite with some problems:
You can use this (now unmaintained) patch.
The driver should work on Solaris.
I can't test is myself so patches are welcome if needed.
This driver is known to NOT work on FreeBSD. I don't know why and patches are welcome.
It may or may not work.
There is a bug in MacOSX libusb that crash the libusb library when you unplug a reader and replug it in another USB socket. So if you unplug a reader replug it in the same USB socket.
see my bug report.
Gemalto provides its own CCID driver for its CCID readers. The driver is available from Gemalto support page. This driver is based on my own CCID driver. AFAIK it is just an older version with a different version number. For example the Gemalto driver version 1.2.4 is equivalent to subversion revision 1862 from 2006-02-07 so before my 1.0.0 release.
I received some mails from users reporting bugs and asking for support. I DO NOT SUPPORT the Gemalto driver. You can either ask Gemalto support for support or use my own driver.
The drivers are also available as 
packages libccid
and
source or package.
$Id: ccid.html,v 1.161 2008-05-08 12:55:36 rousseau Exp $