Skip to content

LudovicRousseau/CCID

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

USB CCID IFD Handler
====================

  This package provides the source code for a generic USB CCID
(Chip/Smart Card Interface Devices) driver. See [1] for the USB CCID
specifications from the USB working group.


Author:
=======

- Ludovic Rousseau <[email protected]>


Supported CCID readers:
=======================

(in alphabetical order)
- Gemplus GemPC 433 SL [2]
- Gemplus GemPC Key [3]
- Gemplus GemPC Twin [4]
- OmniKey CardMan 3121 [5]
- SCM Micro SCR 331 [6]
- SCM Micro SCR 335 [7]


Unsupported CCID readers:
=========================

- none known


Supported operating systems:
============================

- GNU/Linux (libusb 0.1.7)
- MacOS X/Darwin (libusb 0.1.8beta, CVS snapshot. See "Known problems")
  to libusb)


Known problems:
===============

MacOS X/Darwin
    readers enumeration

      You may have wrong reader identification if you two or more reader
      at the exact same time.
      pcscd and the CCID driver do not list connected readers in the same
      order. The driver has no way to know which reader has been
      detected as a new reader by pcscd. So if you plug two readers at
      the same time (for example if you start pcscd with two readers
      connected or if you plug a USB hub with two readers on the hub)
      you may have this (with two readers foo and bar):
      - pcscd scans the USB bus and finds a new CCID reader foo and calls
        the driver
      - the CCID driver scan the USB bus and finds a new reader bar
      - pcscd continues scanning the USB bus and finds the second reader
        bar and calls the driver
      - the CCID driver scan the USB bus and finds an unused reader foo.
      Now the reader foo will be called bar by pcscd and bar will be
      called foo.
      We don't have this under Linux or *BSD since the USB bus scanning
      method is the same for pcscd and the CCID driver.
      One solution would be to use IFDHCreateChannelByName() instead of
      IFDHCreateChannel() and specify the USB device to use.
      Another solution is to plug readers one after the other and not at
      the same time.

    hotplug

      Due to libusb work in progress the driver may crash on a reader
      insertion after a few insert/remove actions.
      So if your reader is always connected you should not have
      problems.
      A new version of libusb should fix this bug


Licence:
========

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

  This program 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
General Public License for more details.

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


History:
========

0.1.0 - 13 August 2003, Ludovic Rousseau
    - First public release


Bibliographie:
==============

[1] http:https://www.usb.org/developers/devclass_docs/ccid_classspec_1_00a.pdf
[2] http:https://www.gemplus.com/products/gempc433/
[3] http:https://www.gemplus.com/products/gempckey/
[4] http:https://www.gemplus.com/products/gempctwin/
[5] http:https://www.omnikey.com/en/produkt_details.php3?produkt=1&variante=47
[6] http:https://www.scmmicro.com/security/SCR331.html
[7] http:https://www.scmmicro.com/security/SCR335.html

$Id$

 vim:ts=20