• Home
  • History
  • Annotate
  • only in this directory
NameDateSize

..06-Aug-20148

aclocal.m4H A D25-Nov-201350.8 KiB

ar-libH A D12-Aug-20135.7 KiB

AUTHORSH A D18-Nov-200844

bootstrapH A D20-Feb-2011164

ChangeLogH A D25-Nov-2013288 KiB

compileH A D12-Aug-20137.2 KiB

config.guessH A D12-Aug-201344.2 KiB

config.h.inH A D25-Nov-20133.4 KiB

config.subH A D12-Aug-201334.7 KiB

configureH A D25-Nov-2013465.3 KiB

configure.acH A D25-Nov-20139.1 KiB

contrib/H06-Aug-20146

COPYINGH A D18-Nov-200825.9 KiB

depcompH A D12-Aug-201323 KiB

examples/H06-Aug-20148

INSTALLH A D12-Mar-20104.9 KiB

install-shH A D12-Aug-201313.7 KiB

ltmain.shH A D12-Aug-2013277 KiB

m4/H06-Aug-20149

MacOSX/H06-Aug-201411

Makefile.amH A D30-Aug-2012709

Makefile.inH A D25-Nov-201326.1 KiB

missingH A D12-Aug-20136.7 KiB

NEWSH A D18-Nov-20080

readers/H06-Aug-20146

READMEH A D25-Nov-201338.1 KiB

SCARDGETATTRIB.txtH A D08-Jun-20122.6 KiB

src/H06-Aug-201436

ylwrapH A D06-Oct-20136.7 KiB

README

