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