/[pcsclite]/trunk/Drivers/ccid/README
ViewVC logotype

Contents of /trunk/Drivers/ccid/README

Parent Directory Parent Directory | Revision Log Revision Log


Revision 697 - (hide annotations) (download)
Fri Feb 13 07:57:25 2004 UTC (9 years, 4 months ago) by rousseau
File size: 8599 byte(s)
release 0.4.0
1 rousseau 269 USB CCID IFD Handler
2     ====================
3    
4     This package provides the source code for a generic USB CCID
5     (Chip/Smart Card Interface Devices) driver. See [1] for the USB CCID
6 rousseau 273 specifications from the USB working group.
7 rousseau 269
8    
9 rousseau 697 Authors:
10     ========
11 rousseau 269
12     - Ludovic Rousseau <ludovic.rousseau@free.fr>
13 rousseau 697 - Carlos Prados for the TPDU T=1 code (taken from his towitoto driver)
14 rousseau 269
15    
16     Supported CCID readers:
17     =======================
18    
19 rousseau 273 (in alphabetical order)
20     - Gemplus GemPC 433 SL [2]
21     - Gemplus GemPC Key [3]
22     - Gemplus GemPC Twin [4]
23 rousseau 523 - LTC31 from C3PO [8]
24 rousseau 273 - OmniKey CardMan 3121 [5]
25     - SCM Micro SCR 331 [6]
26     - SCM Micro SCR 335 [7]
27 rousseau 606
28    
29     Should work but untested by me:
30     ===============================
31    
32     I would like to get these readers to perform test and validation and
33     move them in the supported list above. If you are one of the
34     manufacturers, please, contact me.
35    
36 rousseau 666 - SCM Micro SCR 331-DI [11]
37 rousseau 553 - SCM Micro SPR 532 [9]
38 rousseau 606 - ActivCard USB reader 2.0 [10]
39 rousseau 677 - Silitek SK-3105 keyboard [12]
40 rousseau 269
41    
42     Unsupported CCID readers:
43     =========================
44    
45 rousseau 523 None known.
46 rousseau 269
47    
48 rousseau 321 Supported operating systems:
49     ============================
50    
51     - GNU/Linux (libusb 0.1.7)
52     - MacOS X/Darwin (libusb 0.1.8beta, CVS snapshot. See "Known problems")
53     to libusb)
54    
55    
56     Known problems:
57     ===============
58    
59 rousseau 326 All platforms
60 rousseau 321 readers enumeration
61 rousseau 326 """""""""""""""""""
62     You may have wrong reader identification if you connect two or
63     more reader at the exact same time.
64 rousseau 321
65 rousseau 326 The daemon pcscd and the CCID driver do not list connected readers
66     in the same order. The driver has no way to know which reader has
67     been detected as a new reader by pcscd.
68    
69     So if you plug two readers at the same time (for example if you
70     start pcscd with two readers connected or if you plug a USB hub
71     with two readers on the hub) you may have this (with two readers
72     foo and bar):
73     - pcscd scans the USB bus and finds a new CCID reader foo and
74     calls the driver
75     - the CCID driver scan the USB bus and finds a new different
76     reader bar
77 rousseau 321 - pcscd continues scanning the USB bus and finds the second reader
78     bar and calls the driver
79     - the CCID driver scan the USB bus and finds an unused reader foo.
80    
81 rousseau 326 Now the reader foo will be called bar by pcscd and bar will be
82     called foo. This may not be a problem if the two readers have
83     the same name. But it is strange to insert a card in the
84     physical reader foo and see pcscd detect the card insertion in
85     the reader he calls bar.
86    
87     The solution is to use IFDHCreateChannelByName() instead of
88     IFDHCreateChannel() and specify the USB device to use. But pcscd
89     does not implement IFDHCreateChannelByName() yet. Maybe in the
90     future.
91    
92     Another solution is to plug readers one after the other and not
93     at the same time.
94    
95 rousseau 340 *BSD
96     libusb
97     """"""
98     The libusb does not yet support USB interrupt endpoints. You will
99     notice that the driver will stop working as soon as you insert a
100     card in the reader.
101     A new version of libusb should fix this bug.
102 rousseau 321
103 rousseau 340
104 rousseau 273 Licence:
105     ========
106    
107 rousseau 269 This program is free software; you can redistribute it and/or modify
108     it under the terms of the GNU General Public License as published by the
109     Free Software Foundation; either version 2 of the License, or (at your
110     option) any later version.
111    
112     This program is distributed in the hope that it will be useful, but
113     WITHOUT ANY WARRANTY; without even the implied warranty of
114     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
115     General Public License for more details.
116    
117     You should have received a copy of the GNU General Public License
118     along with this program; if not, write to the Free Software Foundation,
119     Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
120    
121    
122     History:
123     ========
124    
125 rousseau 697 0.4.0 - 13 February 2004, Ludovic Rousseau
126     - support of T=1 with TPDU readers. A lot of the T=1 code comes from
127     Carlos Prados towitoko driver.
128     My code is GNU GPL, his code is GNU LGPL so the global driver is
129     GNU GPL
130     - PPS negotiation if the reader does not do it automatically
131     - add support for the Silitek SK-3105 keyboard. It's a USB device
132     with multiple interfaces
133     - use the create_Info_plist.pl script to generate the installed
134     Info.plist from an Info.plist template and a list of supported
135     readers. The Info.plist was too "complex" to maintain by hand
136     since it now contains 11 entries
137     - add support of IFDHCreateChannelByName to avoid wrong reader
138     enumeration. This is not complete if you have multiple _identical_
139     readers. You need to use a > 1.2.0 pcsc-lite version (not yet
140     released at that time)
141     - build but do not install the serial ccidtwin driver by default
142     since it is useless on computers without a serial port or without
143     this reader for example.
144     - read and write timeouts are not symmetric. write timout can be
145     shorter since the reader and card is not supposed to do anything
146     before receiving (write) a command
147     - do not try to find usb.h and other libusb files if
148     --disable-libusb is used. Needed if you only want to build the
149     serial driver. Thanks to Niki Waibel for the patch
150     - add a --enable-ccidtwindir argument to ./configure to specify the
151     serial GemPC Twin installation directory
152     - debug and code improvements and simplifications
153    
154 rousseau 552 0.3.2 - 4 November 2003, Ludovic Rousseau
155     - src/commands.c: correct a stupid bug that occurs with an APDU with
156     2 bytes response.
157     - Info.plist: add SPR 532 in list of supported readers
158     - parse.c: do not exit if the InterfaceClass is 0xFF (proprietary).
159     It is the case with old readers manufactured before the final
160     release of the CCID specs.
161     - move LTC31 reader from unsupported to supported reader list. It
162     was my f ault since in used odd INS byte in my test applet and odd
163     INS bytes are forbidden by ISO 7816-4 ch. 5.4.2 Instruction byte.
164     Thanks to Josep Moné s Teixidor for pointing the problem.
165     - src/commands.c: comment out the automatic GET RESPONSE part. I
166     don't think it should be in the driver. Maybe in pcscd instead?
167    
168 rousseau 467 0.3.1 - 23 September 2003, Ludovic Rouseau
169     - add --enable-multi-thread (enabled by default) for thread safe
170     support an APDU multiplexing. You will need pcsc-lite-1.2.0-rc3 or
171     above to use this feature.
172     - add --enable-libusb=PATH option is your libusb is not installed in
173     /usr or /usr/local
174     - honor DESTDIR in install rules (closes [ #300110 ]). Thanks to
175     Ville Skyttä for the patch.
176     - src/ccid.c: do not switch the GemPC Key and GemPC Twin in APDU
177     mode since it also swicth in EMV mode and may not work with non
178     EMV cards
179     - src/ccid_serial.c: complete reimplementation of the Twin serial
180     protocol using a finite state automata (code much simpler)
181    
182 rousseau 423 0.3.0 - 10 September 2003, Ludovic Rousseau
183     - support of GemPC Twin connected to a serial port. Thanks to Niki
184     W. Waibel for a working prototype.
185     - support of auto voltage at power up if the reader support it
186     instead of forcing a 5V in all cases.
187     - support of APDU mode instead of just TPDU if the reader support
188     it. Thanks to Jean-Luc Giraud for the idea and inspiration I got
189     from his "concurrent" driver.
190 rousseau 425 - support of "time request" from the card.
191 rousseau 423 - parse: new indentation for more readability of supported features.
192     - switch the GemPC Key and GemPC Twin in APDU mode since they
193     support it but do not announce it in the dwFeatures.
194     - new build process using autoconf/automake.
195    
196 rousseau 342 0.2.0 - 26 August 2003, Ludovic Rousseau
197     - Works under MacOS X
198     - Info.plist: use an <array></array> for the alias enumeration
199     - Makefile rework for *BSD and MacOS X
200    
201 rousseau 273 0.1.0 - 13 August 2003, Ludovic Rousseau
202     - First public release
203 rousseau 269
204    
205 rousseau 425 Bibliography:
206     =============
207 rousseau 269
208     [1] http://www.usb.org/developers/devclass_docs/ccid_classspec_1_00a.pdf
209 rousseau 273 [2] http://www.gemplus.com/products/gempc433/
210     [3] http://www.gemplus.com/products/gempckey/
211 rousseau 269 [4] http://www.gemplus.com/products/gempctwin/
212 rousseau 273 [5] http://www.omnikey.com/en/produkt_details.php3?produkt=1&variante=47
213     [6] http://www.scmmicro.com/security/SCR331.html
214     [7] http://www.scmmicro.com/security/SCR335.html
215 rousseau 423 [8] http://www.c3po.es/pcsc.htm
216 rousseau 553 [9] http://www.scmmicro.com/security/SPR532.html
217 rousseau 606 [10] http://www.activcard.com/products/usb_reader.html
218 rousseau 666 [11] http://www.scmmicro.com/security/SCR331-DI.html
219 rousseau 677 [12] http://www.silitek.com/prod/getProduct.do?xml_id=4_2&menu_id=4_2_8&cid=1_8_5
220 rousseau 269
221     $Id$
222    
223     vim:ts=20

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.5