1USB CCID IFD Handler
2====================
3
4This package provides the source code for a generic USB CCID (Chip/Smart
5Card Interface Devices) and ICCD (Integrated Circuit(s) Card Devices)
6driver. See the USB CCID [1] and ICCD [2] specifications from the USB
7working group.
8
9[1] http://www.usb.org/developers/devclass_docs/DWG_Smart-Card_CCID_Rev110.pdf
10[2] http://www.usb.org/developers/devclass_docs/DWG_Smart-Card_USB-ICC_ICCD_rev10.pdf
11
12Authors:
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
22CCID and ICCD readers:
23======================
24
25A 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
36Supported operating systems:
37============================
38
39- GNU/Linux (libusb 1.0)
40- MacOS X/Darwin (libusb 1.0)
41
42See also http://pcsclite.alioth.debian.org/ccid.html for more
43information.
44
45
46Debug informations:
47===================
48
49The driver uses the debug function provided by pcscd. So if pcscd sends
50its debug to stdout (pcscd --foreground) then the CCID driver will also
51send its debug to stdout. If pcscd sends its debug to syslog (by
52default) then the CCID driver will also send its debug to syslog.
53
54You can change the debug level using the Info.plist configuration file.
55The Info.plist is installed, by default, in
56/usr/local/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
57or set the environment variable LIBCCID_ifdLogLevel.
58
59The debug level is set in the ifdLogLevel field. It is a binary OR
60combinaison 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
68By default the debug level is set to 3 (1 + 2) and correspond to the
69critical and info levels.
70
71You have to restart the driver so it read the configuration file again
72and use the new debug level value.  To restart the driver you just need
73to unplug all your CCID readers so the the driver is unloaded and then
74replug your readers. You can also restart pcscd.
75
76
77Voltage selection
78=================
79
80You can change the voltage level using the Info.plist configuration
81file.  The Info.plist is installed, by default, in
82/usr/local/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
83
84The voltage level is set in the ifdDriverOptions field. It is a binary OR
85combinaison 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
92By default the voltage level is set to 0 and correspond to 5V.
93
94You have to restart the driver so it read the configuration file again
95and use the new debug level value.  To restart the driver you just need
96to unplug all your CCID readers so the the driver is unloaded and then
97replug your readers.  You can also restart pcscd.
98
99
100Licence:
101========
102
103  This library is free software; you can redistribute it and/or modify it
104under the terms of the GNU Lesser General Public License as published by
105the Free Software Foundation; either version 2.1 of the License, or (at
106your option) any later version.
107
108  This library is distributed in the hope that it will be useful, but
109WITHOUT ANY WARRANTY; without even the implied warranty of
110MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser
111General Public License for more details.
112
113  You should have received a copy of the GNU Lesser General Public License
114along with this library; if not, write to the Free Software Foundation,
115Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
116
117
118History:
119========
120
1211.4.14 - 25 NOvember 2013, Ludovic Rousseau
122    - Add support of
123      . Gemalto GemCore SIM Pro firmware 2.0 (using USB)
124    - report FEATURE_IFD_PIN_PROPERTIES only for pinpad readers
125    - Generalize the management of (old) readers with bDeviceClass = 0xFF
126    - some minor bugs removed
127
128
1291.4.13 - 9 October 2013, Ludovic Rousseau
130    - Add support of
131      . Access IS ePassport Reader
132      . Planeta RC700-NFC CCID
133    - Add support of Windows value for CM_IOCTL_GET_FEATURE_REQUEST
134      Windows uses 0x313520 for SCARD_CTL_CODE(3400) pcsc-lite uses
135      0x42000D48 for SCARD_CTL_CODE(3400)
136      RDP aplications (like rdesktop) will convert SCardControl()
137      commands from a Windows application (so using 0x313520) to
138      pcsc-lite.
139    - fix multi-slot support for card movement notification (introduced
140      in 1.4.12)
141    - Mac OS X: differentiate each libccid library by the dynamic linker
142      using --prefix=/fake/$BUNDLE_ID
143    - some minor bugs removed
144
145
1461.4.12 - 12 August 2013, Ludovic Rousseau
147    - Add support of
148      . HID OMNIKEY 5127 CK
149      . HID OMNIKEY 5326 DFR
150      . HID OMNIKEY 5427 CK
151      . Ingenico WITEO USB Smart Card Reader (Base and Badge)
152      . SecuTech SecuTech Token
153    - Add support of card movement notifications for multi-slot readers
154    - Check libusb is at least at version 1.0.8
155    - Get the serialconfdir value from pcsc-lite pkg config instead of
156      using $(DESTDIR)/$(sysconfdir)/reader.conf.d/
157    - Disable class driver on Mac OS X
158    - Update the bundle name template to include the vendor name
159    - some minor bugs removed
160
161
1621.4.11 - 12 June 2013, Ludovic Rousseau
163    - Add support of
164       . Gemalto IDBridge CT30
165       . Gemalto IDBridge K30
166       . SCM Microsystems Inc. SCL010 Contactless Reader
167       . SCM Microsystems Inc. SDI011 Contactless Reader
168       . THRC reader
169    - Better management of time extension requests
170    - parse: better support of devices with bInterfaceClass = 0xFF
171    - udev rule file: Remove setting group to pcscd, remove support of
172      Linux kernel < 2.6.35 for auto power up management
173    - some minor bugs removed
174
175
1761.4.10 - 16 April 2013, Ludovic Rousseau
177    - Add support of
178       . ACS APG8201 USB Reader with PID 0x8202
179       . GIS Ltd SmartMouse USB
180       . Gemalto IDBridge K3000
181       . Identive CLOUD 2700 F Smart Card Reader
182       . Identive CLOUD 2700 R Smart Card Reader
183       . Identive CLOUD 4500 F Dual Interface Reader
184       . Identive CLOUD 4510 F Contactless + SAM Reader
185       . Identive CLOUD 4700 F Dual Interface Reader
186       . Identive CLOUD 4710 F Contactless + SAM Reader
187       . Inside Secure AT90SCR050
188       . Inside Secure AT90SCR100
189       . Inside Secure AT90SCR200
190       . SCR3310-NTTCom USB SmartCard Reader
191       . SafeTech SafeTouch
192       . SpringCard H512 Series
193       . SpringCard H663 Series
194       . SpringCard NFC'Roll
195       . Yubico Yubikey NEO CCID
196       . Yubico Yubikey NEO OTP+CCID
197    - Add support of time extension for Escape commands
198
199
2001.4.9 - 16 January 2013, Ludovic Rousseau
201    - Add support of
202       . Aktiv Rutoken PINPad In
203       . Aktiv Rutoken PINPad Ex
204       . REINER SCT cyberJack go
205    - Info.plist: Correctly handle reader names containing &
206
207
2081.4.8 - 22 June 2012, Ludovic Rousseau
209    - Add support of
210       . SCR3310-NTTCom USB (was removed in version 1.4.6)
211       . Inside Secure VaultIC 420 Smart Object
212       . Inside Secure VaultIC 440 Smart Object
213    - Wait up to 3 seconds for reader start up
214    - Add support of new PC/SC V2 part 10 properties:
215        . dwMaxAPDUDataSize
216        . wIdVendor
217        . wIdProduct
218    - Use helper functions from libPCSCv2part10 to parse the PC/SC v2
219      part 10 features
220
221
2221.4.7 - 22 June 2012, Ludovic Rousseau
223    - Add support of
224       . ACS ACR101 ICC Reader
225       . ACS CryptoMate64
226       . Alcor Micro AU9522
227       . Bit4id CKey4
228       . Bit4id cryptokey
229       . Bit4id iAM
230       . Bit4id miniLector
231       . Bit4id miniLector-s
232       . CCB eSafeLD
233       . Gemalto Ezio Shield Branch
234       . KOBIL Systems IDToken
235       . NXP PR533
236    - KOBIL Systems IDToken special cases:
237       . Give more time (3 seconds instead of 2) to the reader to answer
238       . Hack for the Kobil IDToken and Geman eID card. The German eID
239         card is bogus and need to be powered off before a power on
240       . Add Reader-Info-Commands special APDU/command
241         - Manufacturer command
242         - Product name command
243         - Firmware version command
244         - Driver version command
245    - Use auto suspend for CCID devices only (Closes Alioth bug
246      [#313445] "Do not activate USB suspend for composite devices:
247      keyboard")
248    - Fix some error management in the T=1 TPDU state machine
249    - some minor bugs removed
250    - some minor improvements added
251
252
2531.4.6 - 6 April 2012, Ludovic Rousseau
254    - Add support of
255       . Avtor SC Reader 371
256       . Avtor SecureToken
257       . DIGIPASS KEY 202
258       . Fujitsu SmartCase KB SCR eSIG
259       . Giesecke & Devrient StarSign CUT
260       . Inside Secure VaultIC 460 Smart Object
261       . Macally NFC CCID eNetPad reader
262       . OmniKey 6321 USB
263       . SCM SDI 011
264       . Teridian TSC12xxF
265       . Vasco DIGIPASS KEY 101
266    - Remove support of readers without a USB CCID descriptor file
267       . 0x08E6:0x34C1:Gemalto Ezio Shield Secure Channel
268       . 0x08E6:0x34C4:Gemalto Ezio Generic
269       . 0x04E6:0x511A:SCM SCR 3310 NTTCom
270       . 0x0783:0x0008:C3PO LTC32 USBv2 with keyboard support
271       . 0x0783:0x9002:C3PO TLTC2USB
272       . 0x047B:0x020B:Silitek SK-3105
273    - Disable SPE for HP USB CCID Smartcard Keyboard. The reader is
274      bogus and unsafe.
275    - Convert "&" in a reader name into "&amp;" to fix a problem on Mac
276      OS X
277    - Fix a problem with ICCD type A devices. We now wait for device ready
278    - Secure PIN Verify and PIN Modify: set the minimum timeout to 90
279      seconds
280    - Add support of wIdVendor and wIdProduct properties
281    - Add support of dwMaxAPDUDataSize
282    - Add support of Gemalto firmware features
283    - some minor bugs removed
284
285
2861.4.5 - 11 October 2011, Ludovic Rousseau
287    - Add support of
288      . Alcor Micro AU9540
289      . BIFIT USB-Token iBank2key
290      . BIFIT iBank2Key
291      . Gemalto Ezio Shield PinPad reader
292      . Gemalto SA .NET Dual
293      . Precise Sense MC reader (with fingerprint)
294      . SDS DOMINO-Key TWIN Pro
295      . Ubisys 13.56MHz RFID (CCID)
296    - Add support of bPPDUSupport and FEATURE_CCID_ESC_COMMAND
297    - SCARD_ATTR_VENDOR_NAME and SCARD_ATTR_VENDOR_IFD_VERSION are not
298      the vendor name and version of the driver but of the IFD:
299      InterFace Device i.e. the smart card reader.  We then return the
300      USB iManufacturer string as SCARD_ATTR_VENDOR_NAME and USB
301      bcdDevice as SCARD_ATTR_VENDOR_IFD_VERSION
302    - reduce binary size bu removing unused features from simclist
303    - Fix some warnings reported bu Coverity
304
305
3061.4.4 - 13 May 2011, Ludovic Rousseau
307    - Add support of
308      . Gemalto Ezio CB+
309      . Gemalto Ezio Generic
310      . Gemalto Ezio Shield
311      . Gemalto Ezio Shield PinPad
312      . Gemalto Ezio Shield Secure Channel
313    - Activate USB automatic power suspend. The Linux kernel should
314      power off the reader automatically if it is not used (pcscd is not
315      running).
316    - Add support of TLV Properties wLcdMaxCharacters and wLcdMaxLines.
317      They just duplicate wLcdLayout
318    - some minor bugs removed
319
320
3211.4.3 - 2 April 2011, Ludovic Rousseau
322    - Add support of
323      . Feitian ePass2003 readers
324      . Neowave Weneo
325      . SCM SCL011
326      . Vasco DIGIPASS 920
327    - use :libudev: instead of :libhal: naming scheme.
328    - Do not install RSA_SecurID_getpasswd and Kobil_mIDentity_switch
329      and the associated documentation.
330    - the Secure Pin Entry of the HP USB Smart Card Keyboard is bogus so
331      disable it
332    - some minor bugs removed
333
334
3351.4.2 - 22 February 2011, Ludovic Rousseau
336    - Add support of
337      . ACS APG8201 PINhandy 1
338      . Aktiv Rutoken lite readers
339      . Feitian SCR310 reader (also known as 301v2)
340      . Oberthur ID-ONE TOKEN SLIM v2
341      . Vasco DIGIPASS KEY 200
342      . Vasco DIGIPASS KEY 860
343      . Xiring Leo v2
344      . Xiring MyLeo
345      . new Neowave Weneo token
346    - Add back support of "bogus" Oz776, REINER SCT and BLUDRIVE II
347    - Ease detection of OpenCT by pcsc-lite
348    - disable use of interrupt card events for multi slots readers (the
349      algorithm is bogus and can't be used)
350    - fix minor problems detected by the clang tool
351    - some minor bugs removed
352
353
3541.4.1 - 3 December 2010, Ludovic Rousseau
355    - Add support of
356      . Akasa AK-CR-03, BZH uKeyCI800-K18
357      . Free Software Initiative of Japan Gnuk token readers
358      . Gemalto Smart Guardian (SG CCID)
359      . ReinerSCT cyberJack RFID basis
360    - Remove O2 Micro Oz776 and Blutronics Bludrive II CCID since they
361      are no more supported since version 1.4.0
362    - SecurePINVerify() & SecurePINModify(): Accept big and little
363      endian byte orders for multibytes fields. The application
364      should not use HOST_TO_CCID_16() and HOST_TO_CCID_32() any more
365      and just use the normal byte order of the architecture.
366    - Need pcsc-lite 1.6.5 for TAG_IFD_POLLING_THREAD_WITH_TIMEOUT
367    - Add --enable-embedded (default is no) to build libccid for an
368      embedded system.  This will activate the NO_LOG option to disable
369      logging and limit RAM and disk consumption.
370    - Remove --enable-udev option since it is not used anymore with
371      libhal. The udev rules file is now used to change the access
372      rights of the device and not send a hotplug signal to pcscd.
373      See http://ludovicrousseau.blogspot.com/2010/09/pcscd-auto-start.html
374    - some minor bugs removed
375
376
3771.4.0 - 4 August 2010, Ludovic Rousseau
378    - add support of
379      . ACS AET65
380      . Broadcom 5880
381      . C3PO LTC36
382      . Dectel CI692
383      . Gemalto Hybrid Smartcard Reader
384      . Kingtrust Multi-Reader
385      . Tianyu Smart Card Reader
386      . Todos CX00
387    - Add support of the SCM SDI 010 again. At least the contact
388      interface can be used.
389    - Use libusb-1.0 instead of libusb-0.1
390    - add support of TAG_IFD_STOP_POLLING_THREAD and use of the
391      asynchronous libusb API to be able to stop a transfer.
392    - Request pcsc-lite 1.6.2 minimum (instead of 1.6.0) to have
393      TAG_IFD_STOP_POLLING_THREAD defined
394    - The O2MICRO OZ776 patch (for OZ776, OZ776_7772, REINER_SCT and
395      BLUDRIVEII_CCID) is no more supported with libusb-1.0
396    - correctly get the IFSC from the ATR (ATR parsing was not always
397      correct)
398    - some minor bugs removed
399
400
4011.3.13 - 4 June 2010, Ludovic Rousseau
402    - much faster warm start (up to 3.8 second gained)
403    - Add support of SCARD_ATTR_VENDOR_IFD_SERIAL_NO to get the serial
404      number of the USB device
405    - some minor bugs removed
406
407
4081.3.12 - 8 May 2010, Ludovic Rousseau
409    - add support of
410      . Ask CPL108
411      . Atmel AT90SCR050
412      . Atmel AT90SCR100
413      . Atmel VaultIC420
414      . Atmel VaultIC440
415      . Atmel VaultIC460
416      . Cherry SmartTerminal XX7X
417      . Covadis Auriga
418      . German Privacy Foundation Crypto Stick v1.2
419      . GoldKey PIV Token
420      . KOBIL Smart Token
421      . KOBIL mIDentity 4smart
422      . KOBIL mIDentity 4smart AES
423      . KOBIL mIDentity 4smart fullsize AES
424      . KOBIL mIDentity fullsize
425      . KOBIL mIDentity visual
426      . SCM SCR3500
427      . Smart SBV280
428      . Todos AGM2 CCID
429      . Vasco DIGIPASS KEY 200
430      . Vasco DIGIPASS KEY 860
431      . Vasco DP855
432      . Vasco DP865
433      . id3 CL1356T5
434    - remove support of Smart SBV280 on manufacturer request. They use
435      libusb directly.
436    - remove support of SCM SDI 010 on manufacturer request since not
437      supported by my driver
438    - Enable the Broadcom 5880 reader. It should work after a firmware
439      upgrade.
440    - better support of Dell keyboard
441    - better support of multislot readers (like the GemCore SIM Pro)
442    - better support of SCM SCR3310
443    - better support of ICCD version A devices
444    - The Covadis Véga-Alpha reader is a GemPC pinpad inside. So we use
445      the same code to:
446      . load the strings for the display
447      . avoid limitation of the reader
448    - IFDHControl(): the (proprietary) get firmware version escape
449      command is allowed with a Gemalto reader
450      . the (proprietary) switch interface escape command is allowed on
451      the Gemalto GemProx DU
452      . return IFD_ERROR_NOT_SUPPORTED instead of
453      IFD_COMMUNICATION_ERROR if the dwControlCode value is not
454      supported
455      . return IFD_ERROR_INSUFFICIENT_BUFFER when appropriate
456    - IFDHGetCapabilities(): add support of SCARD_ATTR_ICC_PRESENCE and
457      SCARD_ATTR_ICC_INTERFACE_STATUS
458    - support FEATURE_GET_TLV_PROPERTIES
459    - add support of IOCTL_FEATURE_GET_TLV_PROPERTIES bMinPINSize &
460      bMaxPINSize for Gemalto Pinpad V1 & Covadis Véga-Alpha
461    - support extended APDU of up to 64kB with APDU readers.
462    - get the language selected during Mac OS X installation as language
463      to use for Covadis Véga-Alpha and Gemalto GemPC PinPad pinpad
464      readers
465    - FEATURE_MCT_READER_DIRECT is also supported by the Kobil mIDentity
466      visual
467    - better support of Sun Studio CC
468    - some minor bugs removed
469
470
4711.3.11 - 28 July 2009, Ludovic Rousseau
472    - add support of
473      . Raritan D2CIM-DVUSB VM/CCID
474      . Feitian SCR301
475      . Softforum XecureHSM
476      . 2 Neowave Weneo tokens
477      . Synnix STD200
478      . Aktiv Rutoken ECP
479      . Alcor Micro SCR001
480      . ATMEL AT91SC192192CT-USB
481      . Panasonic USB Smart Card Reader 7A-Smart
482      . Gemalto GemProx DU and SU
483    - remove support of Reiner-SCT cyberJack pinpad(a) on request of
484      Reiner-SCT.  You should user the Reiner-SCT driver instead
485    - define CFBundleName to CCIDCLASSDRIVER so that non class drivers
486      have a higher priority. Used by pcsc-lite 1.5.5 and up.
487      Add a --disable-class configure option so that the Info.plist does
488      not define a Class driver. Default is class driver.
489    - do not power up a card with a voltage not supported by the reader
490    - add support of PIN_PROPERTIES_STRUCTURE structure and
491      FEATURE_IFD_PIN_PROPERTIES
492    - adds support of FEATURE_MCT_READERDIRECT. Only the Kobil TriB@nk
493      reader supports this feature for now. This is used for the Secoder
494      functionality in connected mode.
495    - add support of a composite device. No change needed with libhal.
496      use --enable-composite-as-multislot on Mac OS X since libhal is
497      not available on Mac OS X or with libusb on Linux
498    - some minor bugs removed
499
500
5011.3.10 - 7 March 2009, Ludovic Rousseau
502    - add support for
503      . Aktiv Rutoken Magistra
504      . Atmel AT98SC032CT
505      . MSI StarReader SMART
506      . Noname reader (from Omnikey)
507      . Precise Biometrics 200 MC and 250 MC
508      . Realtek 43 in 1 + Sim + Smart Card Reader
509      . TianYu CCID SmartKey
510      . Xiring Xi Sign PKI
511    - add a patch to support the bogus OpenPGP card (on board key
512      generation sometimes timed out)
513    - disable support of the contactless part of SDI010 and SCR331DI
514      (this code was reverse engineered and hard to maintain)
515    - some minor bugs removed
516
517
5181.3.9 - 18 November 2008, Ludovic Rousseau
519    - add support for
520     . ACS ACR122U PICC
521     . Aladdin eToken PRO USB 72K Java
522     . Atmel AT91SO
523     . CSB6 Basic
524     . CSB6 Secure
525     . CSB6 Ultimate
526     . Cherry SmartTerminal ST-1200USB
527     . CrazyWriter
528     . EasyFinger Standard
529     . EasyFinger Ultimate
530     . Gemalto PDT
531     . HP MFP Smart Card Reader
532     . KONA USB SmartCard
533     . SpringCard Prox'N'Roll
534     . VMware Virtual USB CCID
535    - MacOSX/configure: do not overwrite PCSC_CFLAGS, PCSC_LIBS,
536      LIBUSB_CFLAGS and LIBUSB_LIBS if already defined by the user
537    - by default, link statically against libusb on Mac OS X
538    - IFDHPowerICC(): use a very long timeout for PowerUp since the card
539      can be very slow to send the full ATR (up to 30 seconds at 4 MHz)
540    - SecurePINVerify(): correct a bug when using a Case 1 APDU and a
541      SCM SPR532 reader
542    - log the reader name instead of just the pcscd Lun
543    - some minor bugs removed
544
545
5461.3.8 - 27 June 2008, Ludovic Rousseau
547    - add support for
548      . Oberthur ID-One Cosmo Card
549    - do not include the release number in the Info.plist to avoid a
550      diff of a configuration file when upgrading the package.
551    - do not fail compilation if libusb is not available
552    - do not crash if the reader firmware is bogus and does not support
553      chaining for extended APDU.  This is the case for Kobil readers
554    - some minor bugs removed
555
556
5571.3.7 - 8 June 2008, Ludovic Rousseau
558    - add support for
559      . ActivCard Activkey Sim
560      . Pro-Active CSB6 Ultimate
561      . id3 Semiconductors CL1356A HID
562    - src/parse: do not try to parse devices with bInterfaceClass=0xFF
563      by default (use command line argument -p for proprietary class)
564    - configure.in: check if libusb-0.1 is emulated by libusb-compat +
565      libusb-1.0 to use or not the USB interrupt feature
566    - correct a bug in the serial communication (GemPC twin serial
567      reader)
568    - correct a pthread problem under Solaris
569    - some minor bugs removed
570
571
5721.3.6 - 30 April 2008, Ludovic Rousseau
573    - add support for
574     . Covadis Alya
575     . Covadis Véga
576     . Precise Biometrics 250 MC
577     . Validy TokenA sl vt
578     . Vasco DP905
579    - better support for the O2Micro OZ776, GemCore SIM Pro
580    - the environment variable LIBCCID_ifdLogLevel overwrite the value
581      of ifdLogLevel read from the Info.plist file
582    - add support for DragonFly BSD
583    - some minor bugs removed
584
585
5861.3.5 - 22 February 2008, Ludovic Rousseau
587    - add support for Gemplus Gem e-Seal Pro, Cherry SmartBoard,
588      G83-6610
589    - use usb_interrupt_read() only if libusb > 0.1.12 or
590      --enable-usb-interrupt is used. libusb <= 0.1.12 is bogus and will
591      consume more CPU than needed.
592    - contrib/Kobil_mIDentity_switch/Kobil_mIDentity_switch was broken
593      on Linux since release 1.3.1
594    - some minor bugs removed
595
596
5971.3.4 - 8 February 2008, Ludovic Rousseau
598    - the serial driver could not be loaded because of the missing
599      symbol InterruptRead
600    - remove WAIT_FOR_SYSFS="bInterfaceProtocol" to do not delay udev
601
602
6031.3.3 - 6 February 2008, Ludovic Rousseau
604    - add support for Lexar Smart Enterprise Guardian and Blutronics
605      Bludrive II CCID
606    - add support of TAG_IFD_POLLING_THREAD using IFDHPolling() to
607      detect asynchronous card movements. With this feature pcscd will
608      not poll the reader every 0.4 second for a card movement but will
609      wait until the reader sends a USB interrupt signal
610    - correct a bug with an ICCD-B device and a receive buffer smaller
611      than 4 bytes
612    - remove the sleep in the udev rule. It slows down the detection of
613      any USB device
614    - some minor bugs removed
615
616
6171.3.2 - 22 January 2008, Ludovic Rousseau
618    - add support of Apple Mac OS X Leopard (10.5.1)
619    - solve a hotplug problem on Ubuntu 7.10 (reader was not detected)
620    - create a symlink from libccidtwin.so to libccidtwin.so.VERSION so
621      that the /etc/reader.conf configuration file do not need to edited
622      for each new driver version
623    - make driver for the GemPC Serial compile again
624    - some minor bugs removed
625
626
6271.3.1 - 16 November 2007, Ludovic Rousseau
628    - add support for "Philips Semiconductors JCOP41V221" ICCD card,
629      O2Micro oz776 (ProductID 0x7772), CardMan5321, Giesecke & Devrient
630      StarSign Card Token 350 and 550, SafeNet IKey4000, Eutron
631      CryptoIdentity, Eutron Smart Pocket, Eutron Digipass 860, Lenovo
632      Integrated Smart Card Reader, "Kobil EMV CAP - SecOVID Reader III,
633      Charismathics token, Reiner-SCT cyberJack pinpad(a)
634    - improve support of Mac OS X and *BSD
635    - some minor bugs removed
636
637
6381.3.0 - 10 May 2007, Ludovic Rousseau
639    - add support of ICCD version A and B
640    - add support for (new) KOBIL mIDentity, SchlumbergerSema Cyberflex
641      Access e-gate ICCD, Fujitsu Siemens Computers SmartCard USB 2A and
642      SmartCard Keyboard USB 2A readers, OmniKey CardMan 4321
643    - contrib/RSA_SecurID/RSA_SecurID_getpasswd: tool to get the on time
644      password also displayed on the token screen
645    - contrib/Kobil_mIDentity_switch: tool to activate the CCID reader
646      of the Kobil mIDentity. The tool should be started automatically
647      by the udev rule on Linux
648    - GemPC pinpad: localisation of the string "PIN blocked", add
649      Portuguese(pt), Dutch(nl) and Turkish(tr) localisations
650    - some minor bugs removed
651
6521.2.1 - 27 January 2007, Ludovic Rousseau
653    - pcscd_ccid.rules: add non CCID generic (InterfaceClass: 0xFF)
654      readers
655    - INSTALL: document how to use --enable-udev on FreeBSD
656    - move the O2Micro Oz7762 from the unsupported to the supported list
657      since patches to support it are applied by default
658      (O2MICRO_OZ776_PATCH)
659
660
6611.2.0 - 19 January 2007, Ludovic Rousseau
662    - add support for SCARD_ATTR_VENDOR_IFD_VERSION,
663      SCARD_ATTR_VENDOR_NAME and SCARD_ATTR_MAXINPUT tags used by
664      SCardGetAttrib(). Read SCARDGETATTRIB.txt for more documentation
665    - add support for OmniKey CardMan 5125, CardMan 1021, C3PO LTC32,
666      Teo by Xiring, HP USB Smartcard Reader
667    - use --enable-twinserial to build the serial reader driver
668    - use --enable-udev to configure for a use with Linux udev hotplug
669      mechanism. This will allow pcscd to avoid polling the USB bus
670      every 1 second
671    - some minor bugs removed
672
673
6741.1.0 - 11 August 2006, Ludovic Rousseau
675    - support Extended APDU (up to 64KB) for readers in TPDU mode (many
676      readers) or Extended APDU mode (very rare). This only works for
677      T=1 cards.
678    - add support for C3PO LTC31 (new version), OmniKey CardMan 3021, HP
679      USB Smart Card Keyboard, Actividentity (ActiveCard) Activkey Sim,
680      id3 Semiconductors CL1356D and CL1356T, Alcor Micro AU9520
681    - support the contactless interface of the SCR331-DI-NTTCOM
682    - add support of FreeBSD
683    - increase the USB timeout used for PIN verify/modify to not timeout
684      before the reader
685    - the 4-bytes value returned by CM_IOCTL_GET_FEATURE_REQUEST shall
686      be encoded in big endian as documented in PCSC v2 part 10 ch 2.2
687      page 2. The applications using this feature shall be updated (to
688      respect the PCSC specification).
689    - use ./configure --enable-twinserial to compile and install the the
690      driver for the GemPC Twin serial
691    - some minor bugs removed
692
693
6941.0.1 - 22 April 2006, Ludovic Rousseau
695    - add support for Axalto Reflex USB v3, SCM Micro SDI 010, Winbond
696      Electronics W81E381 chipset, Gemplus GemPC Card, Athena ASE IIIe
697      KB USB, OmniKey CardMan 3621
698    - support Solaris (Solaris uses a different libusb)
699    - better documentation for ./configure arguments
700    - improve support of Cherry XX44 keyboard for PIN verify and change
701      (circumvent firmware bugs)
702    - do not use LTPBundleFindValueWithKey() from pcscd since this
703      function has been removed from pcscd API
704    - use -fvisibility=hidden is available to limit the number of
705      exported symbols
706
707
7081.0.0 - 3 March 2006, Ludovic Rousseau
709    - add support for ActivCard USB Reader 3.0, Athena ASE IIIe USB V2,
710      SCM Micro SCR 355, SCR 3311, SCR 3320, SCR 3340 ExpressCard54,
711      Gemplus GemCore SIM Pro, GemCore POS Pro (serial and USB), GemPC
712      Express (ExpressCard/54 interface), SmartEpad (v 2.0), OmniKey
713      CardMan 5121 
714    - greatly improve support of PIN PAD readers. We now support TPDU
715      readers with T=1 cards
716    - use l10n strings for the Gemplus GemPC PIN PAD (it has a screen).
717      Supported languages are: de, en, es, fr, it
718    - rename ACS ACR 38 in ACR 38U-CCID since the ACR 38 is a different
719      reader and is not CCID compatible
720    - allow to select the Power On voltage using Info.plist instead of
721      recompiling the source code
722    - correct bugs in the support of multi-slots readers
723    - if the card is faster than the reader (TA1=97 for example) we try
724      to use a not-so-bad speed (corresponding to TA1=96, 95 or 94)
725      instead of the default speed of TA1=11
726    - the src/parse tool do not use the driver anymore. No need to
727      update the Info.plist file first.
728    - some minor bugs removed
729
730
7310.9.4 - 27 November 2005, Ludovic Rousseau
732    - add support for Eutron SIM Pocket Combo, Eutron CryptoIdentity,
733      Verisign Secure Token and VeriSign Secure Storage Token, GemPC
734      Card (PCMCIA), SCM SCR331-DI NTTCom, SCM Micro SCR 3310-NTTCom,
735      Cherry ST-1044U, Cherry SmartTerminal ST-2XXX
736    - add support of PC/SC v2 part 10 CM_IOCTL_GET_FEATURE_REQUEST add
737      support of FEATURE_VERIFY_PIN_DIRECT and FEATURE_MODIFY_PIN_DIRECT
738      remove support of IOCTL_SMARTCARD_VENDOR_VERIFY_PIN (now
739      obsoleted). A sample code is available in examples/scardcontrol.c
740    - we need pcsc-lite 1.2.9-beta9 since some structures used for PIN
741      pad readers are defined by pcsc-lite
742    - some (bogus) cards require an extra EGT but the ATR does not say
743      so. We try to detect the bogus cards and set TC1=2
744    - IFDHSetProtocolParameters(): only use a data rate supported by the
745      reader in the PPS negociation, otherwise we stay at the default
746      speed.
747    - calculate and store the read timeout according to the card ATR
748      instead of using a fixed value of 60 seconds
749    - increase the read timeout if the card sends and WTX request
750    - improve support of GemPC Twin and GemPC Card (serial protocol)
751    - reset the device on close only if DRIVER_OPTION_RESET_ON_CLOSE is
752      set. The problem was that a device reset also disconnects the
753      keyboard on a keyboard + reader device.
754    - use color logs
755    - some minor bugs removed
756
757
7580.9.3 - 14 March 2005, Ludovic Rousseau
759    - change the licence from GNU GPL to GNU Lesser GPL (LGPL)
760    - add support for ACS ACR 38, Kobil KAAN Base, Kobil KAAN Advanced,
761      Kobil KAAN SIM III, Kobil KAAN mIDentity, SCM Micro SCR 331,
762      SCM Micro SCR 331-DI, SCM Micro SCR 335, SCM Micro SCR 3310,
763      SCM Micro SCR 532, Cherry XX44 readers
764    - improve communication speed with readers featuring "Automatic PPS
765      made by the CCID"
766    - switch the Cherry xx33 reader in ISO mode if power up in EMV mode
767      fails.
768    - add support of character level readers. Thanks to O2Micro for the
769      patch
770    - add support for the O2Micro OZ776S reader but the reader firmware
771      is still bogus
772    - check firmware version to avoid firmwares with bugs. You can still
773      use a bogus firmware by setting DRIVER_OPTION_USE_BOGUS_FIRMWARE
774      in Info.plist
775    - some minor bugs removed
776
7770.9.2 - 15 August 2004, Ludovic Rousseau
778    - T=1 TPDU code:
779      . the work on T=1 TPDU code was possible thanks to Gemplus
780        validation team who helped me test, debug and bring the code to
781        an EMV validation level. Thanks to Jérôme, Jean-Yves, Xavier and
782        the Gemplus readers department
783      . error code was not checked correctly
784      . avoid a (nearly) infinite loop when resynch are needed.
785      . correctly initialise an internal value to allow more than one
786        reader to work
787    - multi-slots readers
788      . add support for multi-slots readers. The only one I have is a
789        SCM Micro SCR 331-DI with a contact and a contactless interface.
790        The contactless interface may or may not work for you since the
791        reader uses proprietary (undocumented) commands.
792    - GemPC Twin serial reader
793      . perform a command (get the reader firmware) to be sure a GemPC
794        Twin (serial or pcmcia) reader is connected
795      . use a dynamic timeout when reading the serial port.
796        The first timeout used when detecting the reader is 2 seconds to
797        not wait too long if no reader is connected. Later timeouts are
798        set to 1 minute to allow long time APDU.
799    - use `pkg-config libpcsclite --cflags` to locate the pcsc-lite
800      header files
801    - use `pkg-config --print-errors --atleast-version=1.2.9-beta5 libpcsclite`
802      to test the pcsc-lite version
803    - code improvements thanks to the splint tool (http://www.splint.org/)
804
8050.9.1 - 1 July 2004, Ludovic Rousseau
806    - I forgot to define IFD_PARITY_ERROR in a .h file
807
8080.9.0 - 1 July 2004, Ludovic Rousseau
809    - The T=1 TPDU automata from Carlos Prados' Towitoko driver is very
810      limited and do not support error management mechanisms.
811      I then used the T=1 TPDU automata from OpenCT (OpenSC project).
812      This automata is much more powerful but still lacks a lot of error
813      management code.
814      I then added all the needed code to reach the quality level
815      requested by the EMV standard.
816    - add support for new readers:
817      . Advanced Card Systems ACR 38
818      . Cherry XX33
819      . Dell keyboard SK-3106
820      . Dell smart card reader keyboard
821      . SCR 333
822    - add support of multi procotol cards (T=0 and T=1)
823    - the debug level is now dynamic and set in the Info.plist file (no
824      need to recompile the driver any more)
825    - add support for the libusb naming scheme: usb:%04x/%04x:libusb:%s
826    - INSTALL: add a "configuring the driver for the serial reader
827      (GemPC Twin)" part
828    - use `pkg-config libpcsclite --variable=usbdropdir` so you do not
829      have to use --enable-usbdropdir=DIR or --enable-ccidtwindir=DIR
830      even if pcscd does not use the default /usr/local/pcsc/drivers
831    - add support of IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE and
832      IOCTL_SMARTCARD_VENDOR_VERIFY_PIN in IFDHControl()
833    - read ifdDriverOptions from Info.plist to limit the use of
834      IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE (idea from Peter Williams)
835    - provide an example of use of SCardControl()
836      IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE and
837      IOCTL_SMARTCARD_VENDOR_VERIFY_PIN in example/
838    - add a --enable-pcsclite option (default to yes) so that the driver
839      can be compiled for a different framework (one needing
840      tokenparser.l like Solaris)
841    - Reset action is power off and power on, not just power on
842    - use the include files from pcsc-lite
843    - add a mechanism to allow power on at 1.8V, 3V and then 5V as
844      specified by ISO 7816. We still use 5V for now to avoid problems
845      with non ISO compliant cards
846
8470.4.1 - 14 February 2004, Ludovic Rousseau
848    - distribute missing files readers/supported_readers.txt and
849      src/create_Info_plist.pl
850      'make install' failed because of this.
851
8520.4.0 - 13 February 2004, Ludovic Rousseau
853    - support of T=1 with TPDU readers. A lot of the T=1 code comes from
854      Carlos Prados towitoko driver.
855      My code is GNU GPL, his code is GNU LGPL so the global driver is
856      GNU GPL
857    - PPS negotiation if the reader does not do it automatically
858    - add support for the Silitek SK-3105 keyboard. It's a USB device
859      with multiple interfaces
860    - use the create_Info_plist.pl script to generate the installed
861      Info.plist from an Info.plist template and a list of supported
862      readers. The Info.plist was too "complex" to maintain by hand
863      since it now contains 11 entries
864    - add support of IFDHCreateChannelByName to avoid wrong reader
865      enumeration. This is not complete if you have multiple _identical_
866      readers. You need to use a > 1.2.0 pcsc-lite version (not yet
867      released at that time)
868    - build but do not install the serial ccidtwin driver by default
869      since it is useless on computers without a serial port or without
870      this reader for example.
871    - read and write timeouts are not symmetric. write timout can be
872      shorter since the reader and card is not supposed to do anything
873      before receiving (write) a command
874    - do not try to find usb.h and other libusb files if
875      --disable-libusb is used. Needed if you only want to build the
876      serial driver.  Thanks to Niki Waibel for the patch
877    - add a --enable-ccidtwindir argument to ./configure to specify the
878      serial GemPC Twin installation directory
879    - debug and code improvements and simplifications
880
8810.3.2 - 4 November 2003, Ludovic Rousseau
882    - src/commands.c: correct a stupid bug that occurs with an APDU with
883      2 bytes response.
884    - Info.plist: add SPR 532 in list of supported readers
885    - parse.c: do not exit if the InterfaceClass is 0xFF (proprietary).
886      It is the case with old readers manufactured before the final
887      release of the CCID specs.
888    - move LTC31 reader from unsupported to supported reader list. It
889      was my f ault since in used odd INS byte in my test applet and odd
890      INS bytes are forbidden by ISO 7816-4 ch. 5.4.2 Instruction byte.
891      Thanks to Josep Moné s Teixidor for pointing the problem.
892    - src/commands.c: comment out the automatic GET RESPONSE part. I
893      don't think it should be in the driver. Maybe in pcscd instead?
894
8950.3.1 - 23 September 2003, Ludovic Rouseau
896    - add --enable-multi-thread (enabled by default) for thread safe
897      support an APDU multiplexing. You will need pcsc-lite-1.2.0-rc3 or
898      above to use this feature.
899    - add --enable-libusb=PATH option is your libusb is not installed in
900      /usr or /usr/local
901    - honor DESTDIR in install rules (closes [ #300110 ]). Thanks to
902      Ville Skyttä for the patch.
903    - src/ccid.c: do not switch the GemPC Key and GemPC Twin in APDU
904      mode since it also swicth in EMV mode and may not work with non
905      EMV cards
906    - src/ccid_serial.c: complete reimplementation of the Twin serial
907      protocol using a finite state automata (code much simpler)
908
9090.3.0 - 10 September 2003, Ludovic Rousseau
910    - support of GemPC Twin connected to a serial port. Thanks to Niki
911      W. Waibel for a working prototype.
912    - support of auto voltage at power up if the reader support it
913      instead of forcing a 5V in all cases.
914    - support of APDU mode instead of just TPDU if the reader support
915      it. Thanks to Jean-Luc Giraud for the idea and inspiration I got
916      from his "concurrent" driver.
917    - support of "time request" from the card.
918    - parse: new indentation for more readability of supported features.
919    - switch the GemPC Key and GemPC Twin in APDU mode since they
920      support it but do not announce it in the dwFeatures.
921    - new build process using autoconf/automake.
922
9230.2.0 - 26 August 2003, Ludovic Rousseau
924    - Works under MacOS X
925    - Info.plist: use an <array></array> for the alias enumeration
926    - Makefile rework for *BSD and MacOS X
927
9280.1.0 - 13 August 2003, Ludovic Rousseau
929    - First public release
930
931
932$Id: README 6795 2013-11-25 18:09:17Z rousseau $
933
934 vim:ts=20
935