| 6 |
specifications from the USB working group. |
specifications from the USB working group. |
| 7 |
|
|
| 8 |
|
|
| 9 |
Author: |
Authors: |
| 10 |
======= |
======== |
| 11 |
|
|
| 12 |
- Ludovic Rousseau <ludovic.rousseau@free.fr> |
- Ludovic Rousseau <ludovic.rousseau@free.fr> |
| 13 |
|
- Carlos Prados for the TPDU T=1 code (taken from his towitoto driver) |
| 14 |
|
|
| 15 |
|
|
| 16 |
Supported CCID readers: |
Supported CCID readers: |
| 17 |
======================= |
======================= |
| 18 |
|
|
| 19 |
(in alphabetical order) |
(in alphabetical order) |
| 20 |
|
- C3PO LTC31 [8] |
| 21 |
- Gemplus GemPC 433 SL [2] |
- Gemplus GemPC 433 SL [2] |
| 22 |
- Gemplus GemPC Key [3] |
- Gemplus GemPC Key [3] |
| 23 |
- Gemplus GemPC Twin [4] |
- Gemplus GemPC Twin [4] |
|
- LTC31 from C3PO [8] |
|
| 24 |
- OmniKey CardMan 3121 [5] |
- OmniKey CardMan 3121 [5] |
| 25 |
- SCM Micro SCR 331 [6] |
- SCM Micro SCR 331 [6] |
| 26 |
- SCM Micro SCR 335 [7] |
- SCM Micro SCR 335 [7] |
| 27 |
|
|
| 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 |
|
- ActivCard USB reader 2.0 [10] |
| 37 |
|
- C3PO LTC32 [13] |
| 38 |
|
- SCM Micro SCR 331-DI [11] |
| 39 |
|
- SCM Micro SCR 333 [15] |
| 40 |
- SCM Micro SPR 532 [9] |
- SCM Micro SPR 532 [9] |
| 41 |
|
- Silitek SK-3105 keyboard [12] or C3PO TLTC2USB [14] |
| 42 |
|
|
| 43 |
|
|
| 44 |
Unsupported CCID readers: |
Unsupported CCID readers: |
| 58 |
Known problems: |
Known problems: |
| 59 |
=============== |
=============== |
| 60 |
|
|
|
All platforms |
|
|
T=1 and TPDU |
|
|
"""""""""""" |
|
|
I do not yet included support of T=1 cards when the reader is in |
|
|
TPDU mode. |
|
|
If you have a T=1 card I recommand you to use a reader working in |
|
|
APDU mode. T=1 and TPDU will be supported in a future version of |
|
|
the driver. |
|
|
|
|
|
readers enumeration |
|
|
""""""""""""""""""" |
|
|
You may have wrong reader identification if you connect two or |
|
|
more reader at the exact same time. |
|
|
|
|
|
The daemon 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 different |
|
|
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. This may not be a problem if the two readers have |
|
|
the same name. But it is strange to insert a card in the |
|
|
physical reader foo and see pcscd detect the card insertion in |
|
|
the reader he calls bar. |
|
|
|
|
|
The solution is to use IFDHCreateChannelByName() instead of |
|
|
IFDHCreateChannel() and specify the USB device to use. But pcscd |
|
|
does not implement IFDHCreateChannelByName() yet. Maybe in the |
|
|
future. |
|
|
|
|
|
Another solution is to plug readers one after the other and not |
|
|
at the same time. |
|
|
|
|
|
MacOS X/Darwin |
|
|
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 |
|
|
|
|
| 61 |
*BSD |
*BSD |
| 62 |
libusb |
libusb |
| 63 |
"""""" |
"""""" |
| 88 |
History: |
History: |
| 89 |
======== |
======== |
| 90 |
|
|
| 91 |
|
0.4.1 - 14 February 2004, Ludovic Rousseau |
| 92 |
|
- distribute missing files readers/supported_readers.txt and |
| 93 |
|
src/create_Info_plist.pl |
| 94 |
|
'make install' failed because of this. |
| 95 |
|
|
| 96 |
|
0.4.0 - 13 February 2004, Ludovic Rousseau |
| 97 |
|
- support of T=1 with TPDU readers. A lot of the T=1 code comes from |
| 98 |
|
Carlos Prados towitoko driver. |
| 99 |
|
My code is GNU GPL, his code is GNU LGPL so the global driver is |
| 100 |
|
GNU GPL |
| 101 |
|
- PPS negotiation if the reader does not do it automatically |
| 102 |
|
- add support for the Silitek SK-3105 keyboard. It's a USB device |
| 103 |
|
with multiple interfaces |
| 104 |
|
- use the create_Info_plist.pl script to generate the installed |
| 105 |
|
Info.plist from an Info.plist template and a list of supported |
| 106 |
|
readers. The Info.plist was too "complex" to maintain by hand |
| 107 |
|
since it now contains 11 entries |
| 108 |
|
- add support of IFDHCreateChannelByName to avoid wrong reader |
| 109 |
|
enumeration. This is not complete if you have multiple _identical_ |
| 110 |
|
readers. You need to use a > 1.2.0 pcsc-lite version (not yet |
| 111 |
|
released at that time) |
| 112 |
|
- build but do not install the serial ccidtwin driver by default |
| 113 |
|
since it is useless on computers without a serial port or without |
| 114 |
|
this reader for example. |
| 115 |
|
- read and write timeouts are not symmetric. write timout can be |
| 116 |
|
shorter since the reader and card is not supposed to do anything |
| 117 |
|
before receiving (write) a command |
| 118 |
|
- do not try to find usb.h and other libusb files if |
| 119 |
|
--disable-libusb is used. Needed if you only want to build the |
| 120 |
|
serial driver. Thanks to Niki Waibel for the patch |
| 121 |
|
- add a --enable-ccidtwindir argument to ./configure to specify the |
| 122 |
|
serial GemPC Twin installation directory |
| 123 |
|
- debug and code improvements and simplifications |
| 124 |
|
|
| 125 |
0.3.2 - 4 November 2003, Ludovic Rousseau |
0.3.2 - 4 November 2003, Ludovic Rousseau |
| 126 |
- src/commands.c: correct a stupid bug that occurs with an APDU with |
- src/commands.c: correct a stupid bug that occurs with an APDU with |
| 127 |
2 bytes response. |
2 bytes response. |
| 183 |
[5] http://www.omnikey.com/en/produkt_details.php3?produkt=1&variante=47 |
[5] http://www.omnikey.com/en/produkt_details.php3?produkt=1&variante=47 |
| 184 |
[6] http://www.scmmicro.com/security/SCR331.html |
[6] http://www.scmmicro.com/security/SCR331.html |
| 185 |
[7] http://www.scmmicro.com/security/SCR335.html |
[7] http://www.scmmicro.com/security/SCR335.html |
| 186 |
[8] http://www.c3po.es/pcsc.htm |
[8] http://www.c3po.es/ltc31.html |
| 187 |
[9] http://www.scmmicro.com/security/SPR532.html |
[9] http://www.scmmicro.com/security/SPR532.html |
| 188 |
|
[10] http://www.activcard.com/products/usb_reader.html |
| 189 |
|
[11] http://www.scmmicro.com/security/SCR331-DI.html |
| 190 |
|
[12] http://www.silitek.com/prod/getProduct.do?xml_id=4_2&menu_id=4_2_8&cid=1_8_5 |
| 191 |
|
[13] http://www.c3po.es/ltc32.html |
| 192 |
|
[14] http://www.c3po.es/tltc2usb.html |
| 193 |
|
[15] http://www.scmmicro.com/security/SCR333.html |
| 194 |
|
|
| 195 |
$Id$ |
$Id$ |
| 196 |
|
|