Release 1.4.28
[pcsclite/CCID.git] / README
1 USB CCID IFD Handler
2 ====================
3
4 This package provides the source code for a generic USB CCID (Chip/Smart
5 Card Interface Devices) and ICCD (Integrated Circuit(s) Card Devices)
6 driver. See the USB CCID [1] and ICCD [2] specifications from the USB
7 working group.
8
9 [1] http://www.usb.org/developers/docs/devclass_docs/DWG_Smart-Card_CCID_Rev110.pdf
10 [2] http://www.usb.org/developers/docs/devclass_docs/DWG_Smart-Card_USB-ICC_ICCD_rev10.pdf
11
12 Authors:
13 ========
14
15 - Ludovic Rousseau <ludovic.rousseau@free.fr>
16 - Carlos Prados for the PPS and ATR parsing code (taken from his
17   towitoto driver) in towitoko/ directory.
18 - Olaf Kirch for the T=1 TPDU code (from the OpenCT package) in openct/
19   directory. I (Ludovic Rousseau) greatly improved this code.
20
21
22 CCID and ICCD readers:
23 ======================
24
25 A reader can be in one of these list:
26 - supported
27     See http://pcsclite.alioth.debian.org/ccid/supported.html
28 - should working
29     See http://pcsclite.alioth.debian.org/ccid/shouldwork.html
30 - unsupported
31     See http://pcsclite.alioth.debian.org/ccid/unsupported.html
32 - disabled
33     See http://pcsclite.alioth.debian.org/ccid/disabled.html
34
35
36 Supported operating systems:
37 ============================
38
39 - GNU/Linux (libusb 1.0)
40 - MacOS X/Darwin (libusb 1.0)
41
42 See also http://pcsclite.alioth.debian.org/ccid.html for more
43 information.
44
45
46 Debug informations:
47 ===================
48
49 The driver uses the debug function provided by pcscd. So if pcscd sends
50 its debug to stdout (pcscd --foreground) then the CCID driver will also
51 send its debug to stdout. If pcscd sends its debug to syslog (by
52 default) then the CCID driver will also send its debug to syslog.
53
54 You can change the debug level using the Info.plist configuration file.
55 The Info.plist is installed, by default, in
56 /usr/local/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
57 or set the environment variable LIBCCID_ifdLogLevel.
58
59 The debug level is set in the ifdLogLevel field. It is a binary OR
60 combination of 4 different levels.
61 - 1: critical: important error messages
62 - 2: info:     informative messages like what reader was detected
63 - 4: comm:     a dump of all the bytes exchanged between the host and the
64                reader
65 - 8: periodic: periodic info when pcscd test if a card is present (every
66                1/10 of a second)
67
68 By default the debug level is set to 3 (1 + 2) and correspond to the
69 critical and info levels.
70
71 You have to restart the driver so it read the configuration file again
72 and use the new debug level value.  To restart the driver you just need
73 to unplug all your CCID readers so the driver is unloaded and then replug
74 your readers. You can also restart pcscd.
75
76
77 Voltage selection
78 =================
79
80 You can change the voltage level using the Info.plist configuration
81 file.  The Info.plist is installed, by default, in
82 /usr/local/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
83
84 The voltage level is set in the ifdDriverOptions field. It is a binary OR
85 combination of 4 different levels.
86
87 -  0: power on the card at 5V (default value)
88 - 16: power on the card at 3V and, if 3V fails then use 5V
89 - 32: power on the card at 1.8V, then 3V and then 5V
90 - 48: let the reader decide
91
92 By default the voltage level is set to 0 and correspond to 5V.
93
94 You have to restart the driver so it read the configuration file again
95 and use the new debug level value.  To restart the driver you just need
96 to unplug all your CCID readers so the driver is unloaded and then replug
97 your readers.  You can also restart pcscd.
98
99
100 Licence:
101 ========
102
103   This library is free software; you can redistribute it and/or modify it
104 under the terms of the GNU Lesser General Public License as published by
105 the Free Software Foundation; either version 2.1 of the License, or (at
106 your option) any later version.
107
108   This library is distributed in the hope that it will be useful, but
109 WITHOUT ANY WARRANTY; without even the implied warranty of
110 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser
111 General Public License for more details.
112
113   You should have received a copy of the GNU Lesser General Public License
114 along with this library; if not, write to the Free Software Foundation,
115 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
116
117
118 History:
119 ========
120
121 1.4.28 - 11 October 2017, Ludovic Rousseau
122     - Add support of
123      . Athena IDProtect Flash
124      . Elatec TWN4/B1.06/CPF3.05/S1SC1.32/P (Beta 3)
125      . HID Global OMNIKEY 5122 Dual
126      . HID Global OMNIKEY 5122 Smartcard Reader
127      . IIT E.Key Crystal-1
128      . KRONEGGER Micro Core Platform
129      . KRONEGGER NFC blue Reader Platform
130      . Ledger Nano S
131      . REINER SCT cyberJack RFID standard
132      . REINER SCT cyberJack one
133      . SAFETRUST SABRE SCR
134      . SafeNet eToken 5300
135      . Unicept GmbH AirID USB Dongle
136      . Watchdata USB Key
137      . mCore SCard-Reader
138     - Disabled readers
139      . Jinmuyu Electronics Co., Ltd. MR800
140     - Fix non-pinpad HID global devices
141     - udev rules:
142      . allow rule overwrite
143      . Disable USB autosuspend on C3PO LTC31 v1 reader
144     - Some minor improvements
145
146
147 1.4.27 - 21 May 2017, Ludovic Rousseau
148     - Add support of
149      . ACS ACR1255U-J1
150      . ACS CryptoMate (T2)
151      . ANCUD CCID USB Reader & RNG
152      . DUALi DE-620 Combi
153      . FT CCID
154      . FT CCID KB
155      . FT U2F CCID KB
156      . FT U2F CCID KBOARD
157      . HID Global OMNIKEY 5422 Smartcard Reader
158      . InfoThink IT-102MU Reader
159      . Kapsch TrafficCom USB SAM reader
160      . MK Technology KeyPass S1
161      . Mulann PVT
162      . Regula RFID Reader
163      . Spyrus Inc PocketVault P-3X
164      . Unicept GmbH AirID USB
165     - Add Microchip SEC1210 UART support (when connected on a serial port)
166     - Add Zero Length Packet (ZLP) support for Gemalto IDBridge CT30 and K30
167       enable the patch using ./configure --enable-zlp
168     - Add support of HID Omnikey 5422 as multi slot reader (for macOS)
169     - Escape command: signals buffer overflow instead of silently
170       truncating the buffer
171     - Fix a bug with multi readers and pcscd uses hotplug_libusb (not the
172       recommended configuration)
173     - Some minor improvements
174
175
176 1.4.26 - 7 January 2017, Ludovic Rousseau
177     - Add support of
178       . Bit4id Digital DNA Key
179       . Bit4id tokenME FIPS v3
180       . INGENICO Leo
181       . appidkey GmbH ID60-USB
182     - PowerOn: the default algorithm is now 5V then 1.8V then 3V then fail.
183       It is still possible to change the initial voltage in the
184       Info.plist file.  Now, in any case, all the values are tried
185       before failing.
186     - Negotiate maximum baud rate when bNumDataRatesSupported = 0
187     - Some minor improvements
188
189
190 1.4.25 - 30 September 2016, Ludovic Rousseau
191     - Add support of
192       . Aladdin R.D. JaCarta (idProduct: 0x0402)
193       . Broadcom Corp 5880 (idProduct: 0x5832)
194       . Broadcom Corp 5880 (idProduct: 0x5833)
195       . Broadcom Corp 5880 (idProduct: 0x5834)
196       . ESMART Token GOST X2 ET1020-A
197       . Feitian VR504 VHBR Contactless & Contact Card Reader
198       . Feitian bR500
199       . Gemalto K50
200       . appidkey GmbH ID100-USB  SC Reader
201       . appidkey GmbH ID50 -USB
202     - Remove suport of
203      . Broadcom Corp 5880 (idProduct: 0x5800)
204      . Broadcom Corp 5880 (idProduct: 0x5805)
205      . KEBTechnology KONA USB SmartCard
206     - macOS: Fix composite device enumeration
207     - Fix crash with GemCore Pos Pro and GemCore Sim Pro
208     - Some minor improvements
209
210
211 1.4.24 - 22 May 2016, Ludovic Rousseau
212     - Add support of
213      . Generic USB Smart Card Reader
214      . Giesecke & Devrient GmbH StarSign CUT S
215      . HID AVIATOR Generic
216     - better support of Elatec TWN4 SmartCard NFC
217     - better support of SCM SCL011
218     - betetr support of HID Aviator generic
219     - fix SCARD_ATTR_VENDOR_IFD_SERIAL_NO attribute size
220     - fix a race condition on card events with multiple readers
221     - Some minor improvements
222
223
224 1.4.23 - 20 April 2016, Ludovic Rousseau
225     - Add support of
226       . ACS ACR3901U ICC Reader
227       . Alcor Micro AU9560
228       . Cherry SmartTerminal XX44
229       . HID Global OMNIKEY 3x21 Smart Card Reader
230       . HID Global OMNIKEY 5022 Smart Card Reader
231       . HID Global OMNIKEY 6121 Smart Card Reader
232       . IonIDe Smartcard Reader reader
233       . KACST HSID Reader
234       . KACST HSID Reader Dual Storage
235       . KACST HSID Reader Single Storage
236     - Remove support of
237       . VMware Virtual USB CCID
238     - Do NOT add support of
239       . DUALi DE-ABCM6
240     - Fix a busy loop consuming 100% of CPU for some composite USB devices
241       impacted readers: Yubico Yubikey NEO U2F+CCID and Broadcom BCM5880
242     - Remove support of (unused) option DRIVER_OPTION_RESET_ON_CLOSE
243     - log libusb error name instead of decimal value
244     - Some minor improvements
245
246
247 1.4.22 - 10 January 2016, Ludovic Rousseau
248     - Add support of
249       . Aktiv Rutoken PINPad 2
250       . Aladdin R.D. JC-WebPass (JC600)
251       . Aladdin R.D. JCR-770
252       . Aladdin R.D. JaCarta
253       . Aladdin R.D. JaCarta Flash
254       . Aladdin R.D. JaCarta LT
255       . Aladdin R.D. JaCarta U2F (JC602)
256       . Athena ASEDrive IIIe Combo Bio PIV
257       . Athena ASEDrive IIIe KB Bio PIV
258       . GEMALTO CT1100
259       . GEMALTO K1100
260       . Hitachi, Ltd. Hitachi Biometric Reader
261       . Hitachi, Ltd. Hitachi Portable Biometric Reader
262       . Nitrokey Nitrokey Storage
263       . THURSBY SOFTWARE TSS-PK1
264       . Thursby Software Systems, Inc. TSS-PK7
265       . Thursby Software Systems, Inc. TSS-PK8
266     - Patch for Microchip SEC1110 reader on Mac OS X (card events notification)
267     - Patch for Cherry KC 1000 SC (problem was with a T=1 card and case 2 APDU)
268     - Fix support of FEATURE_MCT_READER_DIRECT for the Kobil mIDentity
269       visual reader
270     - Set timeout to 90 sec for PPDU (Pseudo APDU) commands. This change
271       allows the use of a Secure Verify command sent as a PPDU through
272       SCardTransmit().
273     - Fix a crash when reader reader initialization failed
274     - Fix initialization bug with Gemalto Pinpad reader on Mac OS X
275     - Some minor bugs fixed
276
277
278 1.4.21 - 21 October 2015, Ludovic Rousseau
279     - Add support of
280       . ACS ACR1252 Dual Reader
281       . Chicony HP USB Smartcard CCID Keyboard JP
282       . Chicony HP USB Smartcard CCID Keyboard KR
283       . FT ePass2003Auto
284       . Feitian bR301 BLE
285       . Feitian iR301 (ProductID 0x0619)
286       . Feitian iR301 (ProductID 0x061C)
287       . Identiv @MAXX ID-1 Smart Card Reader
288       . Identiv @MAXX Light2 token
289       . Identiv CLOUD 2980 F Smart Card Reader
290       . Identiv Identiv uTrust 4701 F Dual Interface Reader
291       . Identiv SCR3500 A Contact Reader
292       . Identiv SCR3500 B Contact Reader
293       . Identiv SCR35xx USB Smart Card Reader
294       . Identiv uTrust 2900 R Smart Card Reader
295       . Identiv uTrust 2910 R Smart Card Reader
296       . Identiv uTrust 2910 R Taglio SC Reader
297       . Identiv uTrust 3512 SAM slot Token
298       . Identiv uTrust 3522 embd SE RFID Token
299       . Identiv uTrust 3700 F CL Reader
300       . Identiv uTrust 3701 F CL Reader
301       . Identive Identive CLOUD 4000 F DTC
302       . Liteon HP SC Keyboard - Apollo (Liteon)
303       . Liteon HP SC Keyboard - Apollo JP (Liteon)
304       . Liteon HP SC Keyboard - Apollo KR (Liteon)
305       . Nitrokey Nitrokey HSM
306       . Nitrokey Nitrokey Pro
307       . Nitrokey Nitrokey Start
308       . Rocketek RT-SCR1
309       . VASCO DIGIPASS 875
310       . WatchCNPC USB CCID Key
311     - Remove support of
312       . Crypto Stick Crypto Stick v1.4 is an old version of Nitrokey Nitrokey Pro
313       . Free Software Initiative of Japan Gnuk Token is an old version
314         of Nitrokey Nitrokey Start
315     - Add Feitain R502 dual interface (composite) reader on Mac OS X
316     - display a human readable version of the error code returned by
317       libusb
318     - Mac OS X: wait until libusb/the reader is ready
319     - some minor bugs fixed
320
321
322 1.4.20 - 5 August 2015, Ludovic Rousseau
323     - Add support of
324       . ACS ACR1251 Dual Reader
325       . Access IS NFC Smart Module
326       . BIFIT iToken
327       . BLUTRONICS BLUDRIVE II CCID (idProduct: 0x1079)
328       . Generic MultiCard Device
329       . NXP Pegoda 2 N
330       . SafeNet eToken 5100
331       . SafeNet eToken 7300
332       . Yubico Yubikey 4 CCID
333       . Yubico Yubikey 4 OTP+CCID
334       . Yubico Yubikey 4 OTP+U2F+CCID
335       . Yubico Yubikey 4 U2F+CCID
336     - Depends on libusb version 1.0.9 instead of 1.0.8
337     - The O2 Micro Oz776 reader only supports 9600 bps
338     - Change installation directory for Mac OS X El Capitan 10.11
339
340
341 1.4.19 - 13 May 2014, Ludovic Rousseau
342     - Add support of
343       . AK910 CKey (idProduct 0x0001)
344       . AK910 CKey (idProduct 0x0011)
345       . AK910 IDONE
346       . Broadcom Corp 5880 (idProduct: 0x5804)
347       . CASTLES EZCCID Smart Card Reader
348       . Cherry KC 1000 SC
349       . Cherry KC 1000 SC Z
350       . Cherry KC 1000 SC/DI
351       . Cherry KC 1000 SC/DI Z
352       . Cherry TC 1300
353       . Chicony USB Smart Card Keyboard
354       . Elatec TWN4 SmartCard NFC
355       . Feitian 502-CL
356       . Feitian eJAVA Token
357       . FujitsuTechnologySolutions GmbH Keyboard KB100 SCR
358       . FujitsuTechnologySolutions GmbH Keyboard KB100 SCR eSIG
359       . Hewlett-Packard HP lt4112 Gobi 4G Module
360       . Identive SCT3522CC token
361       . OMNIKEY AG 6121 USB mobile
362       . PIVKey T800
363       . REINER SCT tanJack Bluetooth
364       . Watchdata USB Key
365     - Add syslog(3) debug for Mac OS X Yosemite.
366       Use: sudo syslog -c "com.apple.ifdreader PID" -d to change the logging level.
367       See also "Change syslog logging level on Yosemite"
368       http://ludovicrousseau.blogspot.com/2015/03/change-syslog-logging-level-on-yosemite.html
369     - Remove ZLP patch for Gemalto IDBridge CT30 and K30. The patch was
370       causing problems with the K50.  A new reader firmware (version F)
371       solved the problem so the patch is no more needed.
372     - Fix a memory leak in an error path
373     - some minor bugs removed
374
375
376 1.4.18 - 13 September 2014, Ludovic Rousseau
377     - Add support of
378       . Cherry Cherry TC 1100
379       . Cherry Smart Card Reader USB
380       . Cherry Smartcard Keyboard G87-1xx44
381       . FujitsuTechnologySolutions GmbH Keyboard KB SCR2
382       . Lenovo Lenovo USB Smartcard Keyboard
383       . Yubico Yubikey NEO OTP+U2F+CCID
384       . Yubico Yubikey NEO U2F+CCID
385       . eID_R6 001 X8
386     - fix support of Omnikey CardMan 3121
387     - reduce memory consumed when configured with --enable-embedded
388     - prepare the port to UEFI
389
390
391 1.4.17 - 11 June 2014, Ludovic Rousseau
392     - Add support of
393       . Feitian R502
394       . Free Software Initiative of Japan Gnuk Token
395       . German Privacy Foundation Crypto Stick v2.0
396       . HID Global veriCLASS Reader
397       . HID OMNIKEY 5025-CL
398       . Identive Technologies Multi-ISO HF Reader - USB
399       . OMNIKEY 5421
400       . OMNIKEY AG 3121 USB
401       . udea MILKO V1.
402     - Fix support of O2 Micro Oz776. The reader is limited to 9600 bps
403     - some minor bugs removed
404
405
406 1.4.16 - 23 March 2014, Ludovic Rousseau
407     - Add support of
408       . Crypto Stick Crypto Stick v1.4
409       . Hewlett Packard USB Smartcard CCID Keyboard
410       . IID AT90S064 CCID READER
411       . INSIDE Secure VaultIC 405 Smart Object
412       . INSIDE Secure VaultIC 441 Smart Object
413       . Microchip SEC1110
414       . Microchip SEC1210
415       . Watchdata W5181
416     - Add support of DRIVER_OPTION_DISABLE_PIN_RETRIES
417       The Gemalto pinpad reader sends a VERIFY command with no PIN value
418       in order to retreive the remaining retries from the card.  Some
419       cards (like the OpenPGP card) do not support this.
420       It is now possible to disable this behavior from the Gemalto
421       Pinpad and Covadis Véga Alpha.
422     - add support of WTX received before SW during Secure Pin Entry Verify
423       The Swiss health care card sends a WTX request before returning
424       the SW code. If the reader is in TPDU and the card is in T=1 the
425       driver must manage the request itself.
426
427
428 1.4.15 - 14 February 2014, Ludovic Rousseau
429     - Add support of
430       . DUALi DRAGON NFC READER
431       . Feitian bR301
432       . Gemalto CR30 reader in serial communication
433       . Gemalto Ezio Shield Pro SC
434       . IIT E.Key Almaz-1C
435     - PIN_MODIFY_STRUCTURE & PIN_VERIFY_STRUCTURE: Fix calculation of
436       the command length after pcsc-lite 1.8.9 (October 2013) changed
437       the PCSC/reader.h header
438     - Add specific PIN min (0) & max (25) sizes for SmartTerminal
439       ST-2xxx
440     - Do not get the data rates if bNumDataRatesSupported = 0
441     - Support Gemalto features for pinpad readers MinimumPINSize,
442       MaximumPINSize and bEntryValidationCondition are fetched from the
443       reader firmware
444     - disable (broken) pinpad for Fujitsu SmartCase KB SCR eSIG
445     - examples/scardcontrol.c:
446       . Parse codes returned by a pinpad (as SW1/SW2)
447         Known codes for now are:
448         0x9000: Success
449         0x6400: Timeout
450         0x6401: Cancelled by user
451         0x6402: PIN mismatch
452         0x6403: Too short or too long PIN
453       . Retrieve min and max PIN sizes from the driver
454       . Retrieve bEntryValidationCondition from the driver
455     - be more strict for bInterfaceClass = 255 by also checking extra_length
456     - some minor bugs removed
457
458
459 1.4.14 - 25 November 2013, Ludovic Rousseau
460     - Add support of
461       . Gemalto GemCore SIM Pro firmware 2.0 (using USB)
462     - report FEATURE_IFD_PIN_PROPERTIES only for pinpad readers
463     - Generalize the management of (old) readers with bDeviceClass = 0xFF
464     - some minor bugs removed
465
466
467 1.4.13 - 9 October 2013, Ludovic Rousseau
468     - Add support of
469       . Access IS ePassport Reader
470       . Planeta RC700-NFC CCID
471     - Add support of Windows value for CM_IOCTL_GET_FEATURE_REQUEST
472       Windows uses 0x313520 for SCARD_CTL_CODE(3400) pcsc-lite uses
473       0x42000D48 for SCARD_CTL_CODE(3400)
474       RDP aplications (like rdesktop) will convert SCardControl()
475       commands from a Windows application (so using 0x313520) to
476       pcsc-lite.
477     - fix multi-slot support for card movement notification (introduced
478       in 1.4.12)
479     - Mac OS X: differentiate each libccid library by the dynamic linker
480       using --prefix=/fake/$BUNDLE_ID
481     - some minor bugs removed
482
483
484 1.4.12 - 12 August 2013, Ludovic Rousseau
485     - Add support of
486       . HID OMNIKEY 5127 CK
487       . HID OMNIKEY 5326 DFR
488       . HID OMNIKEY 5427 CK
489       . Ingenico WITEO USB Smart Card Reader (Base and Badge)
490       . SecuTech SecuTech Token
491     - Add support of card movement notifications for multi-slot readers
492     - Check libusb is at least at version 1.0.8
493     - Get the serialconfdir value from pcsc-lite pkg config instead of
494       using $(DESTDIR)/$(sysconfdir)/reader.conf.d/
495     - Disable class driver on Mac OS X
496     - Update the bundle name template to include the vendor name
497     - some minor bugs removed
498
499
500 1.4.11 - 12 June 2013, Ludovic Rousseau
501     - Add support of
502        . Gemalto IDBridge CT30
503        . Gemalto IDBridge K30
504        . SCM Microsystems Inc. SCL010 Contactless Reader
505        . SCM Microsystems Inc. SDI011 Contactless Reader
506        . THRC reader
507     - Better management of time extension requests
508     - parse: better support of devices with bInterfaceClass = 0xFF
509     - udev rule file: Remove setting group to pcscd, remove support of
510       Linux kernel < 2.6.35 for auto power up management
511     - some minor bugs removed
512
513
514 1.4.10 - 16 April 2013, Ludovic Rousseau
515     - Add support of
516        . ACS APG8201 USB Reader with PID 0x8202
517        . GIS Ltd SmartMouse USB
518        . Gemalto IDBridge K3000
519        . Identive CLOUD 2700 F Smart Card Reader
520        . Identive CLOUD 2700 R Smart Card Reader
521        . Identive CLOUD 4500 F Dual Interface Reader
522        . Identive CLOUD 4510 F Contactless + SAM Reader
523        . Identive CLOUD 4700 F Dual Interface Reader
524        . Identive CLOUD 4710 F Contactless + SAM Reader
525        . Inside Secure AT90SCR050
526        . Inside Secure AT90SCR100
527        . Inside Secure AT90SCR200
528        . SCR3310-NTTCom USB SmartCard Reader
529        . SafeTech SafeTouch
530        . SpringCard H512 Series
531        . SpringCard H663 Series
532        . SpringCard NFC'Roll
533        . Yubico Yubikey NEO CCID
534        . Yubico Yubikey NEO OTP+CCID
535     - Add support of time extension for Escape commands
536
537
538 1.4.9 - 16 January 2013, Ludovic Rousseau
539     - Add support of
540        . Aktiv Rutoken PINPad In
541        . Aktiv Rutoken PINPad Ex
542        . REINER SCT cyberJack go
543     - Info.plist: Correctly handle reader names containing &
544
545
546 1.4.8 - 22 June 2012, Ludovic Rousseau
547     - Add support of
548        . SCR3310-NTTCom USB (was removed in version 1.4.6)
549        . Inside Secure VaultIC 420 Smart Object
550        . Inside Secure VaultIC 440 Smart Object
551     - Wait up to 3 seconds for reader start up
552     - Add support of new PC/SC V2 part 10 properties:
553         . dwMaxAPDUDataSize
554         . wIdVendor
555         . wIdProduct
556     - Use helper functions from libPCSCv2part10 to parse the PC/SC v2
557       part 10 features
558
559
560 1.4.7 - 22 June 2012, Ludovic Rousseau
561     - Add support of
562        . ACS ACR101 ICC Reader
563        . ACS CryptoMate64
564        . Alcor Micro AU9522
565        . Bit4id CKey4
566        . Bit4id cryptokey
567        . Bit4id iAM
568        . Bit4id miniLector
569        . Bit4id miniLector-s
570        . CCB eSafeLD
571        . Gemalto Ezio Shield Branch
572        . KOBIL Systems IDToken
573        . NXP PR533
574     - KOBIL Systems IDToken special cases:
575        . Give more time (3 seconds instead of 2) to the reader to answer
576        . Hack for the Kobil IDToken and Geman eID card. The German eID
577          card is bogus and need to be powered off before a power on
578        . Add Reader-Info-Commands special APDU/command
579          - Manufacturer command
580          - Product name command
581          - Firmware version command
582          - Driver version command
583     - Use auto suspend for CCID devices only (Closes Alioth bug
584       [#313445] "Do not activate USB suspend for composite devices:
585       keyboard")
586     - Fix some error management in the T=1 TPDU state machine
587     - some minor bugs removed
588     - some minor improvements added
589
590
591 1.4.6 - 6 April 2012, Ludovic Rousseau
592     - Add support of
593        . Avtor SC Reader 371
594        . Avtor SecureToken
595        . DIGIPASS KEY 202
596        . Fujitsu SmartCase KB SCR eSIG
597        . Giesecke & Devrient StarSign CUT
598        . Inside Secure VaultIC 460 Smart Object
599        . Macally NFC CCID eNetPad reader
600        . OmniKey 6321 USB
601        . SCM SDI 011
602        . Teridian TSC12xxF
603        . Vasco DIGIPASS KEY 101
604     - Remove support of readers without a USB CCID descriptor file
605        . 0x08E6:0x34C1:Gemalto Ezio Shield Secure Channel
606        . 0x08E6:0x34C4:Gemalto Ezio Generic
607        . 0x04E6:0x511A:SCM SCR 3310 NTTCom
608        . 0x0783:0x0008:C3PO LTC32 USBv2 with keyboard support
609        . 0x0783:0x9002:C3PO TLTC2USB
610        . 0x047B:0x020B:Silitek SK-3105
611     - Disable SPE for HP USB CCID Smartcard Keyboard. The reader is
612       bogus and unsafe.
613     - Convert "&" in a reader name into "&amp;" to fix a problem on Mac
614       OS X
615     - Fix a problem with ICCD type A devices. We now wait for device ready
616     - Secure PIN Verify and PIN Modify: set the minimum timeout to 90
617       seconds
618     - Add support of wIdVendor and wIdProduct properties
619     - Add support of dwMaxAPDUDataSize
620     - Add support of Gemalto firmware features
621     - some minor bugs removed
622
623
624 1.4.5 - 11 October 2011, Ludovic Rousseau
625     - Add support of
626       . Alcor Micro AU9540
627       . BIFIT USB-Token iBank2key
628       . BIFIT iBank2Key
629       . Gemalto Ezio Shield PinPad reader
630       . Gemalto SA .NET Dual
631       . Precise Sense MC reader (with fingerprint)
632       . SDS DOMINO-Key TWIN Pro
633       . Ubisys 13.56MHz RFID (CCID)
634     - Add support of bPPDUSupport and FEATURE_CCID_ESC_COMMAND
635     - SCARD_ATTR_VENDOR_NAME and SCARD_ATTR_VENDOR_IFD_VERSION are not
636       the vendor name and version of the driver but of the IFD:
637       InterFace Device i.e. the smart card reader.  We then return the
638       USB iManufacturer string as SCARD_ATTR_VENDOR_NAME and USB
639       bcdDevice as SCARD_ATTR_VENDOR_IFD_VERSION
640     - reduce binary size bu removing unused features from simclist
641     - Fix some warnings reported bu Coverity
642
643
644 1.4.4 - 13 May 2011, Ludovic Rousseau
645     - Add support of
646       . Gemalto Ezio CB+
647       . Gemalto Ezio Generic
648       . Gemalto Ezio Shield
649       . Gemalto Ezio Shield PinPad
650       . Gemalto Ezio Shield Secure Channel
651     - Activate USB automatic power suspend. The Linux kernel should
652       power off the reader automatically if it is not used (pcscd is not
653       running).
654     - Add support of TLV Properties wLcdMaxCharacters and wLcdMaxLines.
655       They just duplicate wLcdLayout
656     - some minor bugs removed
657
658
659 1.4.3 - 2 April 2011, Ludovic Rousseau
660     - Add support of
661       . Feitian ePass2003 readers
662       . Neowave Weneo
663       . SCM SCL011
664       . Vasco DIGIPASS 920
665     - use :libudev: instead of :libhal: naming scheme.
666     - Do not install RSA_SecurID_getpasswd and Kobil_mIDentity_switch
667       and the associated documentation.
668     - the Secure Pin Entry of the HP USB Smart Card Keyboard is bogus so
669       disable it
670     - some minor bugs removed
671
672
673 1.4.2 - 22 February 2011, Ludovic Rousseau
674     - Add support of
675       . ACS APG8201 PINhandy 1
676       . Aktiv Rutoken lite readers
677       . Feitian SCR310 reader (also known as 301v2)
678       . Oberthur ID-ONE TOKEN SLIM v2
679       . Vasco DIGIPASS KEY 200
680       . Vasco DIGIPASS KEY 860
681       . Xiring Leo v2
682       . Xiring MyLeo
683       . new Neowave Weneo token
684     - Add back support of "bogus" Oz776, REINER SCT and BLUDRIVE II
685     - Ease detection of OpenCT by pcsc-lite
686     - disable use of interrupt card events for multi slots readers (the
687       algorithm is bogus and can't be used)
688     - fix minor problems detected by the clang tool
689     - some minor bugs removed
690
691
692 1.4.1 - 3 December 2010, Ludovic Rousseau
693     - Add support of
694       . Akasa AK-CR-03, BZH uKeyCI800-K18
695       . Free Software Initiative of Japan Gnuk token readers
696       . Gemalto Smart Guardian (SG CCID)
697       . ReinerSCT cyberJack RFID basis
698     - Remove O2 Micro Oz776 and Blutronics Bludrive II CCID since they
699       are no more supported since version 1.4.0
700     - SecurePINVerify() & SecurePINModify(): Accept big and little
701       endian byte orders for multibytes fields. The application
702       should not use HOST_TO_CCID_16() and HOST_TO_CCID_32() any more
703       and just use the normal byte order of the architecture.
704     - Need pcsc-lite 1.6.5 for TAG_IFD_POLLING_THREAD_WITH_TIMEOUT
705     - Add --enable-embedded (default is no) to build libccid for an
706       embedded system.  This will activate the NO_LOG option to disable
707       logging and limit RAM and disk consumption.
708     - Remove --enable-udev option since it is not used anymore with
709       libhal. The udev rules file is now used to change the access
710       rights of the device and not send a hotplug signal to pcscd.
711       See http://ludovicrousseau.blogspot.com/2010/09/pcscd-auto-start.html
712     - some minor bugs removed
713
714
715 1.4.0 - 4 August 2010, Ludovic Rousseau
716     - add support of
717       . ACS AET65
718       . Broadcom 5880
719       . C3PO LTC36
720       . Dectel CI692
721       . Gemalto Hybrid Smartcard Reader
722       . Kingtrust Multi-Reader
723       . Tianyu Smart Card Reader
724       . Todos CX00
725     - Add support of the SCM SDI 010 again. At least the contact
726       interface can be used.
727     - Use libusb-1.0 instead of libusb-0.1
728     - add support of TAG_IFD_STOP_POLLING_THREAD and use of the
729       asynchronous libusb API to be able to stop a transfer.
730     - Request pcsc-lite 1.6.2 minimum (instead of 1.6.0) to have
731       TAG_IFD_STOP_POLLING_THREAD defined
732     - The O2MICRO OZ776 patch (for OZ776, OZ776_7772, REINER_SCT and
733       BLUDRIVEII_CCID) is no more supported with libusb-1.0
734     - correctly get the IFSC from the ATR (ATR parsing was not always
735       correct)
736     - some minor bugs removed
737
738
739 1.3.13 - 4 June 2010, Ludovic Rousseau
740     - much faster warm start (up to 3.8 second gained)
741     - Add support of SCARD_ATTR_VENDOR_IFD_SERIAL_NO to get the serial
742       number of the USB device
743     - some minor bugs removed
744
745
746 1.3.12 - 8 May 2010, Ludovic Rousseau
747     - add support of
748       . Ask CPL108
749       . Atmel AT90SCR050
750       . Atmel AT90SCR100
751       . Atmel VaultIC420
752       . Atmel VaultIC440
753       . Atmel VaultIC460
754       . Cherry SmartTerminal XX7X
755       . Covadis Auriga
756       . German Privacy Foundation Crypto Stick v1.2
757       . GoldKey PIV Token
758       . KOBIL Smart Token
759       . KOBIL mIDentity 4smart
760       . KOBIL mIDentity 4smart AES
761       . KOBIL mIDentity 4smart fullsize AES
762       . KOBIL mIDentity fullsize
763       . KOBIL mIDentity visual
764       . SCM SCR3500
765       . Smart SBV280
766       . Todos AGM2 CCID
767       . Vasco DIGIPASS KEY 200
768       . Vasco DIGIPASS KEY 860
769       . Vasco DP855
770       . Vasco DP865
771       . id3 CL1356T5
772     - remove support of Smart SBV280 on manufacturer request. They use
773       libusb directly.
774     - remove support of SCM SDI 010 on manufacturer request since not
775       supported by my driver
776     - Enable the Broadcom 5880 reader. It should work after a firmware
777       upgrade.
778     - better support of Dell keyboard
779     - better support of multislot readers (like the GemCore SIM Pro)
780     - better support of SCM SCR3310
781     - better support of ICCD version A devices
782     - The Covadis Véga-Alpha reader is a GemPC pinpad inside. So we use
783       the same code to:
784       . load the strings for the display
785       . avoid limitation of the reader
786     - IFDHControl(): the (proprietary) get firmware version escape
787       command is allowed with a Gemalto reader
788       . the (proprietary) switch interface escape command is allowed on
789       the Gemalto GemProx DU
790       . return IFD_ERROR_NOT_SUPPORTED instead of
791       IFD_COMMUNICATION_ERROR if the dwControlCode value is not
792       supported
793       . return IFD_ERROR_INSUFFICIENT_BUFFER when appropriate
794     - IFDHGetCapabilities(): add support of SCARD_ATTR_ICC_PRESENCE and
795       SCARD_ATTR_ICC_INTERFACE_STATUS
796     - support FEATURE_GET_TLV_PROPERTIES
797     - add support of IOCTL_FEATURE_GET_TLV_PROPERTIES bMinPINSize &
798       bMaxPINSize for Gemalto Pinpad V1 & Covadis Véga-Alpha
799     - support extended APDU of up to 64kB with APDU readers.
800     - get the language selected during Mac OS X installation as language
801       to use for Covadis Véga-Alpha and Gemalto GemPC PinPad pinpad
802       readers
803     - FEATURE_MCT_READER_DIRECT is also supported by the Kobil mIDentity
804       visual
805     - better support of Sun Studio CC
806     - some minor bugs removed
807
808
809 1.3.11 - 28 July 2009, Ludovic Rousseau
810     - add support of
811       . Raritan D2CIM-DVUSB VM/CCID
812       . Feitian SCR301
813       . Softforum XecureHSM
814       . 2 Neowave Weneo tokens
815       . Synnix STD200
816       . Aktiv Rutoken ECP
817       . Alcor Micro SCR001
818       . ATMEL AT91SC192192CT-USB
819       . Panasonic USB Smart Card Reader 7A-Smart
820       . Gemalto GemProx DU and SU
821     - remove support of Reiner-SCT cyberJack pinpad(a) on request of
822       Reiner-SCT.  You should user the Reiner-SCT driver instead
823     - define CFBundleName to CCIDCLASSDRIVER so that non class drivers
824       have a higher priority. Used by pcsc-lite 1.5.5 and up.
825       Add a --disable-class configure option so that the Info.plist does
826       not define a Class driver. Default is class driver.
827     - do not power up a card with a voltage not supported by the reader
828     - add support of PIN_PROPERTIES_STRUCTURE structure and
829       FEATURE_IFD_PIN_PROPERTIES
830     - adds support of FEATURE_MCT_READERDIRECT. Only the Kobil TriB@nk
831       reader supports this feature for now. This is used for the Secoder
832       functionality in connected mode.
833     - add support of a composite device. No change needed with libhal.
834       use --enable-composite-as-multislot on Mac OS X since libhal is
835       not available on Mac OS X or with libusb on Linux
836     - some minor bugs removed
837
838
839 1.3.10 - 7 March 2009, Ludovic Rousseau
840     - add support for
841       . Aktiv Rutoken Magistra
842       . Atmel AT98SC032CT
843       . MSI StarReader SMART
844       . Noname reader (from Omnikey)
845       . Precise Biometrics 200 MC and 250 MC
846       . Realtek 43 in 1 + Sim + Smart Card Reader
847       . TianYu CCID SmartKey
848       . Xiring Xi Sign PKI
849     - add a patch to support the bogus OpenPGP card (on board key
850       generation sometimes timed out)
851     - disable support of the contactless part of SDI010 and SCR331DI
852       (this code was reverse engineered and hard to maintain)
853     - some minor bugs removed
854
855
856 1.3.9 - 18 November 2008, Ludovic Rousseau
857     - add support for
858      . ACS ACR122U PICC
859      . Aladdin eToken PRO USB 72K Java
860      . Atmel AT91SO
861      . CSB6 Basic
862      . CSB6 Secure
863      . CSB6 Ultimate
864      . Cherry SmartTerminal ST-1200USB
865      . CrazyWriter
866      . EasyFinger Standard
867      . EasyFinger Ultimate
868      . Gemalto PDT
869      . HP MFP Smart Card Reader
870      . KONA USB SmartCard
871      . SpringCard Prox'N'Roll
872      . VMware Virtual USB CCID
873     - MacOSX/configure: do not overwrite PCSC_CFLAGS, PCSC_LIBS,
874       LIBUSB_CFLAGS and LIBUSB_LIBS if already defined by the user
875     - by default, link statically against libusb on Mac OS X
876     - IFDHPowerICC(): use a very long timeout for PowerUp since the card
877       can be very slow to send the full ATR (up to 30 seconds at 4 MHz)
878     - SecurePINVerify(): correct a bug when using a Case 1 APDU and a
879       SCM SPR532 reader
880     - log the reader name instead of just the pcscd Lun
881     - some minor bugs removed
882
883
884 1.3.8 - 27 June 2008, Ludovic Rousseau
885     - add support for
886       . Oberthur ID-One Cosmo Card
887     - do not include the release number in the Info.plist to avoid a
888       diff of a configuration file when upgrading the package.
889     - do not fail compilation if libusb is not available
890     - do not crash if the reader firmware is bogus and does not support
891       chaining for extended APDU.  This is the case for Kobil readers
892     - some minor bugs removed
893
894
895 1.3.7 - 8 June 2008, Ludovic Rousseau
896     - add support for
897       . ActivCard Activkey Sim
898       . Pro-Active CSB6 Ultimate
899       . id3 Semiconductors CL1356A HID
900     - src/parse: do not try to parse devices with bInterfaceClass=0xFF
901       by default (use command line argument -p for proprietary class)
902     - configure.in: check if libusb-0.1 is emulated by libusb-compat +
903       libusb-1.0 to use or not the USB interrupt feature
904     - correct a bug in the serial communication (GemPC twin serial
905       reader)
906     - correct a pthread problem under Solaris
907     - some minor bugs removed
908
909
910 1.3.6 - 30 April 2008, Ludovic Rousseau
911     - add support for
912      . Covadis Alya
913      . Covadis Véga
914      . Precise Biometrics 250 MC
915      . Validy TokenA sl vt
916      . Vasco DP905
917     - better support for the O2Micro OZ776, GemCore SIM Pro
918     - the environment variable LIBCCID_ifdLogLevel overwrite the value
919       of ifdLogLevel read from the Info.plist file
920     - add support for DragonFly BSD
921     - some minor bugs removed
922
923
924 1.3.5 - 22 February 2008, Ludovic Rousseau
925     - add support for Gemplus Gem e-Seal Pro, Cherry SmartBoard,
926       G83-6610
927     - use usb_interrupt_read() only if libusb > 0.1.12 or
928       --enable-usb-interrupt is used. libusb <= 0.1.12 is bogus and will
929       consume more CPU than needed.
930     - contrib/Kobil_mIDentity_switch/Kobil_mIDentity_switch was broken
931       on Linux since release 1.3.1
932     - some minor bugs removed
933
934
935 1.3.4 - 8 February 2008, Ludovic Rousseau
936     - the serial driver could not be loaded because of the missing
937       symbol InterruptRead
938     - remove WAIT_FOR_SYSFS="bInterfaceProtocol" to do not delay udev
939
940
941 1.3.3 - 6 February 2008, Ludovic Rousseau
942     - add support for Lexar Smart Enterprise Guardian and Blutronics
943       Bludrive II CCID
944     - add support of TAG_IFD_POLLING_THREAD using IFDHPolling() to
945       detect asynchronous card movements. With this feature pcscd will
946       not poll the reader every 0.4 second for a card movement but will
947       wait until the reader sends a USB interrupt signal
948     - correct a bug with an ICCD-B device and a receive buffer smaller
949       than 4 bytes
950     - remove the sleep in the udev rule. It slows down the detection of
951       any USB device
952     - some minor bugs removed
953
954
955 1.3.2 - 22 January 2008, Ludovic Rousseau
956     - add support of Apple Mac OS X Leopard (10.5.1)
957     - solve a hotplug problem on Ubuntu 7.10 (reader was not detected)
958     - create a symlink from libccidtwin.so to libccidtwin.so.VERSION so
959       that the /etc/reader.conf configuration file do not need to edited
960       for each new driver version
961     - make driver for the GemPC Serial compile again
962     - some minor bugs removed
963
964
965 1.3.1 - 16 November 2007, Ludovic Rousseau
966     - add support for "Philips Semiconductors JCOP41V221" ICCD card,
967       O2Micro oz776 (ProductID 0x7772), CardMan5321, Giesecke & Devrient
968       StarSign Card Token 350 and 550, SafeNet IKey4000, Eutron
969       CryptoIdentity, Eutron Smart Pocket, Eutron Digipass 860, Lenovo
970       Integrated Smart Card Reader, "Kobil EMV CAP - SecOVID Reader III,
971       Charismathics token, Reiner-SCT cyberJack pinpad(a)
972     - improve support of Mac OS X and *BSD
973     - some minor bugs removed
974
975
976 1.3.0 - 10 May 2007, Ludovic Rousseau
977     - add support of ICCD version A and B
978     - add support for (new) KOBIL mIDentity, SchlumbergerSema Cyberflex
979       Access e-gate ICCD, Fujitsu Siemens Computers SmartCard USB 2A and
980       SmartCard Keyboard USB 2A readers, OmniKey CardMan 4321
981     - contrib/RSA_SecurID/RSA_SecurID_getpasswd: tool to get the on time
982       password also displayed on the token screen
983     - contrib/Kobil_mIDentity_switch: tool to activate the CCID reader
984       of the Kobil mIDentity. The tool should be started automatically
985       by the udev rule on Linux
986     - GemPC pinpad: localisation of the string "PIN blocked", add
987       Portuguese(pt), Dutch(nl) and Turkish(tr) localisations
988     - some minor bugs removed
989
990 1.2.1 - 27 January 2007, Ludovic Rousseau
991     - pcscd_ccid.rules: add non CCID generic (InterfaceClass: 0xFF)
992       readers
993     - INSTALL: document how to use --enable-udev on FreeBSD
994     - move the O2Micro Oz7762 from the unsupported to the supported list
995       since patches to support it are applied by default
996       (O2MICRO_OZ776_PATCH)
997
998
999 1.2.0 - 19 January 2007, Ludovic Rousseau
1000     - add support for SCARD_ATTR_VENDOR_IFD_VERSION,
1001       SCARD_ATTR_VENDOR_NAME and SCARD_ATTR_MAXINPUT tags used by
1002       SCardGetAttrib(). Read SCARDGETATTRIB.txt for more documentation
1003     - add support for OmniKey CardMan 5125, CardMan 1021, C3PO LTC32,
1004       Teo by Xiring, HP USB Smartcard Reader
1005     - use --enable-twinserial to build the serial reader driver
1006     - use --enable-udev to configure for a use with Linux udev hotplug
1007       mechanism. This will allow pcscd to avoid polling the USB bus
1008       every 1 second
1009     - some minor bugs removed
1010
1011
1012 1.1.0 - 11 August 2006, Ludovic Rousseau
1013     - support Extended APDU (up to 64KB) for readers in TPDU mode (many
1014       readers) or Extended APDU mode (very rare). This only works for
1015       T=1 cards.
1016     - add support for C3PO LTC31 (new version), OmniKey CardMan 3021, HP
1017       USB Smart Card Keyboard, Actividentity (ActiveCard) Activkey Sim,
1018       id3 Semiconductors CL1356D and CL1356T, Alcor Micro AU9520
1019     - support the contactless interface of the SCR331-DI-NTTCOM
1020     - add support of FreeBSD
1021     - increase the USB timeout used for PIN verify/modify to not timeout
1022       before the reader
1023     - the 4-bytes value returned by CM_IOCTL_GET_FEATURE_REQUEST shall
1024       be encoded in big endian as documented in PCSC v2 part 10 ch 2.2
1025       page 2. The applications using this feature shall be updated (to
1026       respect the PCSC specification).
1027     - use ./configure --enable-twinserial to compile and install the the
1028       driver for the GemPC Twin serial
1029     - some minor bugs removed
1030
1031
1032 1.0.1 - 22 April 2006, Ludovic Rousseau
1033     - add support for Axalto Reflex USB v3, SCM Micro SDI 010, Winbond
1034       Electronics W81E381 chipset, Gemplus GemPC Card, Athena ASE IIIe
1035       KB USB, OmniKey CardMan 3621
1036     - support Solaris (Solaris uses a different libusb)
1037     - better documentation for ./configure arguments
1038     - improve support of Cherry XX44 keyboard for PIN verify and change
1039       (circumvent firmware bugs)
1040     - do not use LTPBundleFindValueWithKey() from pcscd since this
1041       function has been removed from pcscd API
1042     - use -fvisibility=hidden is available to limit the number of
1043       exported symbols
1044
1045
1046 1.0.0 - 3 March 2006, Ludovic Rousseau
1047     - add support for ActivCard USB Reader 3.0, Athena ASE IIIe USB V2,
1048       SCM Micro SCR 355, SCR 3311, SCR 3320, SCR 3340 ExpressCard54,
1049       Gemplus GemCore SIM Pro, GemCore POS Pro (serial and USB), GemPC
1050       Express (ExpressCard/54 interface), SmartEpad (v 2.0), OmniKey
1051       CardMan 5121
1052     - greatly improve support of PIN PAD readers. We now support TPDU
1053       readers with T=1 cards
1054     - use l10n strings for the Gemplus GemPC PIN PAD (it has a screen).
1055       Supported languages are: de, en, es, fr, it
1056     - rename ACS ACR 38 in ACR 38U-CCID since the ACR 38 is a different
1057       reader and is not CCID compatible
1058     - allow to select the Power On voltage using Info.plist instead of
1059       recompiling the source code
1060     - correct bugs in the support of multi-slots readers
1061     - if the card is faster than the reader (TA1=97 for example) we try
1062       to use a not-so-bad speed (corresponding to TA1=96, 95 or 94)
1063       instead of the default speed of TA1=11
1064     - the src/parse tool do not use the driver anymore. No need to
1065       update the Info.plist file first.
1066     - some minor bugs removed
1067
1068
1069 0.9.4 - 27 November 2005, Ludovic Rousseau
1070     - add support for Eutron SIM Pocket Combo, Eutron CryptoIdentity,
1071       Verisign Secure Token and VeriSign Secure Storage Token, GemPC
1072       Card (PCMCIA), SCM SCR331-DI NTTCom, SCM Micro SCR 3310-NTTCom,
1073       Cherry ST-1044U, Cherry SmartTerminal ST-2XXX
1074     - add support of PC/SC v2 part 10 CM_IOCTL_GET_FEATURE_REQUEST add
1075       support of FEATURE_VERIFY_PIN_DIRECT and FEATURE_MODIFY_PIN_DIRECT
1076       remove support of IOCTL_SMARTCARD_VENDOR_VERIFY_PIN (now
1077       obsoleted). A sample code is available in examples/scardcontrol.c
1078     - we need pcsc-lite 1.2.9-beta9 since some structures used for PIN
1079       pad readers are defined by pcsc-lite
1080     - some (bogus) cards require an extra EGT but the ATR does not say
1081       so. We try to detect the bogus cards and set TC1=2
1082     - IFDHSetProtocolParameters(): only use a data rate supported by the
1083       reader in the PPS negociation, otherwise we stay at the default
1084       speed.
1085     - calculate and store the read timeout according to the card ATR
1086       instead of using a fixed value of 60 seconds
1087     - increase the read timeout if the card sends and WTX request
1088     - improve support of GemPC Twin and GemPC Card (serial protocol)
1089     - reset the device on close only if DRIVER_OPTION_RESET_ON_CLOSE is
1090       set. The problem was that a device reset also disconnects the
1091       keyboard on a keyboard + reader device.
1092     - use color logs
1093     - some minor bugs removed
1094
1095
1096 0.9.3 - 14 March 2005, Ludovic Rousseau
1097     - change the licence from GNU GPL to GNU Lesser GPL (LGPL)
1098     - add support for ACS ACR 38, Kobil KAAN Base, Kobil KAAN Advanced,
1099       Kobil KAAN SIM III, Kobil KAAN mIDentity, SCM Micro SCR 331,
1100       SCM Micro SCR 331-DI, SCM Micro SCR 335, SCM Micro SCR 3310,
1101       SCM Micro SCR 532, Cherry XX44 readers
1102     - improve communication speed with readers featuring "Automatic PPS
1103       made by the CCID"
1104     - switch the Cherry xx33 reader in ISO mode if power up in EMV mode
1105       fails.
1106     - add support of character level readers. Thanks to O2Micro for the
1107       patch
1108     - add support for the O2Micro OZ776S reader but the reader firmware
1109       is still bogus
1110     - check firmware version to avoid firmwares with bugs. You can still
1111       use a bogus firmware by setting DRIVER_OPTION_USE_BOGUS_FIRMWARE
1112       in Info.plist
1113     - some minor bugs removed
1114
1115 0.9.2 - 15 August 2004, Ludovic Rousseau
1116     - T=1 TPDU code:
1117       . the work on T=1 TPDU code was possible thanks to Gemplus
1118         validation team who helped me test, debug and bring the code to
1119         an EMV validation level. Thanks to Jérôme, Jean-Yves, Xavier and
1120         the Gemplus readers department
1121       . error code was not checked correctly
1122       . avoid a (nearly) infinite loop when resynch are needed.
1123       . correctly initialise an internal value to allow more than one
1124         reader to work
1125     - multi-slots readers
1126       . add support for multi-slots readers. The only one I have is a
1127         SCM Micro SCR 331-DI with a contact and a contactless interface.
1128         The contactless interface may or may not work for you since the
1129         reader uses proprietary (undocumented) commands.
1130     - GemPC Twin serial reader
1131       . perform a command (get the reader firmware) to be sure a GemPC
1132         Twin (serial or pcmcia) reader is connected
1133       . use a dynamic timeout when reading the serial port.
1134         The first timeout used when detecting the reader is 2 seconds to
1135         not wait too long if no reader is connected. Later timeouts are
1136         set to 1 minute to allow long time APDU.
1137     - use `pkg-config libpcsclite --cflags` to locate the pcsc-lite
1138       header files
1139     - use `pkg-config --print-errors --atleast-version=1.2.9-beta5 libpcsclite`
1140       to test the pcsc-lite version
1141     - code improvements thanks to the splint tool (http://www.splint.org/)
1142
1143 0.9.1 - 1 July 2004, Ludovic Rousseau
1144     - I forgot to define IFD_PARITY_ERROR in a .h file
1145
1146 0.9.0 - 1 July 2004, Ludovic Rousseau
1147     - The T=1 TPDU automata from Carlos Prados' Towitoko driver is very
1148       limited and do not support error management mechanisms.
1149       I then used the T=1 TPDU automata from OpenCT (OpenSC project).
1150       This automata is much more powerful but still lacks a lot of error
1151       management code.
1152       I then added all the needed code to reach the quality level
1153       requested by the EMV standard.
1154     - add support for new readers:
1155       . Advanced Card Systems ACR 38
1156       . Cherry XX33
1157       . Dell keyboard SK-3106
1158       . Dell smart card reader keyboard
1159       . SCR 333
1160     - add support of multi procotol cards (T=0 and T=1)
1161     - the debug level is now dynamic and set in the Info.plist file (no
1162       need to recompile the driver any more)
1163     - add support for the libusb naming scheme: usb:%04x/%04x:libusb:%s
1164     - INSTALL: add a "configuring the driver for the serial reader
1165       (GemPC Twin)" part
1166     - use `pkg-config libpcsclite --variable=usbdropdir` so you do not
1167       have to use --enable-usbdropdir=DIR or --enable-ccidtwindir=DIR
1168       even if pcscd does not use the default /usr/local/pcsc/drivers
1169     - add support of IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE and
1170       IOCTL_SMARTCARD_VENDOR_VERIFY_PIN in IFDHControl()
1171     - read ifdDriverOptions from Info.plist to limit the use of
1172       IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE (idea from Peter Williams)
1173     - provide an example of use of SCardControl()
1174       IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE and
1175       IOCTL_SMARTCARD_VENDOR_VERIFY_PIN in example/
1176     - add a --enable-pcsclite option (default to yes) so that the driver
1177       can be compiled for a different framework (one needing
1178       tokenparser.l like Solaris)
1179     - Reset action is power off and power on, not just power on
1180     - use the include files from pcsc-lite
1181     - add a mechanism to allow power on at 1.8V, 3V and then 5V as
1182       specified by ISO 7816. We still use 5V for now to avoid problems
1183       with non ISO compliant cards
1184
1185 0.4.1 - 14 February 2004, Ludovic Rousseau
1186     - distribute missing files readers/supported_readers.txt and
1187       src/create_Info_plist.pl
1188       'make install' failed because of this.
1189
1190 0.4.0 - 13 February 2004, Ludovic Rousseau
1191     - support of T=1 with TPDU readers. A lot of the T=1 code comes from
1192       Carlos Prados towitoko driver.
1193       My code is GNU GPL, his code is GNU LGPL so the global driver is
1194       GNU GPL
1195     - PPS negotiation if the reader does not do it automatically
1196     - add support for the Silitek SK-3105 keyboard. It's a USB device
1197       with multiple interfaces
1198     - use the create_Info_plist.pl script to generate the installed
1199       Info.plist from an Info.plist template and a list of supported
1200       readers. The Info.plist was too "complex" to maintain by hand
1201       since it now contains 11 entries
1202     - add support of IFDHCreateChannelByName to avoid wrong reader
1203       enumeration. This is not complete if you have multiple _identical_
1204       readers. You need to use a > 1.2.0 pcsc-lite version (not yet
1205       released at that time)
1206     - build but do not install the serial ccidtwin driver by default
1207       since it is useless on computers without a serial port or without
1208       this reader for example.
1209     - read and write timeouts are not symmetric. write timout can be
1210       shorter since the reader and card is not supposed to do anything
1211       before receiving (write) a command
1212     - do not try to find usb.h and other libusb files if
1213       --disable-libusb is used. Needed if you only want to build the
1214       serial driver.  Thanks to Niki Waibel for the patch
1215     - add a --enable-ccidtwindir argument to ./configure to specify the
1216       serial GemPC Twin installation directory
1217     - debug and code improvements and simplifications
1218
1219 0.3.2 - 4 November 2003, Ludovic Rousseau
1220     - src/commands.c: correct a stupid bug that occurs with an APDU with
1221       2 bytes response.
1222     - Info.plist: add SPR 532 in list of supported readers
1223     - parse.c: do not exit if the InterfaceClass is 0xFF (proprietary).
1224       It is the case with old readers manufactured before the final
1225       release of the CCID specs.
1226     - move LTC31 reader from unsupported to supported reader list. It
1227       was my f ault since in used odd INS byte in my test applet and odd
1228       INS bytes are forbidden by ISO 7816-4 ch. 5.4.2 Instruction byte.
1229       Thanks to Josep Moné s Teixidor for pointing the problem.
1230     - src/commands.c: comment out the automatic GET RESPONSE part. I
1231       don't think it should be in the driver. Maybe in pcscd instead?
1232
1233 0.3.1 - 23 September 2003, Ludovic Rouseau
1234     - add --enable-multi-thread (enabled by default) for thread safe
1235       support an APDU multiplexing. You will need pcsc-lite-1.2.0-rc3 or
1236       above to use this feature.
1237     - add --enable-libusb=PATH option is your libusb is not installed in
1238       /usr or /usr/local
1239     - honor DESTDIR in install rules (closes [ #300110 ]). Thanks to
1240       Ville Skyttä for the patch.
1241     - src/ccid.c: do not switch the GemPC Key and GemPC Twin in APDU
1242       mode since it also swicth in EMV mode and may not work with non
1243       EMV cards
1244     - src/ccid_serial.c: complete reimplementation of the Twin serial
1245       protocol using a finite state automata (code much simpler)
1246
1247 0.3.0 - 10 September 2003, Ludovic Rousseau
1248     - support of GemPC Twin connected to a serial port. Thanks to Niki
1249       W. Waibel for a working prototype.
1250     - support of auto voltage at power up if the reader support it
1251       instead of forcing a 5V in all cases.
1252     - support of APDU mode instead of just TPDU if the reader support
1253       it. Thanks to Jean-Luc Giraud for the idea and inspiration I got
1254       from his "concurrent" driver.
1255     - support of "time request" from the card.
1256     - parse: new indentation for more readability of supported features.
1257     - switch the GemPC Key and GemPC Twin in APDU mode since they
1258       support it but do not announce it in the dwFeatures.
1259     - new build process using autoconf/automake.
1260
1261 0.2.0 - 26 August 2003, Ludovic Rousseau
1262     - Works under MacOS X
1263     - Info.plist: use an <array></array> for the alias enumeration
1264     - Makefile rework for *BSD and MacOS X
1265
1266 0.1.0 - 13 August 2003, Ludovic Rousseau
1267     - First public release
1268
1269
1270  vim:ts=20