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