Wiki     Blog     Roadmap     Timeline     New Ticket     View Tickets     Project Search

source: releases/Apple/OSX-10.7.0/SmartcardCCID-55000/ccid/ccid/ChangeLog @ 160

Revision 151, 170.0 KB checked in by geddis@…, 20 months ago (diff)

importing

Line 
12009-07-28  Ludovic Rousseau
2
3        * [r4347] README, configure.in: release 1.3.11
4        * [r4346] src/ccid.c, src/ccid_usb.c, src/ccid_usb.h,
5          src/ifdhandler.c: change InterruptRead() to add a timeout
6          parameter. We need a short timeout in ccid_open_hack_pre()
7        * [r4345] src/ccid_usb.c: InterruptRead(): also log reader_index
8          (instead of Lun) for debug
9
102009-07-27  Ludovic Rousseau
11
12        * [r4343] src/ccid_usb.c: OpenUSBByName(): do not modify the device
13          name. The same pointer is used by pcscd
14        * [r4342] src/ccid_usb.c: InterruptRead(): use usb_strerror() to
15          display the error message in text instead of just decimal
16
172009-07-21  Ludovic Rousseau
18
19        * [r4341] examples/scardcontrol.c: send a "secoder info" command if
20          the reader supports FEATURE_MCT_READERDIRECT
21        * [r4340] examples/scardcontrol.c: parse FEATURE_IFD_PIN_PROPERTIES
22          and FEATURE_MCT_READERDIRECT tags
23        * [r4339] examples/scardcontrol.c: use a swicth to parse the
24          CM_IOCTL_GET_FEATURE_REQUEST TLV tag
25        * [r4338] examples/scardcontrol.c: check a card is present only
26          _after_ SCardControl(CM_IOCTL_GET_FEATURE_REQUEST)
27        * [r4337] examples/scardcontrol.c: update copyright date
28        * [r4336] examples/scardcontrol.c: document how to select a reader
29          using a command line argument
30        * [r4335] examples/scardcontrol.c: check the error code returned by
31          SCardControl(CM_IOCTL_GET_FEATURE_REQUEST)
32
332009-07-20  Ludovic Rousseau
34
35        * [r4325] src/ccid.c: the disable card movements notification
36          "hack" for GemProx DU is no more needed
37
382009-07-18  Ludovic Rousseau
39
40        * [r4323] MacOSX/configure: update Copyright date
41        * [r4322] MacOSX/configure: try to use a static link with libusb
42          even if libusb-config is found
43
442009-07-17  Ludovic Rousseau
45
46        * [r4318] readers/Panasonic_USB_Smart_Card_Reader_7A-Smart.txt,
47          readers/supported_readers.txt: add Panasonic USB Smart Card
48          Reader 7A-Smart
49
502009-07-07  Ludovic Rousseau
51
52        * [r4313] MacOSX/configure: ifd-ccid-foobar ->
53          ifd-ccid-foobar.bundle for the bundle name
54        * [r4311] readers/ATMEL_AT91SC192192CT-USB.txt,
55          readers/supported_readers.txt: add ATMEL_AT91SC192192CT-USB.txt
56
572009-07-06  Ludovic Rousseau
58
59        * [r4310] configure.in, src/Makefile.am: add --disable-class
60          argument to build a NON class driver
61        * [r4309] src/create_Info_plist.pl: remove debug line
62        * [r4308] src/Info.plist.src, src/create_Info_plist.pl: add a
63          --no-class argument so that the Info.plist does not define a
64          Class driver. Default is class driver.
65        * [r4307] src/Info.plist.src: default value for ifdCapabilities is
66          now 0x00000000 since pcscd should use libhal instead of udev
67          hotplug
68        * [r4306] src/Info.plist.src, src/Makefile.am,
69          src/create_Info_plist.pl: extend create_Info_plist.pl to use
70          --ifdCapabilities= --target= --version= --bundle= instead of sed
71          expression in the Makefile
72        * [r4304] readers/Alcor_SCR001.txt, readers/supported_readers.txt:
73          add Alcor Micro SCR001
74        * [r4303] MacOSX/configure: document the use of --enable-bundle=
75        * [r4302] configure.in: check if strlcat is provided by the system
76         
77          strlcpycat.h:20: warning: redundant redeclaration of ‘strlcat’
78
792009-07-03  Ludovic Rousseau
80
81        * [r4295] src/ccid_usb.c, src/ifdhandler.c: If the driver fails to
82          open a device (wrong interface number in the libhal scheme for
83          example) then return IFD_NO_SUCH_DEVICE instead of the generic
84          error IFD_COMMUNICATION_ERROR
85
862009-07-01  Ludovic Rousseau
87
88        * [r4292] src/defs.h: use int instead of DWORD for nATRLength in
89          CCID_DESC structure. Gain 8 bytes on the structure size. Thanks
90          to pahole(1)
91
922009-06-29  Ludovic Rousseau
93
94        * [r4284] src/ccid_usb.c: InterruptRead(): use PERIODIC instead of
95          COMM debug level to not pollute to much the logs for this
96          _periodic_ call
97
982009-06-26  Ludovic Rousseau
99
100        * [r4282] src/ifdhandler.c: IFDHControl(): add support of
101          FEATURE_MCT_READERDIRECT
102         
103          Only the Kobil TriB@nk reader supports this feature for now. This
104          is used for the Secoder functionality in connected mode.
105        * [r4281] src/ccid.c: ccid_open_hack_pre(): do not call
106          InterruptRead() with a KOBIL_TRIBANK The call do not timeout and
107          blocs until a card is inserted (on Mac OS X)
108        * [r4280] src/ccid.h: #define KOBIL_TRIBANK
109        * [r4279] src/ccid_ifdhandler.h: #define
110          IOCTL_FEATURE_MCT_READERDIRECT
111
1122009-06-25  Ludovic Rousseau
113
114        * [r4276] readers/Aktiv_Rutoken_ECP.txt,
115          readers/supported_readers.txt: add Aktiv Rutoken ECP
116        * [r4274] MacOSX/configure: typo in comment
117
1182009-06-20  Ludovic Rousseau
119
120        * [r4267] readers/supported_readers.txt: add missing ':' separator
121        * [r4266] src/ccid_ifdhandler.h: define
122          IOCTL_FEATURE_IFD_PIN_PROPERTIES only if
123          FEATURE_IFD_PIN_PROPERTIES is defined (pcsc-lite version >=
124          1.5.3)
125
1262009-06-19  Ludovic Rousseau
127
128        * [r4263] readers/Synnix_STD200.txt, readers/supported_readers.txt:
129          add Synnix STD200
130
1312009-06-16  Ludovic Rousseau
132
133        * [r4260] readers/supported_readers.txt: add 2 Neowave Weneo tokens
134        * [r4257] readers/Neowave_Weneo2.txt: another Neowave token - 512MB
135          flash storage - OS is "IBM JCOP41 Standard" - 32k internal memory
136
1372009-06-14  Ludovic Rousseau
138
139        * [r4256] src/utils.h: rename variable index in idx
140         
141          utils.h:32: warning: declaration of 'index' shadows a global
142          declaration
143        * [r4255] src/ifdhandler.c: IFDHControl(): use the correct return
144          size for IOCTL_FEATURE_IFD_PIN_PROPERTIES
145
1462009-06-13  Ludovic Rousseau
147
148        * [r4254] readers/Kobil_EMV_CAP.txt: new firmware
149
1502009-05-29  Ludovic Rousseau
151
152        * [r4235] src/commands.c: CmdXfrBlockAPDU_extended(): Correctly ask
153          for the next extended response block.
154         
155          Thanks to Harm Braams for the bug report
156
1572009-05-27  Ludovic Rousseau
158
159        * [r4229] src/ccid_usb.c: ccid_check_firmware(): reindent a line
160        * [r4228] src/ccid_usb.c: OpenUSBByName(): no need to get a pointer
161          on the device serial number from the HAL string
162        * [r4227] src/ccid_usb.c: ACS ACR122U-WB-R with firmware < 2.06 are
163          bogus: APDU with 0x7B (123) bytes expected do not work with a
164          14443 card. The reader returns SW=63 00 instead.
165        * [r4226] readers/ACR122U_PICC.txt: new firmware
166
1672009-05-25  Ludovic Rousseau
168
169        * [r4224] Makefile.am, configure.in: generate a .bz2 archive only
170
1712009-05-13  Ludovic Rousseau
172
173        * [r4204] readers/Softforum_XecureHSM.txt,
174          readers/Softforum__XecureHSM.txt: remove a _ in the filename
175        * [r4203] readers/Samsung_XecureHSM.txt,
176          readers/Softforum__XecureHSM.txt, readers/supported_readers.txt:
177          rename Samsung XecureHSM in Softforum XecureHSM
178
1792009-05-12  Ludovic Rousseau
180
181        * [r4197] readers/Samsung_XecureHSM.txt,
182          readers/supported_readers.txt: add Samsung XecureHSM
183
1842009-05-10  Ludovic Rousseau
185
186        * [r4195] src/ccid.c: ccid_open_hack_pre(): call InterruptRead()
187          for all CCID device Makes the Broadcom 5880 work a bit better
188          (but the reader is still bogus) ---This line, and those below,
189          will be ignored--
190         
191          M src/ccid.c
192
1932009-05-08  Ludovic Rousseau
194
195        * [r3494] readers/C3PO_LTC32_USBv2_old.txt, readers/Makefile.am:
196          C3PO_LTC32_USBv2_old.txt is a duplicate of C3PO_TLTC2USB.txt
197
1982009-05-07  Ludovic Rousseau
199
200        * [r3490] readers/LTC32.txt: duplicate of C3PO_LTC32_USBv2.txt
201        * [r3488] src/ccid.h, src/ccid_serial.c, src/ccid_usb.c,
202          src/commands.c: do not power up a card with a voltage not
203          supported by the reader
204
2052009-05-02  Ludovic Rousseau
206
207        * [r3485] readers/SCR331-DI-NTTCom.txt: the CCID descriptor was
208          duplicated
209
2102009-04-21  Ludovic Rousseau
211
212        * [r3462] readers/Feitian_SCR301.txt,
213          readers/supported_readers.txt: add Feitian SCR301
214
2152009-04-17  Ludovic Rousseau
216
217        * [r3459] src/Info.plist.src: define CFBundleName to
218          CCIDCLASSDRIVER so that non class drivers have a higher priority.
219          It should work on Mac OS X.
220         
221          Patch from SmartCardServices on macosxforge.org
222        * [r3458] src/Info.plist.src, src/Makefile.am: add
223          CFBundleExecutable, CFBundleIdentifier and
224          CFBundleShortVersionString to be inline with the Apple version
225
2262009-04-16  Ludovic Rousseau
227
228        * [r3455] readers/supported_readers.txt: add iDream Vid/Pid but
229          commented as the reader is bogus
230        * [r3454] README, readers/supported_readers.txt: add Raritan
231          D2CIM-DVUSB VM/CCID in the should work list
232
2332009-04-10  Ludovic Rousseau
234
235        * [r3425] src/openct/proto-t1.c: t1_transceive(): receiving a WTX
236          block asking for more time is not a critical error. Use
237          DEBUG_COMM2 instead of DEBUG_CRITICAL2
238        * [r3424] src/ccid.c: ccid_open_hack_pre(): empty the interrupt end
239          point (card movements) before trying to talk to the device for
240          the GemProx DU/SU
241
2422009-04-09  Ludovic Rousseau
243
244        * [r3423] readers/Raritan_D2CIM-DVUSB.txt: add Raritan D2CIM-DVUSB
245          VM/CCID virtual reader
246        * [r3416] src/ifdhandler.c: IFDHCreateChannelByname() &
247          IFDHCreateChannel(): do not call ccid_open_hack_post() if the 3
248          IFDHICCPresence() failed and we closed the reader
249        * [r3414] src/ccid_usb.c: OpenUSBByName(): static_interface
250          variable is used only with USE_COMPOSITE_AS_MULTISLOT
251
2522009-04-08  Ludovic Rousseau
253
254        * [r3413] readers/SCL010.txt, readers/supported_readers.txt: The
255          SCM SCL010 Contactless Reader is not supported
256
2572009-04-02  Ludovic Rousseau
258
259        * [r3409] readers/GemProxDU_contact.txt,
260          readers/GemProxDU_contactless.txt, readers/GemProxSU_contact.txt,
261          readers/GemProxSU_contactless.txt: regenerate
262        * [r3408] src/parse.c: get the iInterface string instead of just
263          printing the string number
264
2652009-03-31  Ludovic Rousseau
266
267        * [r3406] src/ccid_usb.c: OpenUSBByName(): only increase the
268          interface number for the next "slot" if the previous interface
269          was opened correctly
270         
271          It is now posible to use 2 composite readers without libusb and
272          libhal scheme
273        * [r3405] src/ccid_usb.c: OpenUSBByName(): support more than one
274          composite or composite-as-multislot readers
275
2762009-03-30  Ludovic Rousseau
277
278        * [r3404] src/ccid.c: move hack code for GemPC Key, GemPC Twin,
279          GemPC pinpad, GemProx DU GemProx SU and SCM contactless readers
280          from ccid_open_hack_pre() to ccid_open_hack_post()
281         
282          We first need to get a correct communication (sync USB togggle
283          bit) before sending the control commands
284        * [r3403] src/ccid.c, src/ccid.h, src/ifdhandler.c: split
285          ccid_open_hack() in ccid_open_hack_pre() and
286          ccid_open_hack_post() before and after the empirical "warm up"
287          sequence
288         
289          The problem is the USB toggle bit. I could not find a simple way
290          to reset it. So when the driver is started again the reader and
291          the host may not be in sync. The few first CCID commands may
292          fail.
293
2942009-03-29  Ludovic Rousseau
295
296        * [r3401] readers/supported_readers.txt: remove support of
297          Reiner-SCT cyberJack pinpad(a) on request of Reiner-SCT
298         
299          You should user the Reiner-SCT driver instead
300
3012009-03-27  Ludovic Rousseau
302
303        * [r3395] src/ifdhandler.c: IFDHCreateChannel(): use the same
304          empirical hack as in IFDHCreateChannelByName() to recover the
305          reader after pcscd is restarted.
306         
307          The problem is that USB frames have a toggle bit
308
3092009-03-26  Ludovic Rousseau
310
311        * [r3380] readers/GemProxDU_contact.txt,
312          readers/GemProxDU_contactless.txt, readers/GemProxSU_contact.txt,
313          readers/GemProxSU_contactless.txt, readers/supported_readers.txt:
314          add Gemalto GemProx DU and SU readers
315        * [r3379] MacOSX/configure: use --enable-composite-as-multislot on
316          Mac OS X since libhal is not available on Mac OS X
317        * [r3378] configure.in, src/ccid.c, src/ccid.h, src/ccid_usb.c,
318          src/ifdhandler.c: add support of a composite device as
319          multi-slots device
320
3212009-03-24  Ludovic Rousseau
322
323        * [r3375] src/ccid.h, src/commands.c: SecurePINVerify(): Correct
324          bNumberMessage for Dell keyboard
325        * [r3374] readers/DellSCRK.txt: update
326        * [r3373] readers/GemPCTwin_serial.txt: add a (faked) USB
327          descriptor for the GemPC Twin using serial communication
328
3292009-03-21  Ludovic Rousseau
330
331        * [r3356] examples/scardcontrol.c, src/ccid.h,
332          src/ccid_ifdhandler.h, src/ccid_usb.c, src/commands.c,
333          src/ifdhandler.c: add support of PIN_PROPERTIES_STRUCTURE
334          structure and FEATURE_IFD_PIN_PROPERTIES
335         
336          Thanks to Martin Paljak for the patch
337
3382009-03-20  Ludovic Rousseau
339
340        * [r3354] src/commands.c: CmdEscape(): set the communication
341          timeout to 30 seconds for the PC_to_RDR_Escape commands since
342          some commands may be slow
343         
344          Thanks to Adam Laurie (rfidiot.org) for the bug report
345        * [r3353] src/commands.c: SecurePINVerify() and SecurePINModify():
346          correctly restore the communication timeout if sending the
347          command fails
348
3492009-03-19  Ludovic Rousseau
350
351        * [r3351] src/commands.c: SecurePINModify(): do not reject the
352          command if bNumberMessage = 0xFF (default value)
353         
354          Thanks to Martin Paljak for the patch
355        * [r3350] src/ccid_usb.c: OpenUSBByName(): support more than one
356          CCID interface per USB device with the libhal scheme
357
3582009-03-17  Ludovic Rousseau
359
360        * [r3349] MacOSX/configure: Use libusb-config to define LIBUSB_*
361          variables
362        * [r3348] src/ccid_usb.c, src/ccid_usb.h, src/parse.c: allow to
363          list more than one CCID interface per USB device
364
3652009-03-13  Ludovic Rousseau
366
367        * [r3344] readers/Alya.txt: remove fingerprint part
368
3692009-03-07  Ludovic Rousseau
370
371        * [r3340] README: use spaces instead of tabs
372        * [r3338] README, configure.in: release 1.3.10
373        * [r3337] src/ifdhandler.c: IFDHSetProtocolParameters(): rename atr
374          in openpgp_atr
375         
376          ifdhandler.c:822: warning: declaration of ‘atr’ shadows a
377          previous local ifdhandler.c:527: warning: shadowed declaration is
378          here
379
3802009-03-01  Ludovic Rousseau
381
382        * [r3330] src/ifdhandler.c: IFDHSetProtocolParameters(): add a hack
383          to support the bogus OpenGPG card. The card declares a BWI=4
384          (1.4s) but, sometimes, do not send a WTX (time request) in time
385          and the on board key generation then fails. The patch uses BWI=7
386          (11s)
387         
388          Thanks to Jan Suhr for helping tracking the bug
389
3902009-02-25  Ludovic Rousseau
391
392        * [r3325] readers/ACS_ACR100.txt, readers/ACS_ACR38_plugin.txt: add
393          ACS ACR100 and ACS ACR38 plugin
394        * [r3324] readers/ACR122U_PICC.txt: update firmware
395
3962009-02-21  Ludovic Rousseau
397
398        * [r3322] src/ifdhandler.c: typo in comment
399
4002009-02-18  Ludovic Rousseau
401
402        * [r3320] README, readers/Precise_200_MC.txt,
403          readers/supported_readers.txt: add Precise Biometrics 200 MC and
404          250 MC in the "should work" list
405        * [r3319] src/ifdhandler.c: IFDHSetProtocolParameters(): correct
406          parameter Protocol documentation
407         
408          Thanks to Joachim Breitner for the bug report
409
4102009-02-15  Ludovic Rousseau
411
412        * [r3318] src/commands.c: SecurePINVerify(): also check the value
413          of bmPINBlockString in case of Case 1 APDU and SPR532
414         
415          Thanks to Peter Koch for the patch
416
4172009-02-14  Ludovic Rousseau
418
419        * [r3316] README, readers/Makefile.am, readers/Philips_SmartMX.txt,
420          readers/SafeNet_IKey4000.txt, readers/supported_readers.txt: use
421          product name Philips SmartMX instead of commercial name SafeNet
422          IKey4000.
423         
424          SafeNet IKey4000 is also used with different device like:
425          idVendor: 0x04B9 iManufacturer: SafeNet, Inc. idProduct: 0x1206
426          iProduct: iKey 4000 Found a CCID/ICCD device idVendor: 0x04B9
427          iManufacturer: SafeNet, Inc. idProduct: 0x1206 iProduct: iKey
428          4000 bcdDevice: 1.10 (firmware release?) bLength: 9
429          bDescriptorType: 4 bInterfaceNumber: 0 bAlternateSetting: 0
430          bNumEndpoints: 0 Control only bInterfaceClass: 0xFF NOT A CCID
431          DEVICE Class is 0xFF (proprietary) bInterfaceSubClass: 0
432          bInterfaceProtocol: 0 bulk transfer, optional interrupt-IN (CCID)
433          iInterface: 0 USB extra length is too short: 2
434         
435          NOT A CCID DEVICE
436
4372009-02-11  Ludovic Rousseau
438
439        * [r3315] README, readers/TianYu_CCID_SmartKey.txt,
440          readers/supported_readers.txt: add TianYu CCID SmartKey in the
441          should work list
442
4432009-02-07  Ludovic Rousseau
444
445        * [r3310] src/ccid_usb.c: OpenUSBByName(): device_vendor and
446          device_product varioables are not used on Mac OS X.
447
4482009-02-04  Ludovic Rousseau
449
450        * [r3301] configure.in: display the values of PCSC_CFLAGS and
451          PCSC_LIBS
452        * [r3300] configure.in: use [ ] for PKG_CHECK_EXISTS() arguments
453        * [r3299] MacOSX/configure, configure.in: use PKG_CHECK_EXISTS()
454          before PKG_CHECK_MODULES() so that the *_CFLAGS and *_LIBS are
455          not erased if pkg-config does not find the searched lib
456
4572009-01-29  Ludovic Rousseau
458
459        * [r3296] readers/supported_readers.txt: use generic "Realtek"
460          instead of one particular brand "iMONO"
461
4622009-01-26  Ludovic Rousseau
463
464        * [r3293] src/openct/proto-t1.c: reformat to ease diff with
465          proto-t1.c from OpenCT
466        * [r3292] src/ifdhandler.c, src/openct/proto-t1.c,
467          src/openct/proto-t1.h: rename t1_negociate_ifsd() in
468          t1_negotiate_ifsd() to be in sync with OpenCT
469
4702009-01-21  Ludovic Rousseau
471
472        * [r3289] src/Makefile.am: move tokenparser.c from
473          MAINTAINERCLEANFILES to DISTCLEANFILES so that "make distcheck"
474          works without error
475
4762009-01-19  Ludovic Rousseau
477
478        * [r3284] src/ifdhandler.c: ICCD devices do not use
479          usb_interrupt_read() but sleep(). So there is no problem killing
480          the polling thread and sleep for 10 minutes instead of just 5
481          seconds
482        * [r3283] readers/GemPCKey.txt: regenerate
483        * [r3282] README, readers/Aktiv_Rutoken_Magistra.txt,
484          readers/supported_readers.txt: add Aktiv Rutoken Magistra in the
485          "Should work but untested by me" list
486
4872009-01-15  Ludovic Rousseau
488
489        * [r3281] configure.in: remove an extra AC_MSG_RESULT()
490
4912009-01-13  Ludovic Rousseau
492
493        * [r3280] src/ccid.c, src/ifdhandler.c: disable support of the
494          contcatless part of SDI010 and SCR331DI
495
4962009-01-07  Ludovic Rousseau
497
498        * [r3272] MacOSX/configure: do not overwrite LIBUSB_CFLAGS and
499          LIBUSB_LIBS if libusb-config is found
500
5012009-01-05  Ludovic Rousseau
502
503        * [r3271] src/ccid_serial.c: use int instead of long to store a
504          reader ID (32 bits)
505        * [r3270] src/ccid_serial.c, src/ccid_usb.h, src/commands.c,
506          src/commands.h, src/towitoko/atr.h, src/towitoko/pps.h: tag
507          output parameters with /*@out@*/
508        * [r3269] src/ccid.c, src/ccid_serial.c, src/ccid_usb.c: use
509          snprintf() instead of sprintf() to avoid potential buffer
510          overflow
511        * [r3268] src/ccid.c, src/ccid_serial.c, src/ccid_usb.c,
512          src/commands.c, src/debug.c, src/ifdhandler.c, src/parse.c:
513          explicitly cast result in void when not used (reported by the
514          splint tool)
515
5162008-12-17  Ludovic Rousseau
517
518        * [r3237] README, readers/supported_readers.txt: add Atmel
519          AT98SC032CT in the should work list
520
5212008-12-16  Ludovic Rousseau
522
523        * [r3236] readers/ATMEL_AT98SC032CT.txt: add ATMEL AT98SC032CT
524
5252008-12-13  Ludovic Rousseau
526
527        * [r3234] MacOSX/convert_reader_h.pl: update FSF address
528
5292008-12-12  Ludovic Rousseau
530
531        * [r3232] README, readers/supported_readers.txt: add iMONO 43 in 1
532          + Sim + Smart Card Reader in the "should work" list
533        * [r3231] readers/iMONO.txt: add iMONO USB2.0-CRW reader
534
5352008-12-09  Ludovic Rousseau
536
537        * [r3228] README, readers/supported_readers.txt: add Xiring Xi Sign
538          PKI in the supported list
539
5402008-11-27  Ludovic Rousseau
541
542        * [r3227] readers/Neowave_Weneo.txt: add Neowave Weneo device
543
5442008-11-26  Ludovic Rousseau
545
546        * [r3226] src/ifdhandler.c: IFDHSetProtocolParameters(): convert
547          protocol from ATR_PROTOCOL_TYPE_T? to SCARD_PROTOCOL_T? in case
548          of O2MICRO_OZ776_PATCH
549         
550          Thanks to Jim Dawson for the bug report
551
5522008-11-22  Ludovic Rousseau
553
554        * [r3222] readers/Omnikey_noname1.txt,
555          readers/supported_readers.txt: add a Noname reader (from Omnikey)
556
5572008-11-20  Ludovic Rousseau
558
559        * [r3220] README, readers/supported_readers.txt: add MSI StarReader
560          SMART in the should work but untested list
561
5622008-11-19  Ludovic Rousseau
563
564        * [r3219] readers/MSI_StarReader_SMART.txt: add MSI StarReader
565          SMART
566        * [r3218] readers/ACR122U_PICC.txt: new firmware
567
5682008-11-18  Ludovic Rousseau
569
570        * [r3214] bootstrap: add -I m4 to aclocal
571        * [r3208] README, configure.in: release 1.3.9
572        * [r3207] src/ccid.h: cast dw2i() to return an unsigned int
573        * [r3206] README, readers/supported_readers.txt: add VMware Virtual
574          USB CCID in should work but untested list
575
5762008-11-14  Ludovic Rousseau
577
578        * [r3205] configure.in: check for usb_interrupt_read instead of
579          usb_get_string_simple and request libusb 0.1.12 instead of 0.1.7
580        * [r3203] README, readers/supported_readers.txt: move Broadcom 5880
581          in the Unsupported list and comment the entry in
582          readers/supported_readers.txt
583         
584          No communication to the device ("Resource temporarily
585          unavailable" error)
586
5872008-11-11  Ludovic Rousseau
588
589        * [r3202] src/Makefile.am: add $(LIBUSB_LIBS) to parse_LDADD
590         
591          Thanks to Karl Dahlén for the patch Closes: [#311251] Patch for
592          solving cross-compile build error for the tool parse.
593        * [r3201] readers/SDI010.txt: new firmware
594
5952008-11-10  Ludovic Rousseau
596
597        * [r3199] src/defs.h, src/ifdhandler.c: defs.h: add readerName
598          field ifdhandler.c: also log reader name instead of just Lun
599        * [r3198] src/debug.h: #define DEBUG_PERIODIC3
600        * [r3196] readers/SCR331-DI.txt: regenerate
601
6022008-11-08  Ludovic Rousseau
603
604        * [r3195] readers/Xiring_XI-SIGN.txt,
605          readers/Xiring_XI-SIGN_6000.txt: add Xiring Xi Sign PKI et Xiring
606          Xi Sign 6000
607        * [r3194] examples/scardcontrol.c: typo in comment
608        * [r3193] examples/scardcontrol.c: get the GemPC firmware only if
609          GET_GEMPC_FIRMWARE is #define
610        * [r3192] README, readers/supported_readers.txt: move the "jNet
611          Technology jToken s1" in the Unsupported list and remove it
612          (commented entry) from the supported_readers.txt
613
6142008-11-07  Ludovic Rousseau
615
616        * [r3191] readers/VMware_Virtual_USB_CCID.txt: add VMware Virtual
617          USB CCID reader (available since VMWare 6.5)
618
6192008-10-31  Ludovic Rousseau
620
621        * [r3189] README, readers/supported_readers.txt: add jNet
622          Technology jToken s1 in should work but untested list
623        * [r3188] src/parse.c: small code reformat
624        * [r3187] readers/jNet_jToken_s1.txt: add jNet_jToken_s1.txt
625
6262008-10-28  Ludovic Rousseau
627
628        * [r3185] Makefile.am: add --reparagraph to svn2cl arguments
629        * [r3183] src/commands.c: SecurePINVerify(): in case of SPR532 and
630          Case 1 APDU we need to set bSeq again to avoid a "Duplicate frame
631          detected" error since the bSeq of CmdEscape is now greater than
632          bSeq set at the beginning of this function
633         
634          Thanks to Peter Koch for the bug report
635
6362008-10-27  Ludovic Rousseau
637
638        * [r3182] README, readers/supported_readers.txt: add Gemalto PDT in
639          should work list
640        * [r3181] readers/Gemalto_PDT.txt, readers/Makefile.am: add Gemalto
641          PDT
642
6432008-10-17  Ludovic Rousseau
644
645        * [r3177] Makefile.am: no need to explicitely provide the aux files
646
6472008-10-16  Ludovic Rousseau
648
649        * [r3176] README, readers/supported_readers.txt: add ACS ACR122U
650          PICC Interface in the Should work but untested by me list
651        * [r3175] readers/ACR122U_PICC.txt, readers/Makefile.am: add
652          ACR122U_PICC.txt
653        * [r3174] configure.in, reconf: build is now .
654        * [r3173] build: remove build/ It collides with the Debian build
655          rule when using dh(1)
656        * [r3172] build/ylwrap, ylwrap: move ylwrap out of build/
657
6582008-10-14  Ludovic Rousseau
659
660        * [r3170] src/towitoko/atr.c: ATR_InitFromArray(): use atr_buffer[]
661          directly (no need to copy it)
662        * [r3169] src/towitoko/defines.h: remove definition of
663          INVERT_BYTE()
664        * [r3168] src/towitoko/atr.c: ATR_InitFromArray(): do not reverse
665          the ATR for inverse convention cards since the ATR is already
666          corrected by the reader
667         
668          This never happend since the test was never true (TS == 0x03)
669        * [r3167] src/towitoko/atr.c, src/towitoko/atr.h: make atr_buffer[]
670          argument const to avoid accidental modifications
671        * [r3166] src/towitoko/atr.c: typo in comment
672
6732008-10-11  Ludovic Rousseau
674
675        * [r3163] README, readers/supported_readers.txt: add HP MFP Smart
676          Card Reader in the "Should work but untested by me" list
677        * [r3162] readers/HP_MFP_SmartCardReader.txt, readers/Makefile.am:
678          add HP_MFP_SmartCardReader.txt
679        * [r3161] readers/HPUSBSmartCardReader.txt: reindent
680
6812008-10-07  Ludovic Rousseau
682
683        * [r3154] README: reorder SchlumbergerSema reader
684        * [r3153] README: reorder SpringCard readers
685        * [r3152] README: reorder 2 readers
686        * [r3151] README, readers/supported_readers.txt: add "KONA USB
687          SmartCard" to the should work list
688
6892008-09-27  Ludovic Rousseau
690
691        * [r3148] README, readers/supported_readers.txt: add Broadcom Corp
692          5880 (found in Dell E6500 laptop) in the "Should work but
693          untested by me" list
694        * [r3147] readers/Broadcom_5880.txt, readers/Makefile.am: add
695          Broadcom_5880.txt
696
6972008-09-23  Ludovic Rousseau
698
699        * [r3144] src/ifdhandler.c: IFDHCreateChannelByName(): call
700          ClosePort() to release resources if the 3 IFDHICCPresence() fails
701
7022008-09-13  Ludovic Rousseau
703
704        * [r3129] readers/Makefile.am,
705          readers/Pro-Active_CSB6_Ultimate.txt: Pro-Active CSB6 Ultimate is
706          renamed SpringCard CSB6 Ultimate
707        * [r3128] README, readers/supported_readers.txt: add SpringCard
708          CrazyWriter, CSB6 Basic, CSB6 Secure, CSB6 Ultimate, EasyFinger
709          Standard, EasyFinger Ultimate and Prox'N'Roll in the "Should work
710          but untested by me" list
711        * [r3127] README, readers/supported_readers.txt: rename Pro-Active
712          in Springcard
713
7142008-09-12  Ludovic Rousseau
715
716        * [r3126] src/ifdhandler.c: IFDHPowerICC(): use a very long timeout
717          for PowerUp since the card can be very slow to send the full ATR
718          (up to 30 seconds at 4 MHz)
719
7202008-09-10  Ludovic Rousseau
721
722        * [r3122] readers/Makefile.am, readers/SpringCard_CSB6_Basic.txt,
723          readers/SpringCard_CSB6_Secure.txt,
724          readers/SpringCard_CSB6_Ultimate.txt,
725          readers/SpringCard_CrazyWriter.txt,
726          readers/SpringCard_EasyFinger_Standard.txt,
727          readers/SpringCard_EasyFinger_Ultimate.txt,
728          readers/SpringCard_Prox_N_Roll.txt: add SpringCard readers
729          Prox'N'Roll, CSB6 Basic, EasyFinger Ultimate, CSB6 Ultimate,
730          EasyFinger Standard, CrazyWriter, CSB6 Secure
731
7322008-09-09  Ludovic Rousseau
733
734        * [r3115] readers/Makefile.am, readers/mIDentityXL.txt: add
735          mIDentityXL.txt
736        * [r3114] readers/supported_readers.txt: differentiate between
737          KOBIL mIDentity M (pid 0x4000) and XL (pid 0x4001)
738
7392008-09-05  Ludovic Rousseau
740
741        * [r3106] src/ccid_usb.c: InterruptRead(): do not log the error if
742          errno == ENODEV since that happens in canse of timeout
743
7442008-09-01  Ludovic Rousseau
745
746        * [r3105] src/ccid.c: ccid_open_hack(): GEMPCPINPAD: add a sleep(1)
747          before sending the load strings command to let the reader
748          initialise itself
749
7502008-08-19  Ludovic Rousseau
751
752        * [r3097] src/ccid_usb.c: InterruptRead(): do not cache if the
753          reader has failed previously since this state was stored in a
754          static variable global to all the readers managed by the driver
755          and was not per reader.
756         
757          Without this mechanism we may have a bit more error messages
758          logged but the driver will work in a multi-reader configuration.
759
7602008-08-18  Ludovic Rousseau
761
762        * [r3096] src/ifdhandler.c: IFDHSleep(): just sleep for 5 seconds
763          since the polling thread is NOT killable so pcscd event thread
764          must loop to exit cleanly
765         
766          Once the driver (libusb in fact) will support
767          TAG_IFD_POLLING_THREAD_KILLABLE then we could use a much longer
768          delay and be killed before pcscd exits
769
7702008-08-14  Ludovic Rousseau
771
772        * [r3090] README, readers/supported_readers.txt: add Atmel AT91SO
773          in the "Should work but untested by me" list
774        * [r3089] readers/ATMEL_AT91SO.txt, readers/Makefile.am: add
775          ATMEL_AT91SO.txt
776
7772008-08-07  Ludovic Rousseau
778
779        * [r3085] README: add Cherry SmartTerminal ST-1200USB in the
780          "Should work but untested by me"
781        * [r3084] readers/CherrySmartTerminalXX1X.txt,
782          readers/supported_readers.txt: add Cherry SmartTerminal XX1X
783
7842008-07-30  Ludovic Rousseau
785
786        * [r3066] MacOSX/configure: link statically against libusb by
787          default
788        * [r3065] MacOSX/configure: do not build a static driver (building
789          fails when linking statically with libusb)
790        * [r3064] MacOSX/configure: do not overwrite PCSC_CFLAGS,
791          PCSC_LIBS, LIBUSB_CFLAGS and LIBUSB_LIBS if already defined by
792          the user
793         
794          Closes [#310945] MacOSX/configure - disable forced OpenSC libusb
795          usage, permit other builds
796        * [r3063] configure.in, src/Makefile.am: no need to use
797          CoreFoundation and IOKit frameworks since we use libusb that
798          already includes them
799
8002008-07-29  Ludovic Rousseau
801
802        * [r3061] README: add the Aladdin eToken PRO USB 72K Java in the
803          "Should work but untested by me" list
804        * [r3060] readers/supported_readers.txt: add the Aladdin eToken PRO
805          USB 72K Java in the "Should work but untested by me" list
806        * [r3059] readers/Aladdin_eToken_PRO_USB_72K_Java.txt,
807          readers/Makefile.am: add Aladdin_eToken_PRO_USB_72K_Java.txt
808
8092008-06-27  Ludovic Rousseau
810
811        * [r3033] README, configure.in: release 1.3.8
812
8132008-06-26  Ludovic Rousseau
814
815        * [r3027] src/ccid_usb.c: InterruptRead(): remove a \n in a log
816        * [r3026] src/ccid_usb.c: InterruptRead(): use a 2 seconds timeout
817          since it is not possible for pcscd to kill the polling thread.
818         
819          See thread on libusb-devel
820          http://sourceforge.net/mailarchive/forum.php?thread_name=baabf6440805290726s228bce20r5073d55d8d56241b%40mail.gmail.com&forum_name=libusb-devel
821        * [r3025] src/ifdhandler.c: IFDHPolling(): log only if
822          DEBUG_LEVEL_PERIODIC is set
823        * [r3024] src/Info.plist.src, src/Makefile.am, src/ifdhandler.c: do
824          not include the release number in the Info.plist to avoid a diff
825          of a configuration file when upgrading the package.
826         
827          Thanks to Benoit Gonzalvo for the bug report
828
8292008-06-25  Ludovic Rousseau
830
831        * [r3023] README, readers/supported_readers.txt: add "Oberthur
832          ID-One Cosmo Card" in the "Should work but untested by me" list
833        * [r3022] readers/Makefile.am, readers/Oberthur-CosmoCard.txt: add
834          Oberthur-CosmoCard.txt
835
8362008-06-18  Ludovic Rousseau
837
838        * [r3010] readers/KAAN_Advanced.txt: firmware 1.19
839        * [r3009] readers/KAAN_Base.txt: firmware 1.19
840
8412008-06-17  Ludovic Rousseau
842
843        * [r3008] readers/Kobil_EMV_CAP.txt: firmware 0.30
844        * [r3007] readers/KAAN_Advanced.txt: regenerate
845        * [r3006] src/defs.h: typo in comments
846        * [r3005] src/defs.h: Kobil readers does not support APDU chaining
847          for T=1 so you can't send an extended APDU. The readers supports
848          a command of up to 512 or 420 bytes.
849
8502008-06-16  Ludovic Rousseau
851
852        * [r3004] src/commands.c: CCID_Receive(): do not crash if the
853          reader firmware is bogus and does not support chaining for
854          extended APDU.
855         
856          This is the case for Kobil readers
857
8582008-06-14  Ludovic Rousseau
859
860        * [r3002] configure.in: ask to install libusb if usb.h is not found
861        * [r3001] INSTALL: update the "building serial reader driver"
862          sections
863        * [r3000] contrib/Makefile.am: build Kobil_mIDentity_switch only if
864          WITH_LIBUSB is true
865        * [r2999] src/Makefile.am: build parse and libccid.la only if
866          WITH_LIBUSB is true
867        * [r2998] configure.in: define the conditional WITH_LIBUSB if
868          libusb is used
869        * [r2997] reconf: remove useless copy if m4.m4
870        * [r2996] configure.in: do not AC_MSG_RESULT([no]) if PCSC is not
871          found since PKG_CHECK_MODULES() will already display the result
872        * [r2995] configure.in: set use_usb_interrupt=no by default
873
8742008-06-09  Ludovic Rousseau
875
876        * [r2988] Makefile.am: rename aclocal to m4
877        * [r2987] Makefile.am, aclocal, configure.in, m4, reconf: rename
878          aclocal to m4
879
8802008-06-08  Ludovic Rousseau
881
882        * [r2985] README, configure.in: release 1.3.7
883        * [r2984] README, readers/supported_readers.txt: add Pro-Active
884          CSB6 Ultimate in "should work" list
885        * [r2983] src/ccid_serial.c: ReadSerial(): return the length of
886          data read in *length
887         
888          Thanks to Alexander Georg for the bug report
889
8902008-06-07  Ludovic Rousseau
891
892        * [r2982] aclocal/acx_pthread.m4: add the file as a symlink to
893          ../../../PCSC/m4/acx_pthread.m4
894        * [r2981] aclocal/acx_pthread.m4: remove file
895        * [r2976] aclocal/acx_pthread.m4: update (correct a problem under
896          Solaris)
897         
898          Thanks to David L. Markowitz for the bug report
899
9002008-05-28  Ludovic Rousseau
901
902        * [r2974] MacOSX/configure, README,
903          contrib/RSA_SecurID/RSA_SecurID_getpasswd.c,
904          examples/scardcontrol.c, src/ccid.c, src/ccid.h,
905          src/ccid_ifdhandler.h, src/ccid_serial.c, src/ccid_serial.h,
906          src/ccid_usb.c, src/ccid_usb.h, src/commands.c, src/commands.h,
907          src/convert_version.pl, src/create_Info_plist.pl, src/debug.c,
908          src/debug.h, src/defs.h, src/ifdhandler.c, src/openct/checksum.h,
909          src/openct/proto-t1.h, src/parse.c, src/towitoko/COPYING,
910          src/towitoko/atr.c, src/towitoko/atr.h, src/towitoko/defines.h,
911          src/towitoko/pps.c, src/towitoko/pps.h, src/utils.c, src/utils.h:
912          update Free Software Foundation mail address
913        * [r2973] contrib/Kobil_mIDentity_switch/Kobil_mIDentity_switch.c:
914          change the licence from GPL-v2 to LGPL-v2.1 after request from
915          Norbert Federa
916        * [r2972] README, readers/supported_readers.txt: add id3
917          Semiconductors CL1356A HID in the should work list
918        * [r2971] readers/Makefile.am: add id3_CL1356D.txt
919        * [r2970] readers/Makefile.am, readers/id3_CL1356A_HID.txt: add
920          id3_CL1356A_HID.txt
921
9222008-05-27  Ludovic Rousseau
923
924        * [r2969] readers/CardMan5321.txt: regenerate
925
9262008-05-23  Ludovic Rousseau
927
928        * [r2968] README: update RSA SecureID SID800 web page
929
9302008-05-22  Ludovic Rousseau
931
932        * [r2966] src/parse.c: libusb-compat returns a permission denied
933          error on usb_open() when not run as root
934        * [r2965] configure.in: check if libusb-0.1 is emulated by
935          libusb-compat + libusb-1.0 to use or not the USB interrupt
936          feature
937         
938          libusb-0.1 may never solve the performance problem of
939          usb_interrupt_read()
940        * [r2964] readers/GemCoreSIMPro.txt: update
941
9422008-05-11  Ludovic Rousseau
943
944        * [r2941] Makefile.am: add AUTOMAKE_OPTIONS = dist-bzip2 so that
945          make dist alsa generates a .tar.bz2 archive
946
9472008-05-09  Ludovic Rousseau
948
949        * [r2937] readers/Makefile.am,
950          readers/Pro-Active_CSB6_Ultimate.txt: add
951          Pro-Active_CSB6_Ultimate.txt
952        * [r2936] src/parse.c: do not try to parse devices with
953          bInterfaceClass=0xFF by default (use command line argument -p for
954          proprietary class)
955        * [r2935] src/parse.c: remove duplicated code
956
9572008-05-08  Ludovic Rousseau
958
959        * [r2934] README: use a real space character
960        * [r2933] README: use a real space character
961        * [r2932] README: sync with the ccid.html web page
962        * [r2931] README: rename Gemplus in Gemalto
963        * [r2930] README: reorder Eutron CryptoIdentity
964        * [r2929] README: add ActivCard Activkey Sim
965
9662008-04-30  Ludovic Rousseau
967
968        * [r2924] README, configure.in: release 1.3.6
969        * [r2923] README: add URL for Validy USB Token
970        * [r2922] examples/scardcontrol.c: exit if no card is present
971        * [r2921] README, readers/supported_readers.txt: add Covadis Véga
972          in "Should work but untested by me" list
973        * [r2920] readers/Vega-Alpha.txt: regenerate
974        * [r2919] configure.in, src/convert_version.pl,
975          src/create_Info_plist.pl: add support for DragonFly BSD
976         
977          Thanks to Hasso Tepper for the patch (alioth #310748)
978
9792008-04-29  Ludovic Rousseau
980
981        * [r2916] src/openct/proto-t1.c: t1_transceive(): correctly reply
982          to S(ABORT request) with a S(ABORT response) instead of a
983          S(RESYNC request)
984         
985          Thanks to Alon Bar-Lev for the bug report
986
9872008-04-25  Ludovic Rousseau
988
989        * [r2912] Makefile.am: add "ACLOCAL_AMFLAGS = -I aclocal" so that
990          "autoreconf --install --verbose --force" works after a clean svn
991          checkout
992         
993          Thanks to Alon Bar-Lev for the patch
994        * [r2911] src/ifdhandler.c: init_driver(): use the environment
995          variable LIBCCID_ifdLogLevel to overwrite the value of
996          ifdLogLevel read from the Info.plist file
997         
998          Thanks to Alon Bar-Lev for the idea
999
10002008-04-09  Ludovic Rousseau
1001
1002        * [r2876] readers/KEBTechnology_KONA_USB_SmartCard.txt,
1003          readers/Makefile.am: add KEBTechnology_KONA_USB_SmartCard.txt
1004        * [r2875] README, readers/supported_readers.txt: add the Validy
1005          TokenA sl vt in the should work list
1006        * [r2874] readers/Makefile.am, readers/Validy_TokenA.txt: add
1007          Validy_TokenA.txt
1008        * [r2873] README, readers/supported_readers.txt: Add Vasco DP905 in
1009          the should work list
1010
10112008-04-08  Ludovic Rousseau
1012
1013        * [r2872] src/parse.c: display the enumerated USB devices and if
1014          they are or not a CCID/ICCD device also add some colors
1015        * [r2871] src/ccid.h, src/ccid_serial.c, src/ccid_usb.c,
1016          src/ifdhandler.c: Simulate card absence for the GemCore SIM Pro
1017        * [r2870] INSTALL: improve a bit the serial reader section
1018        * [r2869] README: add Voltage selection section
1019
10202008-03-31  Ludovic Rousseau
1021
1022        * [r2864] src/Makefile.am: use $(bundle) instead of the hardcoded
1023          ifd-ccid.bundle for CCID_BUNDLE
1024
10252008-03-29  Ludovic Rousseau
1026
1027        * [r2863] readers/Makefile.am, readers/Vasco_DP905.txt: add Vasci
1028          DP905
1029        * [r2862] src/parse.c: log error messages on stderr instead of
1030          stdout
1031        * [r2861] src/parse.c: use an unsigned char [] buffer only for
1032          multi-bytes conversions. usb_* functions want a char [] buffer.
1033        * [r2860] src/utils.c, src/utils.h: use int instead of DWORD for
1034          GetNewReaderIndex() and LunToReaderIndex() Lun parameter
1035         
1036          utils.c:48: warning: comparison between signed and unsigned
1037          utils.c:73: warning: comparison between signed and unsigned
1038        * [r2859] src/ccid_usb.c: ccid_check_firmware(): use unsigned int
1039          instead of int
1040         
1041          ccid_usb.c:720: warning: comparison between signed and unsigned
1042        * [r2858] src/ccid_serial.c: WriteSerial(): use unsigned int
1043          instead of int
1044         
1045          ccid_serial.c:199: warning: comparison between signed and
1046          unsigned
1047        * [r2857] src/ifdhandler.c: use defined(USE_USB_INTERRUPT) instead
1048          of just USE_USB_INTERRUPT
1049         
1050          ifdhandler.c:60:66: warning: "USE_USB_INTERRUPT" is not defined
1051        * [r2856] readers/supported_readers.txt: move the Blutronics and
1052          Covadis reader before the Bogus readers
1053
10542008-03-25  Ludovic Rousseau
1055
1056        * [r2855] readers/Makefile.am, readers/Precise_250_MC.txt: add
1057          Precise Biometrics 250 MC
1058
10592008-03-24  Ludovic Rousseau
1060
1061        * [r2854] src/ifdhandler.c: IFDHSetProtocolParameters(): store the
1062          protocol used in ccid_desc->cardProtocol even if the reader has
1063          CCID_CLASS_AUTO_PPS_PROP. Correct a potential bug in
1064          SecurePINVerify()/SecurePINModify().
1065         
1066          Thanks to Jim Dawson for the bug report
1067
10682008-03-14  Ludovic Rousseau
1069
1070        * [r2849] src/ifdhandler.c: IFDHSetProtocolParameters(): O2Micro
1071          OZ776 does not support a protocol change to T=1 for dual protocol
1072          cards
1073         
1074          https://www.opensc-project.org/opensc/ticket/172
1075          https://bugs.launchpad.net/ubuntu/+bug/163072
1076
10772008-03-07  Ludovic Rousseau
1078
1079        * [r2848] README: add Covadis Alya in the supported list
1080        * [r2847] readers/supported_readers.txt: add Covadis Alya
1081        * [r2846] readers/Alya.txt: update
1082
10832008-02-27  Ludovic Rousseau
1084
1085        * [r2844] readers/Alya.txt, readers/Makefile.am,
1086          readers/Vega-Alpha.txt: add Covadis.ch Alya and Vega-Alpha
1087          readers
1088
10892008-02-22  Ludovic Rousseau
1090
1091        * [r2842] README, configure.in: release 1.3.5
1092        * [r2841] contrib/Kobil_mIDentity_switch/Kobil_mIDentity_switch.c:
1093          add "Try to rerun this program as root." if no device is found
1094          and euid != 0
1095        * [r2840] README: add Advanced Card Systems ACR122 in "Should work"
1096          list
1097
10982008-02-21  Ludovic Rousseau
1099
1100        * [r2837] readers/ACR122U.txt, readers/Makefile.am: add ACR122U.txt
1101
11022008-02-20  Ludovic Rousseau
1103
1104        * [r2836] contrib/Kobil_mIDentity_switch/Kobil_mIDentity_switch.c:
1105          #include "config.h" to have HAVE_USB_DETACH_KERNEL_DRIVER_NP
1106
11072008-02-16  Ludovic Rousseau
1108
1109        * [r2832] README: update SCM Micro URLs
1110        * [r2831] README: rename the duplicate [31] reference as [31b]
1111
11122008-02-15  Ludovic Rousseau
1113
1114        * [r2827] configure.in: typo
1115        * [r2826] configure.in: use $PKG_CONFIG instead of pkg-config
1116        * [r2825] configure.in, src/ifdhandler.c: use usb_interrupt_read()
1117          only if libusb > 0.1.12 or --enable-usb-interrupt is used
1118
11192008-02-14  Ludovic Rousseau
1120
1121        * [r2824] src/Makefile.am: add MAINTAINERCLEANFILES = tokenparser.c
1122          so that make distcheck works
1123        * [r2822] README: add Cherry SmartBoard, G83-6610 in the "Should
1124          work but untested by me" list
1125        * [r2821] readers/supported_readers.txt: add Cherry SmartBoard XX1X
1126        * [r2820] readers/CherrySmartBoardXX1X.txt, readers/Makefile.am:
1127          add CherrySmartBoardXX1X.txt
1128        * [r2819] README: add Gemplus Gem e-Seal Pro in the "Should work
1129          but untested by me" list
1130        * [r2818] readers/supported_readers.txt: add Gemplus Gem e-Seal Pro
1131        * [r2815] c.sh: linked to ../../PCSC/c.sh
1132        * [r2813] readers/Gem_e-SealPro.txt, readers/Makefile.am: add
1133          Gem_e-SealPro.txt
1134
11352008-02-08  Ludovic Rousseau
1136
1137        * [r2810] src/ifdhandler.c: IFDHPolling() and IFDHPolling() are
1138          defined if TWIN_SERIAL is not defined and also if
1139          HAVE_DECL_TAG_IFD_POLLING_THREAD is set to 1
1140        * [r2809] README, configure.in: release 1.3.4
1141        * [r2808] src/ccid.c: ccid_open_hack(): do not call InterruptRead
1142          when compiling the serial driver since this function is not
1143          defined in that case
1144        * [r2807] README: Bluetronics -> Blutronics
1145
11462008-02-07  Ludovic Rousseau
1147
1148        * [r2806] src/ifdhandler.c: do not declare IFDHPolling() and
1149          IFDHSleep() when building for the serial reader
1150        * [r2805] src/ccid_serial.h: use #ifndef to avoid multiple include
1151          of the file
1152        * [r2804] src/ccid.c: #include "ccid_usb.h" to get the declaration
1153          of InterruptRead()
1154        * [r2803] src/pcscd_ccid.rules: remove
1155          WAIT_FOR_SYSFS="bInterfaceProtocol" to do not delay udev
1156         
1157          Thanks to Alon Bar-Lev for the patch
1158        * [r2802] src/ccid_usb.c: InterruptRead(): in case of timeout we
1159          can also get EAGAIN (Resource temporarily unavailable)
1160        * [r2801] src/ifdhandler.c: IFDHSleep(): add a log call
1161
11622008-02-06  Ludovic Rousseau
1163
1164        * [r2799] configure.in: release 1.3.3
1165        * [r2798] build/ylwrap: new version
1166        * [r2796] README: release 1.3.3
1167        * [r2795] src/pcscd_ccid.rules: remove the sleep since it causes
1168          more problems than solutions the sleep occured for any USB device
1169          connection.
1170        * [r2794] README, readers/supported_readers.txt: add Blutronics
1171          Bludrive II CCID in supported list
1172        * [r2793] src/ccid.h, src/ccid_usb.c: add support for Bludrive II
1173          CCID
1174        * [r2792] readers/BludriveII.txt, readers/Makefile.am: add Bludrive
1175          II CCID
1176        * [r2791] src/parse.c: bInterfaceProtocol set to 0 is CCID
1177
11782008-02-05  Ludovic Rousseau
1179
1180        * [r2790] README: add Lexar/Gemalto Smart Enterprise Guardian in
1181          the "Should work but untested by me" list
1182
11832008-02-04  Ludovic Rousseau
1184
1185        * [r2789] src/commands.c: CCID_Receive(): the receive buffer must
1186          be 4 bytes minimum for ICCD-B
1187         
1188          Thanks to Martin Rauch for the bug report
1189        * [r2788] src/ifdhandler.c: on an ICCD device the card is always
1190          inserted so no card movement will ever happen: just do nothing in
1191          the TAG_IFD_POLLING_THREAD thread
1192        * [r2786] configure.in: improve configuration display
1193
11942008-02-02  Ludovic Rousseau
1195
1196        * [r2783] src/ifdhandler.c: HAVE_DECL_TAG_IFD_POLLING_THREAD is
1197          always defined but is set to 0 or 1
1198
11992008-02-01  Ludovic Rousseau
1200
1201        * [r2782] readers/supported_readers.txt, src/ccid.c, src/ccid.h:
1202          add support of Smart Enterprise Guardian
1203        * [r2781] src/ifdhandler.c: add a prototype for IFDHPolling()
1204        * [r2777] src/ifdhandler.c: add support of TAG_IFD_POLLING_THREAD
1205          using IFDHPolling() to detect asynchronous card movements
1206        * [r2776] src/ccid_usb.c, src/ccid_usb.h: add InterruptRead() to
1207          read the interrupt pipe use by asynchronous card movements
1208
12092008-01-29  Ludovic Rousseau
1210
1211        * [r2774] src/ccid_usb.c: add comments
1212        * [r2773] configure.in: check for TAG_IFD_POLLING_THREAD in
1213          ifdhandler.h
1214        * [r2772] src/ccid_usb.c: add interrupt end point field in
1215          _usbDevice structure
1216        * [r2771] src/ccid.h, src/ccid_usb.c: add bNumEndpoints field in
1217          _ccid_descriptor structure
1218
12192008-01-24  Ludovic Rousseau
1220
1221        * [r2763] src/ccid_usb.c: ReadUSB(): return an error if we get more
1222          than 10 duplicate frames error in one read. Avoids an infinite
1223          loop with some buggy readers.
1224        * [r2762] src/commands.c: CCID_Receive(): return an error if we
1225          have read less (or more) data than the CCID frame says to contain
1226
12272008-01-22  Ludovic Rousseau
1228
1229        * [r2757] configure.in: version 1.3.2
1230        * [r2755] README: release 1.3.2
1231        * [r2754] src/ccid_usb.c, src/ifdhandler.c: add support for Mac OS
1232          X Leopard (10.5.1)
1233        * [r2753] Makefile.am: distribute build files for Mac OS X Leopard
1234        * [r2752] MacOSX, MacOSX/configure, MacOSX/convert_reader_h.pl,
1235          MacOSX/debuglog.h, MacOSX/ifdhandler.h, MacOSX/pcsclite.h,
1236          MacOSX/reader.h.in, MacOSX/winscard.h, MacOSX/wintypes.h: build
1237          infrastructure for Apple Mac OS X Leopard
1238        * [r2751] readers/GemCoreSIMPro.txt: do not duplicate the
1239          description for each slot
1240
12412008-01-18  Ludovic Rousseau
1242
1243        * [r2746] Makefile.am, bootstrap: add and use bootstrap instead of
1244          reconf. reconf does not work on Leopard
1245
12462008-01-14  Ludovic Rousseau
1247
1248        * [r2734] readers/supported_readers.txt: do not use a & (as in
1249          "G&D") since Leopard cannot parse it as valid XML
1250
12512008-01-08  Ludovic Rousseau
1252
1253        * [r2725] src/pcscd_ccid.rules: correct comment on sleep: 1s
1254          instead of 100ms
1255        * [r2724] src/commands.c: CCID_Receive(): do not declare a
1256          _ccid_descriptor variable for the twin serial (warning: unused
1257          variable 'ccid_descriptor')
1258
12592008-01-07  Ludovic Rousseau
1260
1261        * [r2723] src/commands.c: do not add support for ICCD A or B for
1262          the serial driver since ControlUSB() is not available with this
1263          reader
1264        * [r2722] Makefile.am: put src as the lastd directory to have the
1265          udev message on screen when installing
1266
12672007-12-31  Ludovic Rousseau
1268
1269        * [r2717] src/Makefile.am: force the libccidtwin.so symlink
1270          creation to update a previously existing file
1271        * [r2716] src/Makefile.am: do not include the VERSION number in the
1272          created reader.conf file
1273        * [r2715] src/Makefile.am: create a symlink from libccidtwin.so to
1274          libccidtwin.so.VERSION so that the /etc/reader.conf configuration
1275          file do not need to edited for each new driver version
1276         
1277          Closes Debian bug #457657
1278
12792007-12-11  Ludovic Rousseau
1280
1281        * [r2713] src/pcscd_ccid.rules: increase sleep delay from 0.1 to 1
1282          second
1283
12842007-12-10  Ludovic Rousseau
1285
1286        * [r2712] src/pcscd_ccid.rules: wait until the field
1287          bInterfaceProtocol is created. Should solve the hotplug problem
1288          on Ubuntu 7.10
1289         
1290          Thanks to OpenCT for the code
1291
12922007-11-23  Ludovic Rousseau
1293
1294        * [r2711] readers/GemaltoSmartEnterpriseGuardian.txt,
1295          readers/Makefile.am: add Gemalto Smart Enterprise Guardian Secure
1296          USB Device
1297
12982007-11-16  Ludovic Rousseau
1299
1300        * [r2699] README: update Reiner-SCT cyberJack pinpad(a) bug
1301          description
1302        * [r2698] README: Reiner-SCT cyberJack pinpad(a) bug is "just" a
1303          non-management of time requests
1304        * [r2697] src/ccid_usb.c: remove Reiner-SCT cyberJack pinpad(a)
1305          from bogus firmware list since yhe bug is just a missing
1306          management of time requests
1307        * [r2693] README: update Reiner-SCT bug: only case 1 APDU do not
1308          work
1309        * [r2692] README, configure.in: release 1.3.1
1310        * [r2691] src/ccid_usb.c: move the readers without a correct
1311          firmware together at the end of the list of bogus firmwares
1312        * [r2690] src/ccid_usb.c: add Reiner-SCT cyberJack pinpad(a) in the
1313          list of bogus firmwares
1314        * [r2689] README: use the complete name for "Reiner-SCT cyberJack
1315          pinpad(a)"
1316        * [r2688] readers/supported_readers.txt: add Reiner-SCT cyberJack
1317          pinpad(a) in the bogus section
1318        * [r2687] readers/supported_readers.txt: create a section "Bogus
1319          readers but partly supported" and move the C3PO LTC31 (old model)
1320          and ActivCard USB Reader 2.0 in this section
1321
13222007-11-15  Ludovic Rousseau
1323
1324        * [r2686] README: add Reiner SCT in the unsupported list. The
1325          reader does not work correctly.
1326        * [r2685] src/ccid.h, src/ccid_usb.c: add support for Reiner SCT
1327        * [r2684] readers/Makefile.am, readers/ReinerSCT.txt: add
1328          ReinerSCT.txt
1329        * [r2683] README, readers/supported_readers.txt: add Charismathics
1330          token in the "Should work but untested by me" list
1331        * [r2682] readers/Charismathics.txt, readers/Makefile.am: add
1332          Charismathics.txt
1333
13342007-11-01  Ludovic Rousseau
1335
1336        * [r2679] src/parse.c: do not claim/release the device on Mac OS X
1337        * [r2677] src/parse.c: if usb_claim_interface() fails we ask the
1338          user to stop pcscd and retry
1339        * [r2676] readers/Kobil_EMV_CAP.txt: new firmware
1340        * [r2675] src/parse.c: claim and release the interface
1341
13422007-10-24  Ludovic Rousseau
1343
1344        * [r2674] README, readers/supported_readers.txt: add Eutron
1345          Digipass 860 in the supported list
1346        * [r2673] readers/Eutron_Digipass_860.txt, readers/Makefile.am: add
1347          Eutron Digipass 860
1348        * [r2672] readers/Eutron_CryptoIdentity.txt: new firmware
1349        * [r2671] README, readers/supported_readers.txt: add "Eutron Smart
1350          Pocket" in the supported list
1351        * [r2670] readers/Eutron_Smart_Pocket.txt, readers/Makefile.am: add
1352          Eutron_Smart_Pocket.txt
1353        * [r2669] README, readers/supported_readers.txt: add "Kobil EMV CAP
1354          - SecOVID Reader III" in the "should work" list
1355        * [r2668] readers/Kobil_EMV_CAP.txt, readers/Makefile.am: add
1356          Kobil_EMV_CAP.txt
1357
13582007-10-23  Ludovic Rousseau
1359
1360        * [r2667] readers/SCR3320.txt, readers/SCR333.txt,
1361          readers/SCR3340.txt: firmware update
1362
13632007-10-21  Ludovic Rousseau
1364
1365        * [r2666] readers/SCR331.txt: regenerated on linux
1366        * [r2665] readers/SCR331.txt: update firmware
1367        * [r2664] src/ccid_usb.c: get_end_points(): check that dev->config
1368          is not NULL before dereferencing dev->config->bNumInterfaces
1369         
1370          Avoid a crash on Mac OS X
1371
13722007-10-16  Ludovic Rousseau
1373
1374        * [r2656] README, readers/supported_readers.txt: add "Lenovo
1375          Integrated Smart Card Reader" in "Should work but untested by me"
1376          list
1377        * [r2655] readers/Lenovo.txt, readers/Makefile.am: add Lenovo
1378          Integrated Smart Card Reader
1379
13802007-10-15  Ludovic Rousseau
1381
1382        * [r2653] examples/scardcontrol.c: use SCARD_LEAVE_CARD instead of
1383          SCARD_UNPOWER_CARD for SCardReconnect() since SCardReconnect()
1384          returns SCARD_W_REMOVED_CARD on Mac OS X 10.4
1385
13862007-10-14  Ludovic Rousseau
1387
1388        * [r2652] readers/SCR3310.txt, readers/SCR3311.txt,
1389          readers/SCR335.txt: new firmware version
1390
13912007-10-13  Ludovic Rousseau
1392
1393        * [r2650] src/parse.c: display "Can't find any CCID device. Maybe
1394          you must run parse as root?" if appropriate
1395
13962007-10-11  Ludovic Rousseau
1397
1398        * [r2649] readers/GemPCPinpad.txt, readers/GemPCTwin.txt: update
1399        * [r2648] src/ifdhandler.c: typo in log message
1400
14012007-09-29  Ludovic Rousseau
1402
1403        * [r2632] configure.in:
1404          contrib/Kobil_mIDentity_switch/Makefile.am:2: compiling
1405          `Kobil_mIDentity_switch.c' with per-target flags requires
1406          `AM_PROG_CC_C_O' in `configure.in'
1407
14082007-09-28  Ludovic Rousseau
1409
1410        * [r2631] contrib/Kobil_mIDentity_switch/Kobil_mIDentity_switch.c:
1411          call usb_detach_kernel_driver_np() only if libusb provides it
1412          (Linux only)
1413        * [r2630] configure.in: check for usb_detach_kernel_driver_np()
1414          since only libusb on Linux provides it
1415        * [r2629] examples/Makefile.am: use $(PTHREAD_CFLAGS) and
1416          $(PTHREAD_LIBS) since the thread library must be explicitly used
1417          on *BSD
1418        * [r2628] readers/supported_readers.txt: add Eutron CryptoIdentity
1419        * [r2627] readers/Eutron_CryptoIdentity.txt, readers/Makefile.am:
1420          add Eutron CryptoIdentity (generated under FreeBSD 6.2-STABLE)
1421
14222007-09-21  Ludovic Rousseau
1423
1424        * [r2626] readers/supported_readers.txt: add Giesecke & Devrient
1425          CardToken 350 and 550. They were listed in the README, the web
1426          site but not in this list.
1427
14282007-09-14  Ludovic Rousseau
1429
1430        * [r2624] configure.in: use PCSC_LIBS instead of LDLIBS in the
1431          error message if SCardEstablishContext() is not found
1432
14332007-08-21  Ludovic Rousseau
1434
1435        * [r2617] README, readers/supported_readers.txt: add SafeNet
1436          IKey4000 in the "Should work but untested by me" list
1437        * [r2616] readers/Makefile.am, readers/SafeNet_IKey4000.txt: add
1438          SafeNet IKey4000
1439
14402007-08-03  Ludovic Rousseau
1441
1442        * [r2610] README: add Giesecke & Devrient StarSign Card Token 350
1443          and 550 in the "Should work but untested by me" list
1444        * [r2609] src/Makefile.am: DISTCLEANFILES = Info.plist so that make
1445          distcheck works
1446        * [r2608] readers/GnD_StarSignCardToken350.txt,
1447          readers/GnD_StarSignCardToken550.txt, readers/Makefile.am: add
1448          Giesecke & Devrient StarSign Card Token 350 and 550
1449        * [r2607] README: add OmniKey CardMan 5321 in the "Should work but
1450          untested by me" list
1451        * [r2606] readers/CardMan5321.txt, readers/Makefile.am,
1452          readers/supported_readers.txt: add CardMan5321
1453
14542007-08-02  Ludovic Rousseau
1455
1456        * [r2605] .: update svn:ignore
1457        * [r2604] README, readers/supported_readers.txt: add O2 Micro Oz776
1458          (ProductID 0x7772) to the "Should work but untested by me" list
1459        * [r2603] readers/Makefile.am, readers/Oz776_7772.txt: add new
1460          O2Micro Oz776
1461        * [r2602] src/ccid.h, src/ccid_usb.c, src/commands.c: add support
1462          of the O2Micro oz776 (ProductID 0x7772)
1463
14642007-07-05  Ludovic Rousseau
1465
1466        * [r2599] src/pcscd_ccid.rules: replace BUS by SUBSYSTEMS
1467        * [r2597] examples/scardcontrol.c: add support for Mac OS X
1468
14692007-07-03  Ludovic Rousseau
1470
1471        * [r2596] src/ccid.c: ccid_error(): increase the size of var_text[]
1472          to avoid a buffer overflow
1473         
1474          Thanks to Anders Storsveen for the bug report
1475
14762007-07-02  Ludovic Rousseau
1477
1478        * [r2593] examples/scardcontrol.c: update version and copyright
1479          date
1480        * [r2592] examples/scardcontrol.c: remove compilation warnings
1481        * [r2591] examples/scardcontrol.c: do not free() unallocated memory
1482        * [r2590] examples/scardcontrol.c: use PCSC_ERROR_EXIT() for
1483          SCardListReaders() call
1484        * [r2585] examples/scardcontrol.c: display an explicit message when
1485          no card is present
1486        * [r2584] reconf: update versions of autotools used
1487        * [r2583] build/ylwrap: regenerated using automake-1.10
1488
14892007-06-30  Ludovic Rousseau
1490
1491        * [r2582] readers/ActivkeySim.txt: update
1492
14932007-06-28  Ludovic Rousseau
1494
1495        * [r2581] src/pcscd_ccid.rules: use DRIVERS== instead of DRIVER==
1496
14972007-06-25  Ludovic Rousseau
1498
1499        * [r2579] README, readers/JCOP41V221.txt,
1500          readers/supported_readers.txt: add "Philips Semiconductors
1501          JCOP41V221" ICCD card in "Should work but untested by me" list
1502
15032007-06-18  Ludovic Rousseau
1504
1505        * [r2566] readers/Sitecom_MD-010.txt: remove trash at end of file
1506
15072007-06-13  Ludovic Rousseau
1508
1509        * [r2557] src/commands.c: SecurePINVerify(): avoid a possible
1510          buffer overflow detected by sparse
1511
15122007-05-19  Ludovic Rousseau
1513
1514        * [r2533] src/Makefile.am: generate a local Info.plist before
1515          trying to install it
1516        * [r2532] src/Info.plist, src/Info.plist.src: rename Info.plist as
1517          Info.plist.src since it is just a template
1518
15192007-05-10  Ludovic Rousseau
1520
1521        * [r2526] README: typos
1522        * [r2524] contrib/RSA_SecurID/RSA_SecurID_getpasswd.1: manpage
1523          section is 1 instead of 8
1524        * [r2522] README, configure.in: release 1.3.0
1525        * [r2521] README, readers/Makefile.am, readers/e-gate.txt,
1526          readers/supported_readers.txt: add SchlumbergerSema Cyberflex
1527          Access e-gate in the should work list
1528        * [r2520]
1529          contrib/Kobil_mIDentity_switch/README_Kobil_mIDentity_switch.txt:
1530          rename midswitch to Kobil_mIDentity_switch
1531        * [r2519] examples, src: update svn:ignore properties
1532        * [r2518] contrib/Kobil_mIDentity_switch, contrib/RSA_SecurID:
1533          update snn:ignore properties
1534        * [r2517] contrib, contrib/Kobil_mIDentity_switch,
1535          contrib/RSA_SecurID: set svn:ignore properties
1536        * [r2516] README, readers/Makefile.am, readers/Sitecom_MD-010.txt,
1537          readers/supported_readers.txt: add Sitecom USB simcard reader
1538          MD-010 in the "Should work but untested by me" list
1539        * [r2515] readers/supported_readers.txt: correct KOBIL mIDentity
1540          names
1541
15422007-05-09  Ludovic Rousseau
1543
1544        * [r2514] src/pcscd_ccid.rules: exit if ACTION!="add"
1545
15462007-05-07  Ludovic Rousseau
1547
1548        * [r2511] src/commands.c: #include "ccid_usb.h" to avoid
1549          commands.c:103: warning: implicit declaration of function
1550          'ControlUSB'
1551
15522007-05-03  Ludovic Rousseau
1553
1554        * [r2510] src/ccid_usb.c: get_end_points(): avoid a double free on
1555          close for the O2MICRO_OZ776 special case.
1556         
1557          " In ccid_usb.c you move the extra descriptor from the endpoint 2
1558          descriptor to the interface descriptor. The problem is, when
1559          libusb try to free the descriptors associated to this device on
1560          shutdown or if the device disappears, it tries to free the same
1561          buffer twice. For me it means the pcscd is killed with a glibc
1562          detected "double free". "
1563         
1564          Thanks to Michael Wegner for the patch
1565        * [r2509] README, readers/supported_readers.txt: add OmniKey
1566          CardMan 4321 in "Should work but untested by me" list
1567        * [r2508] readers/CardMan4321.txt, readers/Makefile.am: add
1568          CardMan4321.txt
1569
15702007-03-28  Ludovic Rousseau
1571
1572        * [r2498] src/commands.c: define
1573          BOGUS_SCM_FIRMWARE_FOR_dwMaxCCIDMessageLength and code to avoid
1574          the bogus limitation of dwMaxCCIDMessageLength on SCM firmwares
1575
15762007-03-21  Ludovic Rousseau
1577
1578        * [r2489] src/ccid.c: ccid_open_hack(): add Dutch(nl) and
1579          Tukish(tr) messages for the GemPC pinpad
1580
15812007-03-20  Ludovic Rousseau
1582
1583        * [r2488] readers/SCR331-DI.txt, readers/SCR331.txt,
1584          readers/SCR3310.txt, readers/SCR3311.txt: firmware updates
1585
15862007-03-19  Ludovic Rousseau
1587
1588        * [r2487] SCARDGETATTRIB.txt: improve documentation of
1589          SCARD_ATTR_MAXINPUT
1590
15912007-03-15  Ludovic Rousseau
1592
1593        * [r2485] src/parse.c: if usb_control_msg() fails because the
1594          device is busy this is because pcscd has claimed the device
1595          already
1596        * [r2484] README: add Fujitsu Siemens Computers SmartCard Keyboard
1597          USB 2A and SmartCard USB 2A to the "Should work but untested by
1598          me" list
1599        * [r2483] readers/FujitsuSiemens_SmartCard_Keyboard_USB_2A.txt,
1600          readers/FujitsuSiemens_SmartCard_USB_2A.txt, readers/Makefile.am,
1601          readers/supported_readers.txt: add Fujitsu Siemens Computers
1602          SmartCard USB 2A and SmartCard Keyboard USB 2A readers
1603
16042007-03-13  Ludovic Rousseau
1605
1606        * [r2480] src/parse.c: use an unsigned char buffer[] to have
1607          unsigned multi-bytes convertions
1608
16092007-03-12  Ludovic Rousseau
1610
1611        * [r2473] src/ifdhandler.c: move #include of config.h before
1612          pcsclite.h and reader.h
1613
16142007-03-08  Ludovic Rousseau
1615
1616        * [r2472] src/commands.c, src/ifdhandler.c: In case of error set
1617          the received length to 0 in IFDHTransmitToICC() and IFDHControl()
1618          instead of in all the lower level commands
1619        * [r2471] src/pcscd_ccid.rules: add SchlumbergerSema Cyberflex
1620          Access e-gate ICCD
1621        * [r2470] src/ccid.c, src/ccid.h, src/ccid_usb.c, src/commands.c:
1622          add support of ICCD version A and B
1623        * [r2469] src/ccid_usb.c: ControlUSB(): add some debug: request
1624          value and data send/received
1625        * [r2468] src/parse.c: bit 0x000800 of dwFeatures is undocumented
1626          but used by ICCD?
1627
16282007-02-28  Ludovic Rousseau
1629
1630        * [r2454] readers/supported_readers.txt: differentiate the two
1631          KOBIL mIDentity devices (Basic and Classic)
1632        * [r2453] contrib/Kobil_mIDentity_switch/Kobil_mIDentity_switch.c:
1633          usb_detach_kernel_driver_np() is not available on libusb for Mac
1634          OS X
1635        * [r2452] configure.in: require autoconf 2.61
1636        * [r2451] configure.in: check for strlcpy
1637
16382007-02-27  Ludovic Rousseau
1639
1640        * [r2450] contrib/RSA_SecurID/RSA_SecurID_getpasswd.c: small
1641          reformat
1642
16432007-02-26  Ludovic Rousseau
1644
1645        * [r2448] contrib/Kobil_mIDentity_switch/Kobil_mIDentity_switch.c:
1646          replace a C++ comment by a C comment
1647
16482007-02-25  Ludovic Rousseau
1649
1650        * [r2444] contrib/Kobil_mIDentity_switch/Makefile.am,
1651          contrib/RSA_SecurID/Makefile.am: EXTRA_DIST = $(doc_DATA)
1652          $(man_MANS)
1653        * [r2443] contrib/RSA_SecurID/Makefile.in: remove from SVN
1654        * [r2442] src/pcscd_ccid.rules: add rule to call
1655          /usr/sbin/Kobil_mIDentity_switch for mIDentity devices
1656        * [r2441] README: move the Kobil mIDentity from the "Supported" to
1657          "Unsupported or partly supported" because of a time request
1658          problem
1659        * [r2440] readers/supported_readers.txt: add (new) KOBIL mIDentity
1660        * [r2439] contrib/Kobil_mIDentity_switch/Makefile.am: use
1661          $(LIBUSB_LIBS) instead of -lusb
1662        * [r2438] configure.in, contrib/Makefile.am, contrib/RSA_SecurID,
1663          contrib/RSA_SecurID/Makefile.am, contrib/RSA_SecurID/Makefile.in,
1664          contrib/RSA_SecurID/RSA_SecurID_getpasswd.1,
1665          contrib/RSA_SecurID/RSA_SecurID_getpasswd.c: add
1666          contrib/RSA_SecurID
1667        * [r2437] contrib/GPL-2: add GNU GPL v2 licence
1668        * [r2436] contrib/Kobil_mIDentity_switch/Kobil_mIDentity_switch.8,
1669          contrib/Kobil_mIDentity_switch/Makefile.am: add manpage
1670          Kobil_mIDentity_switch.8
1671        * [r2435] contrib/Kobil_mIDentity_switch/Makefile.am: doc_DATA =
1672          README_Kobil_mIDentity_switch.txt
1673        * [r2434] contrib/Kobil_mIDentity_switch/README.txt,
1674          contrib/Kobil_mIDentity_switch/README_Kobil_mIDentity_switch.txt:
1675          rename README.txt in README_Kobil_mIDentity_switch.txt
1676        * [r2433] contrib/Kobil_mIDentity_switch/Kobil_mIDentity_switch.c,
1677          contrib/Kobil_mIDentity_switch/Makefile.am,
1678          contrib/Kobil_mIDentity_switch/midswitch.c: rename midswitch{.c,}
1679          in Kobil_mIDentity_switch{.c,}
1680        * [r2432] configure.in, contrib/Kobil_mIDentity_switch,
1681          contrib/Makefile.am, contrib/midswitch: rename contrib/midswitch/
1682          in contrib/Kobil_mIDentity_switch/
1683
16842007-02-24  Ludovic Rousseau
1685
1686        * [r2431] Makefile.am, configure.in, contrib, contrib/Makefile.am,
1687          contrib/midswitch, contrib/midswitch/Makefile.am,
1688          contrib/midswitch/README.txt, contrib/midswitch/midswitch.c: add
1689          contrib/midswitch to activate the CCID reader of the Kobil
1690          mIDentity
1691
16922007-02-23  Ludovic Rousseau
1693
1694        * [r2430] src/commands.c: CmdPowerOn() & SecurePINVerify(): rename
1695          6 local variables to avoid: warning: declaration of 'cmd' shadows
1696          a previous local
1697        * [r2429] src/parse.c: display the error message if
1698          usb_control_msg() fails
1699        * [r2428] src/parse.c: do not declare another buffer variable to
1700          avoid: declaration of ‘buffer’ shadows a previous local
1701        * [r2427] src/ccid_usb.h: allow multiple inclusion using #ifndef
1702          __CCID_USB_H__ ...
1703        * [r2426] src/ccid_usb.c: get_end_points(): change parameter name
1704          from usb_device to usbdevice to avoid: warning: declaration of
1705          'usb_device' shadows a global declaration /usr/include/usb.h:329:
1706          warning: shadowed declaration is here
1707        * [r2425] src/ccid_usb.c: ControlUSB(): explicit cast to avoid
1708          warning: pointer targets in passing argument 6 of
1709          'usb_control_msg' differ in signedness
1710        * [r2424] src/ccid_usb.c: get_data_rates(): use ControlUSB()
1711          instead of usb_control_msg()
1712        * [r2423] src/ccid_usb.c, src/ccid_usb.h: add ControlUSB()
1713          declaration and implementation
1714        * [r2422] examples/scardcontrol.c: remove a redundant declaration
1715          of i scardcontrol.c:486: attention : declaration of ‘i’ shadows a
1716          previous local
1717
17182007-02-22  Ludovic Rousseau
1719
1720        * [r2421] src/commands.c: CmdXfrBlockTPDU_T0(): set *rx_length to 0
1721          in case of command too long
1722        * [r2420] src/commands.c: CmdXfrBlockTPDU_T0(): set *rx_length to 0
1723          if CCID_Transmit() fails
1724
17252007-02-20  Ludovic Rousseau
1726
1727        * [r2407] examples/scardcontrol.c: Secure modify PIN: add a
1728          bConfirmPIN and bNumberMessage table
1729        * [r2406] src/commands.c: SecurePINModify(): set bNumberMessages in
1730          all cases
1731        * [r2405] examples/scardcontrol.c: set max pin size to 8 instead of
1732          4
1733        * [r2404] src/commands.c: SecurePINModify(): the GemPC Twin does
1734          support different values of bNumberMessages but all the
1735          bMsgIndex? must be present in the CCID command
1736
17372007-02-17  Ludovic Rousseau
1738
1739        * [r2399] src/ifdhandler.c: IFDHControl(): log the Rx and Rx
1740          buffers
1741        * [r2398] src/debug.h: add DEBUG_INFO_XXD()
1742
17432007-02-10  Ludovic Rousseau
1744
1745        * [r2393] src/ccid_usb.c: get_end_points(): correct bug in revision
1746          2392
1747        * [r2392] src/ccid_usb.c: get_end_points(): use
1748          usb_interface->altsetting->bNumEndpoints instead of the hardcoded
1749          value 3
1750
17512007-02-08  Ludovic Rousseau
1752
1753        * [r2391] src/pcscd_ccid.rules: use ATTRS{} instead of SYSFS{} for
1754          use with recent udev versions
1755        * [r2390] src/parse.c: parse bInterfaceProtocol field
1756        * [r2389] src/parse.c: parse bNumEndpoints field
1757
17582007-02-05  Ludovic Rousseau
1759
1760        * [r2387] Makefile.am: ChangeLog: use svn2cl instead of svn2cl.sh
1761
17622007-01-30  Ludovic Rousseau
1763
1764        * [r2366] src/ccid.c: ccid_open_hack(): add the l10n of the 10th
1765          string "PIN blocked"
1766        * [r2365] src/ccid.c: ccid_open_hack(): add portugese strings for
1767          the GemPC Pinpad.
1768         
1769          Thanks to Stef Hoeben
1770
17712007-01-27  Ludovic Rousseau
1772
1773        * [r2363] README, configure.in: release 1.2.1
1774        * [r2362] README: move the O2Micro Oz7762 from the unsupported to
1775          the supported list since patches to support it are applied by
1776          default (O2MICRO_OZ776_PATCH)
1777        * [r2361] src/pcscd_ccid.rules: add non CCID generic
1778          (InterfaceClass: 0xFF) readers
1779        * [r2360] readers/Makefile.am, readers/SK-3106.txt: SK-3106.txt is
1780          a duplicate of DellSK-3106.txt
1781        * [r2359] src/ccid_usb.c: Bogus_firmwares[]: the driver now
1782          contains patches to circumvent the Oz776 reader. It is then
1783          declared bogus only if O2MICRO_OZ776_PATCH is not defined
1784        * [r2358] src/commands.c: T0ProcACK(): use a hack to circumvent the
1785          Oz776 firmware bug with commands of size modulo 64
1786
17872007-01-26  Ludovic Rousseau
1788
1789        * [r2357] src/commands.c: CmdGetSlotStatus(): the O2MICRO OZ 776
1790          reader sends "card absent or mute" errors when no card is
1791          inserted. We do not log this error since it is normal execution
1792          and just fill the syslog files
1793        * [r2356] src/ccid.h, src/ccid_usb.c: move #define
1794          O2MICRO_OZ776_PATCH from ccid_usb.c to ccid.h so we can use it in
1795          other .c files
1796
17972007-01-24  Ludovic Rousseau
1798
1799        * [r2355] INSTALL: document how to use --enable-udev on FreeBSD.
1800         
1801          Thanks to Tilman Linneweh
1802
18032007-01-20  Ludovic Rousseau
1804
1805        * [r2351] README: version 1.2.0 was released in 2007 not 2006 :-)
1806
18072007-01-19  Ludovic Rousseau
1808
1809        * [r2345] README, configure.in: release 1.2.0
1810        * [r2342] config.h.in: removed since generated from configure.in by
1811          autoheader
1812
18132007-01-18  Ludovic Rousseau
1814
1815        * [r2338] INSTALL: document udev use
1816        * [r2337] INSTALL: pcsc-lite versions before 1.3.3 are not
1817          supported so remove notes about CHANNELID
1818        * [r2336] INSTALL: add #CCID_compliant URL refenrece when a reader
1819          is not yet supported
1820
18212007-01-10  Ludovic Rousseau
1822
1823        * [r2329] src/Makefile.am: do not install the pcscd_ccid.rules file
1824          but display a message telling so. The exact location of this file
1825          is Linux distribution dependent.
1826         
1827          Thanks to Alon Bar-Lev for the idea.
1828        * [r2328] src/parse.c: typo: "busses" -> "buses"
1829         
1830          Thanks to Martin Paljak for the patch
1831        * [r2326] src/parse.c: add a missing \n in printf
1832
18332007-01-09  Ludovic Rousseau
1834
1835        * [r2322] src/Makefile.am: use 60-pcscd_ccid.rules instead of
1836          50-pcscd_ccid.rules so udev default > rules will run before are
1837          run before this one.
1838         
1839          Thanks to Alon Bar-Lev.
1840
18412007-01-08  Ludovic Rousseau
1842
1843        * [r2318] src/Makefile.am: add pcscd_ccid.rules in EXTRA_DIST
1844         
1845          Thanks to Kjell M. Myksvoll for the bug report
1846
18472007-01-06  Ludovic Rousseau
1848
1849        * [r2317] Makefile.am: add SCARDGETATTRIB.txt to EXTRA_DIST
1850        * [r2316] examples/scardcontrol.c: use LPSTR instead or the
1851          deprecated LPTSTR
1852        * [r2315] src/Makefile.am: if --enable-udev is used we define
1853          IFD_GENERATE_HOTPLUG in ifdCapabilities and install the
1854          pcscd_ccid.rules for udev
1855        * [r2314] src/create_Info_plist.pl: replace MAGIC_IFDCAPABILITIES
1856          by the 3rd command line argument
1857        * [r2313] src/Info.plist: use MAGIC_IFDCAPABILITIES
1858        * [r2312] configure.in: add --enable-udev
1859        * [r2311] src/pcscd_ccid.rules: udev file for hotplug capability
1860
18612007-01-04  Ludovic Rousseau
1862
1863        * [r2298] README: add "HP USB Smartcard Reader" in the "Should work
1864          but untested by me" list
1865        * [r2297] readers/HPUSBSmartCardReader.txt,
1866          readers/supported_readers.txt: add HP USB Smartcard Reader
1867
18682007-01-02  Ludovic Rousseau
1869
1870        * [r2296] src/ccid_usb.c: CloseUSB(): free .dirname and .filename
1871          only for the last slot
1872        * [r2295] src/ccid_usb.c: OpenUSBByName(): move the "Checking
1873          device: " log message out of the usbDevice[] loop since we
1874          display info of the new device and not of a device from
1875          usbDevice[]
1876        * [r2294] src/ccid_usb.c: struct _usbDevice: replace struct
1877          usb_device *dev; by char *dirname; and char *filename; since the
1878          libusb structure can be modified at any time by libusb (this
1879          structure is reused for another USB device when the USB device is
1880          removed)
1881        * [r2293] src/ccid_usb.c: get_data_rates() now has a struct
1882          usb_device *dev parameter to avoid storing it in struct
1883          _usbDevice
1884        * [r2292] src/ccid_usb.c, src/ccid_usb.h: remove unused get_desc()
1885          function
1886        * [r2291] src/ccid_usb.c: revert revisions 2289 and 2290
1887         
1888          It is not the correct solution to the problem
1889        * [r2290] src/ccid_usb.c: WriteUSB()/ReadUSB(): check that the
1890          device entry is still valid before using it
1891        * [r2289] src/ccid_usb.c: WriteUSB()/ReadUSB(): call CloseUSB() as
1892          soon as the device disapears (ENODEV) since the libusb structures
1893          pointed by usbDevice[] may be reused by another USB device
1894
18952006-12-30  Ludovic Rousseau
1896
1897        * [r2288] configure.in: do not use two AM_CONDITIONAL() with the
1898          same variable
1899         
1900          Thanks to Alon Bar-Lev for the patch
1901        * [r2287] configure.in: --disable-twinserial now works as expected.
1902         
1903          Thanks to Alon Bar-Lev for the patch
1904
19052006-12-25  Ludovic Rousseau
1906
1907        * [r2285] src/commands.c: many commands: make sure we received at
1908          least STATUS_OFFSET+1 bytes before reading the value of
1909          buffer[STATUS_OFFSET]
1910         
1911          usb_bulk_read() may return 0 bytes instead of an error when the
1912          reader is just disconnected
1913        * [r2280] src/utils.c: GetNewReaderIndex(): check that Lun is NOT
1914          already used
1915         
1916          Thanks to Martin Preuss for the idea
1917
19182006-12-20  Ludovic Rousseau
1919
1920        * [r2278] README: add the OmniKey CardMan 1021 to the "Should work
1921          but untested by me" list
1922        * [r2277] readers/CardMan1021.txt, readers/Makefile.am,
1923          readers/supported_readers.txt: add OmniKey CardMan 1021
1924        * [r2276] readers/CardMan3021.txt: a line was wrapped
1925
19262006-12-12  Ludovic Rousseau
1927
1928        * [r2275] SCARDGETATTRIB.txt: new file
1929
19302006-12-11  Ludovic Rousseau
1931
1932        * [r2271] configure.in: add PKG_PROG_PKG_CONFIG
1933
19342006-12-10  Ludovic Rousseau
1935
1936        * [r2270] INSTALL: add --enable-twinserial to build the serial
1937          reader driver
1938
19392006-12-05  Ludovic Rousseau
1940
1941        * [r2269] readers/KAAN_Advanced.txt: upgrade firmware to 1.02
1942        * [r2268] readers/KAAN_Base.txt: upgrade firmware to 1.02
1943
19442006-12-02  Ludovic Rousseau
1945
1946        * [r2260] src/openct/checksum.c: #include "checksum.h"
1947        * [r2258] src/ifdhandler.c: warning: initialization discards
1948          qualifiers from pointer target type
1949        * [r2257] src/commands.c: warning: initialization discards
1950          qualifiers from pointer target type
1951        * [r2256] src/parse.c: remove unused argc and argv arguments
1952        * [r2255] src/ccid.c, src/ccid.h: ccid_error(): "char *file"
1953          argument -> "const char *file"
1954        * [r2254] src/ccid.c: warning: assignment discards qualifiers from
1955          pointer target type
1956        * [r2253] src/ccid_ifdhandler.h: warning: redundant redeclaration
1957          of 'LogLevel'
1958
19592006-11-30  Ludovic Rousseau
1960
1961        * [r2252] src/Makefile.am: use $(srcdir)/convert_version.pl
1962        * [r2251] readers/Makefile.am: change C3PO_LTC32_USBv_old.txt in
1963          C3PO_LTC32_USBv2_old.txt
1964
19652006-11-29  Ludovic Rousseau
1966
1967        * [r2240] configure.in: test if IFD_NO_SUCH_DEVICE is defined in
1968          ifdhandler.h
1969        * [r2239] configure.in: use AC_TRY_LINK_FUNC() instead of
1970          AC_CHECK_LIB() to not hard code the use of -lpcsclite
1971        * [r2238] src/Makefile.am: distribute convert_version.pl
1972
19732006-11-23  Ludovic Rousseau
1974
1975        * [r2237] readers/C3PO_KBR36.txt, readers/C3PO_LTC32_USBv2.txt,
1976          readers/C3PO_LTC32_USBv2_old.txt, readers/C3PO_TLTC2USB.txt,
1977          readers/Makefile.am: add C3PO_* files
1978
19792006-11-22  Ludovic Rousseau
1980
1981        * [r2234] src/parse.c: exit if the command is not run as root and
1982          getting iManufacturer fails
1983
19842006-11-18  Ludovic Rousseau
1985
1986        * [r2224] README, readers/supported_readers.txt: add C3PO TLTC2USB,
1987          LTC32 USBv2 with keyboard support and KBR36 in the "Should work
1988          but untested by me" list
1989
19902006-11-17  Ludovic Rousseau
1991
1992        * [r2223] src/ifdhandler.c: set IFSC in the SetParameters argument
1993          for T=1 if TAi (i>2) is present: IFSC
1994         
1995          Thanks to Stefan Neis for the bug report and patch
1996        * [r2222] README, readers/Teo.txt, readers/supported_readers.txt:
1997          add Teo by Xiring in the supported list
1998        * [r2221] readers/LTC32.txt, readers/supported_readers.txt: add
1999          C3PO LTC32
2000
20012006-11-15  Ludovic Rousseau
2002
2003        * [r2210] configure.in: we need pcsc-lite 1.3.3 since we now use
2004          IFD_NO_SUCH_DEVICE
2005        * [r2208] src/ifdhandler.c: IFDHICCPresence(): return the error
2006          code returned by CmdGetSlotStatus() instead of using
2007          IFD_COMMUNICATION_ERROR
2008        * [r2207] src/commands.c: CmdGetSlotStatus(), CCID_Transmit() and
2009          CCID_Receive(): return IFD_NO_SUCH_DEVICE if the lower
2010          communication layer returns STATUS_NO_SUCH_DEVICE
2011        * [r2206] src/ccid_usb.c: WriteUSB() & ReadUSB(): return
2012          STATUS_NO_SUCH_DEVICE if read() or write() fails with ENODEV
2013        * [r2205] src/defs.h: add STATUS_NO_SUCH_DEVICE
2014        * [r2197] src/ifdhandler.c: IFDHGetCapabilities(): add support of
2015          SCARD_ATTR_MAXINPUT to get the maximal APDU size
2016          (dwMaxCCIDMessageLength -10)
2017
20182006-11-06  Ludovic Rousseau
2019
2020        * [r2195] src/commands.c: SecurePINVerify(): the GemPC Pinpad does
2021          not support a bEntryValidationCondition different of 0x02
2022          (validation key pressed)
2023
20242006-10-13  Ludovic Rousseau
2025
2026        * [r2186] configure.in, src/Makefile.am: remove unneeded dependency
2027          on dl library
2028
20292006-09-26  Ludovic Rousseau
2030
2031        * [r2176] src/ifdhandler.c: IFDHICCPresence(): the patch in
2032          revision 2150 was not correct. SCardReconnect(...,
2033          SCARD_UNPOWER_CARD, ...) failed since the card was reported as
2034          non present after the power off
2035        * [r2175] src/ifdhandler.c: IFDHPowerICC(): log the action
2036          performed (PowerUp, PowerDown, Reset)
2037
20382006-09-22  Ludovic Rousseau
2039
2040        * [r2174] README, readers/CardMan5125.txt,
2041          readers/supported_readers.txt: add OmniKey CardMan 5125 in the
2042          should work but unsupported list
2043        * [r2173] README: update OmniKey URLs
2044        * [r2172] README, readers/supported_readers.txt: move the RSA
2045          SID800 in the supported list now that I have a working model
2046        * [r2171] readers/sid800.txt: update using a new SID800 model.
2047          Unfortunately the firmware version has not changed so it is not
2048          possible to detect a non working model
2049        * [r2170] README: add O2Micro Oz7762 in the unsupported list
2050
20512006-09-20  Ludovic Rousseau
2052
2053        * [r2168] src/ifdhandler.c: IFDHGetCapabilities(): add support of
2054          SCARD_ATTR_VENDOR_NAME
2055        * [r2166] src/Makefile.am, src/ifdhandler.c: add support for
2056          SCARD_ATTR_VENDOR_IFD_VERSION tag used by SCardGetAttrib()
2057        * [r2165] src/convert_version.pl: Perl script to convert a version
2058          format from "1.2.3-svn-xyz" to "0x01020003"
2059
20602006-09-14  Ludovic Rousseau
2061
2062        * [r2163] README: update OmniKey URLs
2063        * [r2162] README: the OmniKey 5125 was a 5121
2064        * [r2161] readers/CardMan5121.txt, readers/CardMan5125.txt,
2065          readers/supported_readers.txt: The reader was a 5121 in fact
2066
20672006-09-11  Ludovic Rousseau
2068
2069        * [r2156] configure.in: do not #include the tested .h file since it
2070          is already included by the macro. A double inclusion fails with
2071          SuSE gcc 4.1.0 with fdopen: Bad file descriptor
2072         
2073          Thanks to Byron Johnson for the bug report see
2074          http://www.mail-archive.com/muscle@lists.musclecard.com/msg05632.html
2075
20762006-09-10  Ludovic Rousseau
2077
2078        * [r2155] README: add a note about Alcor Micro AU9520 firmware 1.01
2079          bug (time request not forwarded)
2080        * [r2154] src/ccid_usb.c: Bogus_firm[]: firmware 1.01 for Alcor
2081          AU9520 is bogus. The time request of the card is not forwarded to
2082          the host by the reader.
2083        * [r2153] readers/AU9520.txt: new firmware (1.02)
2084
20852006-09-06  Ludovic Rousseau
2086
2087        * [r2152] src/ccid.c, src/ccid.h, src/ccid_serial.c,
2088          src/ccid_usb.c, src/commands.c, src/debug.h, src/defs.h,
2089          src/ifdhandler.c, src/openct/proto-t1.c, src/parse.c,
2090          src/towitoko/atr.c, src/towitoko/pps.c: remove trailing spaces at
2091          end of lines
2092        * [r2150] src/ifdhandler.c: IFDHICCPresence(): correctly support
2093          the removal and insertion between two consecutive
2094          IFDHICCPresence() calls
2095
20962006-08-11  Ludovic Rousseau
2097
2098        * [r2135] README, configure.in: release 1.1.0
2099        * [r2134] configure.in, src/Makefile.am: use ./configure
2100          --enable-twinserial to compile and install the the driver for the
2101          GemPC Twin serial
2102         
2103          Thanks to Wolfgang Glas for the idea
2104        * [r2133] README, readers/CL1356T.txt, readers/Makefile.am: add id3
2105          Semiconductors CL1356T in the "should work but unsuported" list
2106        * [r2132] config.h.in: Regenerate
2107
21082006-08-10  Ludovic Rousseau
2109
2110        * [r2131] README, readers/Makefile.am, readers/iDream.txt: Add
2111          iDream (or THRC2002-2) to the "Unsupported or partly supported
2112          CCID readers" list.
2113         
2114          Thanks to Dr Jean-Pierre Szikora for the report
2115
21162006-08-09  Ludovic Rousseau
2117
2118        * [r2130] src/ifdhandler.c: IFDHCreateChannelByName(): add a "warm
2119          up" sequence. This sequence is sometimes needed when pcscd is
2120          restarted with the reader already connected. We get some
2121          "usb_bulk_read: Resource temporarily unavailable" on the first
2122          few tries. It is an empirical hack
2123
21242006-08-07  Ludovic Rousseau
2125
2126        * [r2123] src/defs.h: CMD_BUF_SIZE should not include a byte for
2127          the cmd. This definition was reused as-is from the ifd-gempc
2128          source code.
2129         
2130          Thanks to Wolfgang Glas for the bug report
2131
21322006-08-03  Ludovic Rousseau
2133
2134        * [r2122] src/ifdhandler.c: IFDHICCPresence(): check the value
2135          returned by CmdEscape() in the SCR331-DI contactless reader
2136          familly code.
2137         
2138          Byg detected by using __attribute__((warn_unused_result)) also
2139          used as __must_check by the Linux kernel
2140        * [r2121] src/utils.c, src/utils.h: change the prototype of
2141          ReleaseReaderIndex() to return void since he function always
2142          returned 0 and the returned value was never checked
2143        * [r2120] src/commands.c: SecurePINVerify()/SecurePINModify(): the
2144          USB timeout shall be greater than the reader timeout so we get
2145          the reader answer. I use a margin of 10 seconds.
2146         
2147          Thanks to Gerald Richter for the bug report
2148
21492006-08-01  Ludovic Rousseau
2150
2151        * [r2119] src/ccid_usb.c: ReadUSB(): check that
2152          usbDevice[reader_index].dev->bus is still non-NULL (as we do in
2153          WriteUSB()) before dereferencing it in the debug message.
2154         
2155          Thanks to Michael Wegner for the patch
2156        * [r2118] configure.in: Exit the ./configure script if some include
2157          files are not found
2158         
2159          Use AC_MSG_ERROR() instead of AC_MSG_WARN()
2160
21612006-07-31  Ludovic Rousseau
2162
2163        * [r2117] config.h.in: regenerate
2164        * [r2116] configure.in, examples/scardcontrol.c, src/ifdhandler.c:
2165          use ntohl/htonl from arpa/inet.h since the tag value for
2166          IOCTL_FEATURE_VERIFY_PIN_DIRECT and
2167          IOCTL_FEATURE_MODIFY_PIN_DIRECT _shall_ be encoded in big endian
2168          as documented in PCSC v2 part 10 ch 2.2 page 2.
2169         
2170          The applications using this feature shall be updated (to respect
2171          the PCSC specification)
2172         
2173          Thanks to Ulrich Vogl for the bug report
2174
21752006-07-12  Ludovic Rousseau
2176
2177        * [r2110] src/commands.c: CCID_Receive(): check that we received at
2178          least enough bytes to test cmd[STATUS_OFFSET].
2179         
2180          usb_bulk_read() will return 0 bytes without error in case of
2181          timeout
2182        * [r2109] src/ifdhandler.c: use LPSTR instead of LPTSTR
2183          (deprecated)
2184        * [r2108] src/commands.c: SetParameters(): do not fail if the
2185          command fails to set a parameter that is not changeable by the
2186          CCID
2187
21882006-07-11  Ludovic Rousseau
2189
2190        * [r2107] src/ccid_usb.c: correct a typo in a comment
2191
21922006-07-09  Ludovic Rousseau
2193
2194        * [r2101] README, readers/AU9520.txt,
2195          readers/supported_readers.txt: add Alcor Micro AU9520
2196        * [r2100] README, readers/id3_CL1356D.txt,
2197          readers/supported_readers.txt: add id3 Semiconductors CL1356D
2198
21992006-07-04  Ludovic Rousseau
2200
2201        * [r2099] config.h.in: update comment for size_t
2202        * [r2098] src/commands.c: make pcscd detect a buffer overflow when
2203          the receiving buffer is too small instead of silently ignoring
2204          the detected problem. This problem only occured with readers
2205          supporting Extended APDU.
2206        * [r2097] src/ccid_usb.c: ReadUSB(): be sure we have read enough
2207          bytes before checking for frame detectation
2208
22092006-07-03  Ludovic Rousseau
2210
2211        * [r2096] src/commands.c: CmdXfrBlock(): remove the unused
2212          clean_up_and_return goto label
2213        * [r2095] src/commands.c: CmdXfrBlock(): call
2214          CmdXfrBlockAPDU_extended() if the reader supports Extended APDU
2215        * [r2094] src/commands.c: add CmdXfrBlockAPDU_extended() to support
2216          Extended APDU readers
2217        * [r2093] src/commands.c: CCID_Receive(): return the value of
2218          bChainParameter in *chain_parameter
2219        * [r2092] src/commands.c: CmdXfrBlockTPDU_T1(): also log the length
2220          of the reception buffer
2221        * [r2091] src/commands.c, src/openct/proto-t1.c,
2222          src/towitoko/pps.c: use CCID_Receive() with the new API (use NULL
2223          as chain_parameter)
2224        * [r2090] src/commands.c, src/commands.h: CCID_Receive() has a new
2225          parameter: chain_parameter
2226        * [r2089] src/commands.h: add #define CHAIN_PARAMETER_OFFSET
2227        * [r2088] src/commands.c: move the "command length too big" checks
2228          from CmdXfrBlock() to CmdXfrBlockTPDU_T0()
2229        * [r2087] src/commands.c: CCID_Transmit(): log if the transmit
2230          buffer is too big
2231        * [r2086] src/commands.c: CCID_Receive(): use <= instead of < to
2232          detect a reception buffer overrun and log an error if it occurs
2233        * [r2085] src/ccid.c: ccid_open_hack(): the CL1356D firmware needs
2234          some time to initialize. Wait 1 second here
2235        * [r2084] src/ccid.h: add #define CL1356D
2236        * [r2083] src/ccid_usb.c: ReadUSB(): detect and ignore duplicated
2237          CCID frames
2238
22392006-06-30  Ludovic Rousseau
2240
2241        * [r2082] src/ccid.c: ccid_error(): display the value of the
2242          Unknown CCID error code
2243
22442006-06-08  Ludovic Rousseau
2245
2246        * [r2078] configure.in: add support of FreeBSD
2247
22482006-05-25  Ludovic Rousseau
2249
2250        * [r2055] src/Info.plist: update the licence from GPL to LGPL
2251
22522006-05-19  Ludovic Rousseau
2253
2254        * [r2048] src/ccid_usb.c: SCM SPR 532 with firmware < 5.10 has
2255          problems
2256        * [r2047] readers/SPR532.txt: update with firmware 5.10
2257        * [r2046] src/openct/proto-t1.c: t1_transceive(): add a overrun
2258          debug message if we received more bytes than we can store.
2259        * [r2045] src/openct/proto-t1.c: t1_transceive(): add a debug
2260          message if we are in state DEAD. The card must be reset first.
2261
22622006-05-16  Ludovic Rousseau
2263
2264        * [r2044] readers/ActivkeySim.txt, readers/supported_readers.txt:
2265          add Actividentity (ActiveCard) Activkey Sim
2266
22672006-05-10  Ludovic Rousseau
2268
2269        * [r2041] src/ccid.h: correct a typo in a comment
2270
22712006-05-04  Ludovic Rousseau
2272
2273        * [r2039] examples/scardcontrol.c: Use a timeout of 0.1 second
2274          instead of 0 for waiting characters from the keyboard
2275        * [r2038] README, readers/supported_readers.txt: add C3PO LTC31
2276          (new model, USB product id 0x0006) in the supported list
2277        * [r2037] README, readers/supported_readers.txt: add "HP USB Smart
2278          Card Keyboard" in the "Should work but untested by me:" list
2279        * [r2036] readers/HPUSBSmartCardKeyboard.txt, readers/Makefile.am:
2280          add HPUSBSmartCardKeyboard.txt
2281
22822006-05-03  Ludovic Rousseau
2283
2284        * [r2035] src/ccid.c: ccid_open_hack(): add SCM SCR331-DI-NTTCOM in
2285          the list of dual slots contactless readers hack
2286        * [r2034] README, readers/CardMan3021.txt, readers/Makefile.am: add
2287          OmniKey CardMan 3021 in the "Should work but untested by me" list
2288        * [r2033] readers/LTC31v2.txt, readers/Makefile.am: add LTC31 (new
2289          version)
2290        * [r2032] src/parse.c: I used the MSB instead of LSB in parsing
2291          dwSynchProtocols
2292
22932006-04-23  Ludovic Rousseau
2294
2295        * [r2026] COPYING: update the Free Software Foundation postal
2296          address
2297
22982006-04-22  Ludovic Rousseau
2299
2300        * [r2022] src/Makefile.am: add $(PROVIDED_BY_PCSC) to
2301          libccidtwin_la_SOURCES so that libccidtwin uses its own
2302          log_xxd/log_msg when configured with --disable-pcsclite
2303        * [r2021] src/Makefile.am: add $(TOKEN_PARSER) to
2304          libccidtwin_la_SOURCES
2305        * [r2020] README, configure.in: release 1.0.1
2306
23072006-04-20  Ludovic Rousseau
2308
2309        * [r2019] src/ifdhandler.c: declare the functions to export as
2310          EXTERNAL
2311        * [r2017] readers/ACR38U-CCID.txt, readers/CardMan3121.txt,
2312          readers/CryptoIdentity.txt, readers/GemPCKey.txt,
2313          readers/GemPCTwin.txt, readers/KAAN_Advanced.txt,
2314          readers/KAAN_Base.txt, readers/KAAN_SIM_III.txt,
2315          readers/LTC31.txt, readers/MySmartPad.txt, readers/Oz776S.txt,
2316          readers/SCR331-DI.txt, readers/SCR331.txt, readers/SCR3310.txt,
2317          readers/SCR335.txt, readers/SCR355.txt,
2318          readers/SIM_Pocket_Combo.txt, readers/SPR532.txt,
2319          readers/Verisign_secure_storage_token.txt, readers/mIDentity.txt,
2320          readers/sid800.txt: regenerate using the latest version of parse
2321        * [r2016] README, readers/CardMan3621.txt, readers/Makefile.am,
2322          readers/supported_readers.txt: add OmniKey CardMan 3621 in the
2323          "Should work but untested by me" list Thanks to Bruce Stephens.
2324
23252006-04-18  Ludovic Rousseau
2326
2327        * [r2014] src/ccid_usb.c: declare get_ccid_usb_interface() as
2328          EXTERNAL since this function is used by src/parse
2329        * [r2013] src/ifdhandler.c: #include "misc.h" so that ifdhandler.h
2330          functions are declared EXTERNAL
2331        * [r2012] src/Makefile.am: add $(SYMBOL_VISIBILITY) to
2332          libccid_la_CFLAGS and libccidtwin_la_CFLAGS
2333        * [r2011] configure.in: add code to detect the support of
2334          -fvisibility=hidden
2335        * [r2007] src/Makefile.am, src/misc.h, src/parser.h, src/strlcpy.c,
2336          src/strlcpycat.h, src/tokenparser.l: use tokenparser.l and
2337          parser.h from pcsc-lite (using a symlink in subversion). So we
2338          also need strlcpy.c, strlcpycat.h and misc.h
2339        * [r2006] src/parser.h, src/tokenparser.l: remove
2340        * [r2005] configure.in, src/Makefile.am: always use our own
2341          tokenparser.l even when pcsc-lite is used (do not use
2342          LTPBundleFindValueWithKey from pcscd)
2343
23442006-04-14  Ludovic Rousseau
2345
2346        * [r2004] readers/Makefile.am: add SCR3311.txt, SCR355.txt and
2347          SDI010.txt
2348        * [r2003] readers/SDI010.txt, readers/SSI010.txt: rename SSI010.txt
2349          in SDI010.txt
2350        * [r2002] src/ccid_usb.c: firmwares for Athena ASE IIIe USBv2 and
2351          ASE IIIe KB USB were bogus.
2352        * [r2001] readers/Makefile.am: add ASE_IIIe.txt and
2353          ASEDrive_IIIe_KB.txt
2354        * [r2000] README, readers/ASEDrive_IIIe_KB.txt,
2355          readers/supported_readers.txt: add Athena ASE IIIe KB USB
2356        * [r1999] readers/ASE_IIIe.txt: update firmware version
2357
23582006-03-28  Ludovic Rousseau
2359
2360        * [r1986] src/commands.c: SecurePINVerify() and SecurePINModify():
2361          Make sure bEntryValidationCondition is valid
2362         
2363          The Cherry XX44 keyboard smart card reader crashes when a wrong
2364          value is used
2365
23662006-03-27  Ludovic Rousseau
2367
2368        * [r1985] examples/scardcontrol.c: Modify PIN: use a for() loop
2369          instead of 3 fgets() since we will not read every "PIN" if the
2370          command is aborted
2371        * [r1984] src/commands.c: SecurePINVerify(): debug a debug message.
2372          use dw2i(TxBuffer, 15) instead of just the first byte
2373          TxBuffer[15]
2374        * [r1983] src/commands.c: SecurePINModify(): separate the
2375          validation test in three different tests and add a debug message
2376          for each test
2377        * [r1982] src/commands.c: SecurePINVerify(): debug a debug message
2378          :-)
2379        * [r1981] src/ccid.h, src/commands.c: SecurePINModify(): circumvent
2380          a bug in Cherry XX44 keyboard firmware
2381
23822006-03-21  Ludovic Rousseau
2383
2384        * [r1969] README: add Gemplus GemPC Card in the "supported" list
2385        * [r1968] README, readers/Makefile.am, readers/Winbond.txt,
2386          readers/supported_readers.txt: add Winbond Electronics W81E381
2387          chipset
2388        * [r1951] README: add SCM Micro SDI 010 in the "Should work" list
2389        * [r1950] readers/SSI010.txt, readers/supported_readers.txt,
2390          src/ccid.c, src/ccid.h, src/ifdhandler.c: add support for SCM SDI
2391          010 contactless reader
2392         
2393          thanks to Oleg Makarenko for the patch
2394        * [r1949] readers/AxaltoV3.txt, readers/Makefile.am: add Axalto
2395          Reflex USB V3
2396
23972006-03-20  Ludovic Rousseau
2398
2399        * [r1945] README, readers/supported_readers.txt: add Axalto Reflex
2400          USB v3 in the "should work" list
2401        * [r1944] configure.in: document --disable-multi-thread instead of
2402          --enable-multi-thread since safe threading is used by default
2403        * [r1943] configure.in: document --disable-pcsclite instead of
2404          --enable-pcsclite since pcsc-lite is used by default
2405        * [r1942] configure.in: display the status "use libusb : yes/no"
2406         
2407          document --disable-libusb instead of --enable-libusb since libusb
2408          is used by default.
2409
24102006-03-06  Ludovic Rousseau
2411
2412        * [r1927] src/ccid_usb.h: use #if defined (__USB_H__) || defined
2413          (_SYS_USB_LIBUSB_USB_H) instead of #ifdef __USB_H__ to support
2414          the Solaris libusb
2415         
2416          thanks to Iain MacDonnell for the patch
2417        * [r1926] configure.in: remove CFLAGS="$CFLAGS -Wall" since it is
2418          GCC specific
2419        * [r1925] configure.in: add support of Solaris
2420
24212006-03-03  Ludovic Rousseau
2422
2423        * [r1911] README: release 1.0.0
2424        * [r1910] configure.in: version 1.0.0
2425        * [r1909] README: add OmniKey CardMan 3821 and CardMan 6121 in the
2426          "Should work but untested by me" list
2427        * [r1908] readers/CardMan3821.txt, readers/CardMan6121.txt,
2428          readers/Makefile.am, readers/supported_readers.txt: add OmniKey
2429          CardMan 3821 and CardMan 6121
2430        * [r1905] README: update the "Debug informations:" chapter. The two
2431          options comm and periodic have been swaped
2432        * [r1904] readers/CherrySmartTerminalST2XXX.txt: new firmware
2433          (5.08)
2434
24352006-02-28  Ludovic Rousseau
2436
2437        * [r1903] readers/Makefile.am, readers/SCR333.txt: add SCR333.txt
2438        * [r1886] src/ifdhandler.c: IFDHSetProtocolParameters(): if the
2439          card is in specific mode and request a speed not supported by the
2440          reader we return IFD_COMMUNICATION_ERROR instead of
2441          IFD_PROTOCOL_NOT_SUPPORTED so that pcsc-lite do not try to talk
2442          to the card
2443
24442006-02-24  Ludovic Rousseau
2445
2446        * [r1883] README: add URL for the Cherry SmartTerminal ST2000U
2447
24482006-02-21  Ludovic Rousseau
2449
2450        * [r1876] README: - move the ActivCard USB reader 2.0 from "Should
2451          work but untested by me" to "Unsupported or partly supported CCID
2452          readers" - add the ActivCard USB reader 3.0 in the "Supported
2453          CCID readers" list
2454        * [r1875] src/ccid_usb.c: the ActivCard V2 is bogus (problem with
2455          wMaxPacketSize size frames)
2456        * [r1874] readers/Makefile.am: distribute ActivCardV2.txt and
2457          ActivCardV3.txt
2458        * [r1873] readers/supported_readers.txt: add ActivCard USB Reader
2459          3.0
2460        * [r1872] readers/ActivCardV2.txt, readers/ActivCardV3.txt: add
2461          ActivCard v2 and v3 descriptions
2462        * [r1870] Makefile.am: correct the Perl regexp in ChangeLog rule
2463        * [r1869] Makefile.am: add subversion revision in ChangeLog.svn
2464
24652006-02-20  Ludovic Rousseau
2466
2467        * [r1867] readers/Makefile.am: add SCM SCR3320.txt and SCR3340.txt
2468        * [r1866] readers/SCR3320.txt: add SCM SCR3320 - Smart Card Reader
2469        * [r1865] readers/SCR3340.txt: add SCR3340 - ExpressCard54 Smart
2470          Card Reader
2471
24722006-02-07  Ludovic Rousseau
2473
2474        * [r1864] README, readers/supported_readers.txt: add "SCM SCR 3340
2475          ExpressCard54" in the "Should work but untested by me" list
2476        * [r1863] README: add Gemplus GemPC Express in the "Should work but
2477          untested by me" list
2478        * [r1862] readers/GemPC_Express.txt, readers/Makefile.am,
2479          readers/supported_readers.txt: add Gemplus GemPC Express
2480
24812006-02-06  Ludovic Rousseau
2482
2483        * [r1861] readers/supported_readers.txt: rename POS Pro & SIM Pro
2484          to a more real name "Gemplus GemCore xxx"
2485        * [r1860] src/commands.c: SecurePINVerify/SecurePINModify: get the
2486          data from a T=1 TPDU block only if the exchange was successful
2487          (with special treatment for timeout and cancel cases)
2488        * [r1859] src/commands.c: SecurePINVerify(): move the prologue
2489          filing part to be homogenous with SecurePINModify()
2490        * [r1858] src/commands.c: SecurePINModify(): add support of T=1
2491          cards with TPDU readers
2492        * [r1857] src/commands.c: SecurePINVerify(): add support of T=1
2493          cards with TPDU readers
2494        * [r1856] src/openct/proto-t1.c, src/openct/proto-t1.h: export
2495          t1_build() and some constants
2496        * [r1855] src/ifdhandler.c: IFDHSetProtocolParameters(): store the
2497          card protocol in ccid_desc->cardProtocol
2498        * [r1854] src/ccid.h: add a cardProtocol field to store the card
2499          protocol in use
2500
25012006-01-30  Ludovic Rousseau
2502
2503        * [r1846] configure.in: add support for OpenBSD
2504        * [r1845] examples/Makefile.am, src/Makefile.am: use $(foo) instead
2505          of @foo@ to do not replace the values but the variables
2506        * [r1842] configure.in: when checking for PCSC exit with en error
2507          only if /usr/local/lib/pkgconfig/libpcsclite.pc exists _and_
2508          pkg-config is installed
2509
25102006-01-25  Ludovic Rousseau
2511
2512        * [r1841] readers/Makefile.am: add CardMan5125.txt
2513        * [r1840] README: add OmniKey CardMan 5125 in the "Should work but
2514          untested by me" list
2515        * [r1839] readers/CardMan5125.txt, readers/supported_readers.txt:
2516          add OmniKey CardMan 5125
2517
25182006-01-24  Ludovic Rousseau
2519
2520        * [r1834] readers/supported_readers.txt: add SmartEpad
2521        * [r1833] README: add SmartEpad (v 2.0) in the supported list
2522        * [r1832] src/ccid.c, src/ccid.h: add support for the SmartEpad (v
2523          2.0) reader (MYSMARTPAD)
2524        * [r1831] readers/Makefile.am: add MySmartPad.txt
2525
25262006-01-20  Ludovic Rousseau
2527
2528        * [r1820] README, readers/SCR3311.txt: move the SCM Micro SCR 3311
2529          from the "should work" list to the "supported" list
2530        * [r1819] src/parse.c: rewrite to scan the devices ourself instead
2531          of calling IFDHCreateChannel(). No need to have an updated
2532          Info.plist anymore.
2533        * [r1818] src/ccid_usb.c: get_ccid_usb_interface(): use the same
2534          code for a device with 1 or >1 interfaces
2535
25362006-01-18  Ludovic Rousseau
2537
2538        * [r1815] README: add Gemplus GemPC PinPad, Gemplus GemCore POS Pro
2539          & Gemplus GemCore SIM Pro
2540        * [r1814] INSTALL: document the configuration of /etc/reader.conf
2541          for a GemPC PinPad, a GemCore POS Pro or a GemCore SIM Pro
2542        * [r1810] readers/GemCoreSIMPro.txt, readers/Makefile.am: add
2543          GemCore SIM Pro
2544        * [r1809] readers/supported_readers.txt: add GemCore POS Pro &
2545          Gemplus SIM Pro --Cette ligne, et les suivantes ci-dessous,
2546          seront ignorées--
2547         
2548          M readers/supported_readers.txt
2549        * [r1808] src/ccid.h, src/ccid_serial.c, src/ccid_usb.c,
2550          src/defs.h, src/reader.conf.in: add support of GemCore SIM Pro
2551          and GemCore POS Pro (serial and USB).
2552        * [r1807] src/ccid_usb.c: CloseUSB(): free the allocated
2553          arrayOfSupportedDataRates only for the pimary slot. The other
2554          slots of the same reader either point to the same array or point
2555          to a statically allocated array.
2556        * [r1806] src/ifdhandler.c: IFDHSetProtocolParameters(): exit the
2557          while if you find a correct speed in the case of a card too fast
2558        * [r1805] src/ccid.c: ccid_open_hack(): update the spanish PIN Pad
2559          string since the number of remaining tries in always displayed at
2560          the first character
2561
25622006-01-17  Ludovic Rousseau
2563
2564        * [r1804] src/ccid_usb.c: OpenUSBByName(): check that
2565          usbDevice[previous_reader_index].dev is still valid before
2566          dereferencing it
2567         
2568          Thanks to Martin Paljak for the bug report
2569        * [r1803] src/Makefile.am: use @PTHREAD_CFLAGS@ and @PTHREAD_LIBS@
2570        * [r1802] configure.in: use LIBS instead of LDLIBS when checking if
2571          pcsc-lite is installed
2572        * [r1801] src/ccid_serial.c: OpenSerialByName(): call CloseSerial()
2573          if the "Get firmware" or "Change card movement notification"
2574          command failed
2575
25762006-01-16  Ludovic Rousseau
2577
2578        * [r1800] src/commands.c, src/commands.h: SecurePINVerify(): bug
2579          circumvention for the GemPC Pinpad (bNumberMessage)
2580
25812006-01-12  Ludovic Rousseau
2582
2583        * [r1799] src/ccid.c: ccid_open_hack(): use { } around DEBUG_COMM()
2584          in an if-else since DEBUG_COMM() is not a function but an
2585          multi-instruction macro
2586
25872006-01-11  Ludovic Rousseau
2588
2589        * [r1798] readers/GemPCPinpad.txt, readers/supported_readers.txt:
2590          add Gemplus GemPC Pinpad
2591        * [r1797] src/ifdhandler.c: IFDHSetProtocolParameters(): if the
2592          card is faster than the reader (TA1=97 for example) we try to use
2593          a no so bad speed (corresponding to TA1=96, 95 or 94) instead of
2594          the default speed of TA1=11
2595        * [r1796] src/ccid.c: ccid_open_hack(): load the localisation
2596          strings according to LANG environment variable. Languages
2597          supported: de, en, es, fr, it
2598        * [r1795] src/Info.plist, src/ccid.c: move the comment about APDU
2599          mode from ccid_open_hack() to Info.plist since it is configured
2600          there
2601        * [r1794] src/ccid.h, src/commands.c: SecurePINModify(): bug
2602          circumvention for the GemPC Pinpad
2603        * [r1793] src/commands.c, src/commands.h: SecurePINModify(): modify
2604          the user command to make the SPR 532 and Cherry ST 2000C firmware
2605          happy
2606        * [r1792] src/ccid_usb.c: OpenUSBByName(): use log level INFO
2607          instead of CRITICAL to display copyright information
2608        * [r1791] src/ccid_usb.c: release the allocated ressources only
2609          when the last slot of a multi-slot reader is closed
2610        * [r1790] src/Info.plist, src/ccid.h, src/commands.c,
2611          src/commands.h, src/ifdhandler.c: allow to select the power on
2612          voltage using Info.plist instead of recompiling the source code
2613
26142006-01-03  Ludovic Rousseau
2615
2616        * [r1789] README, readers/supported_readers.txt: add SCM Micro SCR
2617          3311 and 3320 in the "Should work but untested by me" list
2618        * [r1788] README: add URL for SCM Micro SCR 3310
2619        * [r1787] README, readers/SCR355.txt,
2620          readers/supported_readers.txt: add support for SCM Micro SCR 355
2621
26222006-01-02  Ludovic Rousseau
2623
2624        * [r1785] readers/Makefile.am: use ACR38U-CCID.txt instead of
2625          ACR38.txt
2626        * [r1784] configure.in: use pkg-config for libusb if available
2627
26282005-12-14  Ludovic Rousseau
2629
2630        * [r1782] readers/Verisign_secure_storage_token.txt: update with
2631          new ./parse version
2632
26332005-12-08  Ludovic Rousseau
2634
2635        * [r1780] src/ifdhandler.c: typo in a comment
2636        * [r1779] INSTALL: The GemPC Twin is not the only serial CCID
2637          reader
2638
26392005-12-07  Ludovic Rousseau
2640
2641        * [r1778] README, readers/ACR38.txt, readers/ACR38U-CCID.txt,
2642          readers/supported_readers.txt: replace ACR 38 by ACR 38U-CCID
2643          since they are two different readers
2644
26452005-12-01  Ludovic Rousseau
2646
2647        * [r1776] README, readers/ASE_IIIe.txt,
2648          readers/supported_readers.txt: add Athena ASE IIIe USB V2 in
2649          "Supported CCID readers" list
2650
26512005-11-29  Ludovic Rousseau
2652
2653        * [r1775] src/ccid_usb.c: OpenUSBByName(): do not (re)set the
2654          usbDevice[].ccid.pbSeq field since we just copied the complete
2655          structure just before
2656        * [r1774] src/ifdhandler.c: Avoid a possible division by 0 if f or
2657          d parameter is null. This could happen only with non-ISO cards
2658          with TA1=0x00 or other undefined values
2659        * [r1773] src/towitoko/atr.c: add support of non-ISO TA1=0x97 (Di=7
2660          is/was RFU)
2661        * [r1771] examples/scardcontrol.c, src/ccid.c, src/ccid_serial.c,
2662          src/commands.c, src/defs.h, src/ifdhandler.c,
2663          src/openct/proto-t1.c, src/towitoko/defines.h,
2664          src/towitoko/pps.c, src/utils.c: remove PCSC/ from the pcsc-lite
2665          #include header files since the PCSC/ part is already given by
2666          `pkg-config --cflags libpcsclite`
2667        * [r1770] configure.in: rewrite the libusb detection code to: - use
2668          libusb-config if available - --enable-libusb do not give a path
2669          anymore but just a yes/no status. paths/arguments/etc must be
2670          given using LIBUSB_CFLAGS and LIBUSB_LIBS - use
2671          AC_TRY_LINK_FUNC() instead of AC_CHECK_LIB() so we do not
2672          explicitely give the library name. This name should come from
2673          LIBUSB_LIBS
2674        * [r1769] configure.in: in libusb detection code: restore CPPFLAGS
2675          to $saved_CPPFLAGS instead of $saved_LIBS
2676        * [r1768] configure.in: recommand the use of PCSC_CFLAGS=...
2677          instead of CFLAGS=... to find the pcsc-lite headers
2678        * [r1767] configure.in: use $CPPFLAGS instead of $CFLAGS since we
2679          only need to set the C preprocessor to find the .h files
2680
26812005-11-27  Ludovic Rousseau
2682
2683        * [r1761] README: release 0.9.4
2684        * [r1760] readers/MySmartPad.txt: new file for MySMART PAD V2.0
2685        * [r1759] README: add Cherry SmartTerminal ST2XXX
2686        * [r1758] readers/Makefile.am: add 3 missing reader descriptions
2687
26882005-11-24  Ludovic Rousseau
2689
2690        * [r1754] configure.in: we need pcsc-lite 1.2.9-beta9 or greater
2691        * [r1752] src/ifdhandler.c: IFDHGetCapabilities(): use info instead
2692          of comm debug level to print the number of slots supported by the
2693          reader
2694        * [r1751] examples/scardcontrol.c: update copyright date
2695        * [r1750] examples/scardcontrol.c: in Modify PIN command we need to
2696          read 3 lines from the keyboard (old, new and confirm PINs)
2697        * [r1749] examples/scardcontrol.c: use a buffer of 40 instead of 10
2698          to reader the keyboard since the PIN may be longer than 8 digits
2699        * [r1747] src/commands.c: SecurePINVerify()/SecurePINModify(): set
2700          the response length to 0 in case of (write) communication error
2701        * [r1746] src/commands.c: SecurePINModify(): set the response
2702          length to 0 in case of error in the command format
2703        * [r1745] src/ifdhandler.c: IFDHControl(): use
2704          sizeof(PCSC_TLV_STRUCTURE) instead of 6
2705        * [r1743] examples/scardcontrol.c: my check if the applet is
2706          present was wrong
2707        * [r1742] examples/scardcontrol.c: exit if the test applet is not
2708          found
2709        * [r1740] configure.in: do not duplicate the definition of
2710          PCSCLITE_HP_DROPDIR in --enable-ccidtwindir since it is already
2711          defined in --enable-usbdropdir
2712         
2713          This prevented the successful execution of ./configure when
2714          -pedantic-errors is used
2715        * [r1739] src/openct/proto-t1.c: t1_xcv(): correct the comment
2716          about &rmax
2717        * [r1738] src/openct/proto-t1.c: t1_xcv(): the second argument of
2718          CCID_Receive() is (unsigned int *) so we can't use &rmax since
2719          &rmax is a (size_t *) and may not be the same on 64-bits
2720          architectures for example (iMac G5) */
2721        * [r1737] configure.in, src/Makefile.am: tokenparser.l is only
2722          needed when pcscd is not used (Solaris). It is not needed on Mac
2723          OS X since LTPBundleFindValueWithKey() is provided by pcscd
2724        * [r1735] configure.in: use libusb-config(1) to get, if possible,
2725          correct values for LIBUSB_CFLAGS and LIBUSB_LIBS
2726        * [r1734] configure.in: replace dnl by #
2727        * [r1733] configure.in, src/Makefile.am: use
2728          LIBUSB_CFLAGS/LIBUSB_LIBS instead of LDFLAGS/CPPFLAGS for libusb
2729          configuration
2730
27312005-11-22  Ludovic Rousseau
2732
2733        * [r1730] README: add the "SCM Micro SCR 3310-NTTCOM" in the
2734          "Should work but untested by me" list. See
2735          http://archives.neohapsis.com/archives/dev/muscle/2005-q4/0217.html
2736        * [r1729] readers/supported_readers.txt: add SCM SCR 3310 NTTCom.
2737          See
2738          http://archives.neohapsis.com/archives/dev/muscle/2005-q4/0217.html
2739
27402005-11-16  Ludovic Rousseau
2741
2742        * [r1717] examples/scardcontrol.c: Modify PIN: use a 4 digit PIN so
2743          we can test it using the test Java Card applet
2744        * [r1716] examples/scardcontrol.c: Modify PIN: bInsertionOffsetOld
2745          and bInsertionOffsetNew starts from the APDU data (5th byte) and
2746          not the APDU start (first byte)
2747        * [r1715] examples/scardcontrol.c: add a modify PIN dump command
2748        * [r1714] examples/scardcontrol.c: Modify PIN: add a comment for
2749          bNumberMessage
2750        * [r1713] examples/scardcontrol.c: Modify PIN: use 0x03 for
2751          bNumberMessage since the GemPC Pinpad rejects any other valu. The
2752          SPR 532 needs 0 here
2753        * [r1712] examples/scardcontrol.c: verify PIN: use 0x01 for
2754          bNumberMessage for the GemPC Pinpad
2755        * [r1711] examples/scardcontrol.c: verify PIN: use 0x02 (validation
2756          key pressed) for bEntryValidationCondition as the GemPC Pinpad
2757          rejects any other values
2758
27592005-11-15  Ludovic Rousseau
2760
2761        * [r1705] Makefile.am: use svn2cl.sh instead of rcs2log since we
2762          migrated to subversion
2763        * [r1704] src/commands.c: SecurePINModify(): set the readTimeout to
2764          at least 30 seconds since we are not waiting after an APDU but
2765          after a human (after the reader in fact).
2766
27672005-11-07  Ludovic Rousseau
2768
2769        * [r1703] src/ccid_serial.c, src/ccid_usb.c: remove #ifdef
2770          DEBUG_LEVEL_COMM since DEBUG_LEVEL_COMM is a numeric value and
2771          not a compilation flag anymore. Debug is always active and
2772          filtered by pcscd.
2773        * [r1702] src/Info.plist, src/debug.h: exchange COMM and PERIODIC
2774          debug values so that all except PERIODIC value is 7
2775
27762005-10-30  Ludovic Rousseau
2777
2778        * [r1701] src/commands.c: SecurePINModify(): correct management of
2779          bMsgIndex2 and bMsgIndex3
2780        * [r1700] src/commands.c: SecurePINModify(): do not copy the
2781          ulDataLength field to the CCID frame
2782        * [r1699] src/ccid.h: #define CHERRYST2000
2783
27842005-10-19  Ludovic Rousseau
2785
2786        * [r1692] readers/SPR532.txt: firmware 5.07
2787        * [r1691] examples/scardcontrol.c: declare offset, pin_verify and
2788          pin_modify variable only if needed
2789
27902005-09-27  Ludovic Rousseau
2791
2792        * [r1677] src/commands.c: CCID_Transmit(): cmd[8-9] is the expected
2793          length in character mode only. It shall be 0x0000 for TPDU and
2794          short APDU modes.
2795
27962005-09-26  Ludovic Rousseau
2797
2798        * [r1676] examples/scardcontrol.c: use the new HandlerTest applet
2799          commands
2800        * [r1675] src/commands.c: SecurePINVerify(): set the readTimeout to
2801          at least 30 seconds since we are not waiting after an APDU but
2802          after a human.
2803        * [r1674] src/ccid.h: _ccid_descriptor.readTimeout is in seconds
2804          even for USB. The comment was wrong
2805
28062005-09-20  Ludovic Rousseau
2807
2808        * [r1670] src/commands.c: SecurePINVerify(): update the size of
2809          ulDataLength field as defined in PCSCv2 part 10, revision
2810          2.01.04, september 2005
2811        * [r1669] examples/scardcontrol.c: use
2812          HOST_TO_CCID_16/HOST_TO_CCID_32
2813
28142005-09-05  Ludovic Rousseau
2815
2816        * [r1641] src/ccid_usb.c: get_data_rates(): check the response size
2817          only if bNumDataRatesSupported is non zero
2818        * [r1640] src/parse.c: if bNumDataRatesSupported is 0 we get the
2819          list size from what GET DATA RATES command returns
2820         
2821          idem for bNumClockSupported
2822        * [r1639] src/parse.c: do not request data rates if the reader
2823          reports it support a 0 length list. Idem for clocks.
2824        * [r1638] src/parse.c: print bNumClockSupported: as %d and not
2825          0x%02X
2826
28272005-09-01  Ludovic Rousseau
2828
2829        * [r1635] examples/scardcontrol.c: also work with T=1 cards
2830        * [r1634] examples/scardcontrol.c: debug modify PIN test code
2831        * [r1633] readers/supported_readers.txt: add Cherry ST1044U
2832        * [r1632] readers/CherrySmartTerminalST2XXX.txt,
2833          readers/supported_readers.txt: add Cherry SmartTerminal ST-2XXX
2834        * [r1631] examples/scardcontrol.c: add sample code to perform
2835          FEATURE_VERIFY_PIN_DIRECT and FEATURE_MODIFY_PIN_DIRECT if the
2836          reader supports it
2837        * [r1630] src/ccid_ifdhandler.h, src/commands.c, src/commands.h,
2838          src/ifdhandler.c: add support of PC/SC v2 part 10
2839          CM_IOCTL_GET_FEATURE_REQUEST add support of
2840          FEATURE_VERIFY_PIN_DIRECT and FEATURE_MODIFY_PIN_DIRECT
2841         
2842          remove support of IOCTL_SMARTCARD_VENDOR_VERIFY_PIN (now
2843          obsoleted)
2844
28452005-08-25  Ludovic Rousseau
2846
2847        * [r1626] README: add Cherry ST-1044U in the supported list
2848        * [r1625] readers/CherryST1044U.txt: new file
2849
28502005-08-21  Ludovic Rousseau
2851
2852        * [r1622] README: move the "Cherry XX44 keyboard" from "should
2853          work" to "supported" list
2854
28552005-08-16  Ludovic Rousseau
2856
2857        * [r1619] .cvsignore, aclocal/.cvsignore, build/.cvsignore,
2858          examples/.cvsignore, readers/.cvsignore, src/.cvsignore,
2859          src/towitoko/.cvsignore: removed since we use SVN and not CVS
2860          anymore
2861         
2862          Thanks to Martin Paljak for the idea
2863
28642005-08-13  Ludovic Rousseau
2865
2866        * [r1614] src/Info.plist: document DRIVER_OPTION_RESET_ON_CLOSE
2867        * [r1613] src/ccid_usb.c: CloseUSB(): call usb_reset() only if
2868          DRIVER_OPTION_RESET_ON_CLOSE is set.
2869         
2870          The problem was that a device reset also disconnects the keyboard
2871          on a keyboard + reader device.
2872        * [r1612] src/ccid_ifdhandler.h: #define
2873          DRIVER_OPTION_RESET_ON_CLOSE
2874
28752005-08-11  Ludovic Rousseau
2876
2877        * [r1610] readers/CherryXX44.txt: update adding clock frequencies
2878          and data rates
2879        * [r1609] src/parse.c: check that we do not receive more data rates
2880          anc clock frequencies than the reader supports
2881        * [r1608] src/ccid_usb.c: get_data_rates(): check that we do not
2882          get more data rates than the reader supports
2883
28842005-08-03  Ludovic Rousseau
2885
2886        * [r1600] src/commands.c: CCID_Receive(): log time extension
2887          messages at priority COMM instead of CRITICAL.
2888         
2889          Thanks to Martin Paljak for the patch.
2890
28912005-08-02  Ludovic Rousseau
2892
2893        * [r1585] src/ccid_usb.c: OpenUSBByName(): call usb_close() if the
2894          device can't be used
2895
28962005-07-04  Ludovic Rousseau
2897
2898        * [r1570] src/ifdhandler.c: IFDHControl(): having a NULL RxBuffer
2899          is not an error since it is enough to send the code in
2900          dwControlCode
2901         
2902          Thanks to Martin Paljak for the patch
2903        * [r1569] src/ccid_usb.c: OpenUSBByName(): vendorID, productID are
2904          unsigned avoids a "comparison between signed and unsigned"
2905          warning
2906        * [r1568] src/ccid.h: struct _ccid_descriptor: dwMaxDataRate is
2907          unsigned avoids a "comparison between signed and unsigned"
2908          warning
2909        * [r1567] src/ccid.h: struct _ccid_descriptor:
2910          dwMaxCCIDMessageLength is unsigned avoids a "comparison between
2911          signed and unsigned" warning
2912        * [r1566] src/commands.c: CmdPowerOn(): atr_len is unsigned avoids
2913          a "comparison between signed and unsigned" warning
2914
29152005-06-16  Ludovic Rousseau
2916
2917        * [r1563] src/parse.c: parse wLcdLayout
2918        * [r1562] src/parse.c: parse bClassEnveloppe
2919        * [r1561] src/parse.c: pares bClassGetResponse
2920        * [r1560] src/parse.c: parse dwSynchProtocols
2921
29222005-06-15  Ludovic Rousseau
2923
2924        * [r1559] src/ifdhandler.c: #include <PCSC/reader.h>
2925        * [r1558] examples/scardcontrol.c: remove definition of
2926          SCARD_CTL_CODE and #include <PCSC/reader.h>
2927        * [r1557] src/ccid_ifdhandler.h: remove definition of
2928          SCARD_CTL_CODE
2929        * [r1556] configure.in: check the availability of reader.h
2930          (provided by pcsc-lite 1.2.9-beta8)
2931        * [r1555] configure.in: check against pcsc-lite 1.2.9-beta8 instead
2932          of beta7
2933
29342005-06-04  Ludovic Rousseau
2935
2936        * [r1547] src/ccid_usb.c: WriteUSB(): do not parse
2937          usbDevice[reader_index].dev->bus if it is a NULL pointer (the
2938          device has been removed for example)
2939
29402005-05-27  Ludovic Rousseau
2941
2942        * [r1546] README: Add Eutron SIM Pocket Combo and Eutron
2943          CryptoIdentity in the supported list
2944        * [r1545] readers/CryptoIdentity.txt,
2945          readers/supported_readers.txt: add Eutron CryptoIdentity
2946
29472005-05-20  Ludovic Rousseau
2948
2949        * [r1523] README: add Verisign Secure Token in the supported list
2950        * [r1522] README: add RSA SecureID SID800 in the UNsupported list
2951        * [r1521] README: add Verisign Secure Storage Token in the
2952          supported list
2953        * [r1520] readers/sid800.txt: regenerate using new ./parse
2954
29552005-05-05  Ludovic Rousseau
2956
2957        * [r1514] readers/Makefile.am, readers/SCR331-DI-NTTCom.txt: add
2958          SCR331-DI-NTTCom.txt
2959        * [r1513] readers/Makefile.am: rename KAAN_mIDentity.txt in
2960          mIDentity.txt
2961        * [r1512] readers/ACR38.txt, readers/CardMan3121.txt,
2962          readers/GemPCKey.txt, readers/KAAN_Advanced.txt,
2963          readers/KAAN_Base.txt, readers/LTC31.txt, readers/Oz776S.txt,
2964          readers/SCR331-DI.txt, readers/SCR331.txt, readers/SCR3310.txt,
2965          readers/SCR335.txt, readers/SIM_Pocket_Combo.txt,
2966          readers/SPR532.txt, readers/mIDentity.txt: regenerate using the
2967          latest src/parse program
2968        * [r1511] src/ifdhandler.c: do not #include <math.h> since we now
2969          use +1 instead of ceil() to round the calculated timeouts to the
2970          upper integer - we do not need an mathematical exact value. the
2971          {usb,serial}read must just not timeout before the reader firmware
2972          timeouts - we avoid a dependency/link on the math library
2973        * [r1510] src/ifdhandler.c: T0_card_timeout(): use intermediate
2974          variables EGT, BWT, CWT, etu to improve code readability
2975        * [r1509] src/ifdhandler.c: T0_card_timeout(): declare EGT, WWT as
2976          double instead of int to have some precision We also calculate
2977          EGT and WWT in milliseconds instead of seconds
2978
29792005-05-04  Ludovic Rousseau
2980
2981        * [r1508] README, readers/supported_readers.txt: add SCM Micro SCR
2982          331-DI NTTCom in the "Should work but untested by me" list
2983        * [r1507] src/ifdhandler.c: IFDHCreateChannelByName(),
2984          T0_card_timeout(), T1_card_timeout(): also include other card
2985          parameters (TC1 for T=0, TC1 and CWI for T=1) in the timeout
2986          formula
2987        * [r1506] README, readers/supported_readers.txt: rename "Kobil KAAN
2988          mIDentity" in "Kobil mIDentity"
2989        * [r1505] src/ifdhandler.c: IFDHICCPresence(): add support of
2990          SCR331-DI NTTCom
2991         
2992          Thanks to Takuto Matsuu fro the patch
2993        * [r1504] src/ccid.h: #define SCR331DINTTCOM 0x04E65120
2994        * [r1503] readers/supported_readers.txt: add the manufacturer name
2995          in the reader name
2996
29972005-05-02  Ludovic Rousseau
2998
2999        * [r1496] src/ccid_serial.c: typo in the data rates list
3000        * [r1495] src/ifdhandler.c: T0_card_timeout()/T1_card_timeout():
3001          use ceil() to round the timeout
3002        * [r1494] src/ccid.c, src/ccid.h: ccid_error(): function is (const
3003          char *) instead of (char *) to avoid a "warning: passing arg 4 of
3004          `ccid_error' discards qualifiers from pointer target type" using
3005          gcc 3.4
3006        * [r1493] readers/CherryXX33.txt, readers/DellSCRK.txt,
3007          readers/GemPC433_SL.txt, readers/GemPCTwin.txt,
3008          readers/KAAN_SIM_III.txt: regenerate using the new parse command
3009        * [r1492] src/commands.c: CmdEscape(): replay the command if we
3010          receive STATUS_COMM_NAK
3011        * [r1491] src/ccid_serial.c: ReadSerial(): if we get a NAK we
3012          return STATUS_COMM_NAK to the above layer to replay the command
3013          instead of just restarting the read
3014        * [r1490] src/defs.h: add STATUS_COMM_NAK
3015        * [r1489] src/parse.c: display the clock frequencies supported by
3016          the reader
3017        * [r1488] src/parse.c: move the display of supported data rates
3018          after printing bNumDataRatesSupported info
3019        * [r1487] src/ifdhandler.c: IFDHSetProtocolParameters(): check if
3020          the baud rate is present in the baud rates list only if the list
3021          is present. Otherwise we use the old behavior.
3022        * [r1486] src/ccid_usb.c: get_data_rates(): if the reader do not
3023          support GET DATA RATES we return NULL instead of a manually
3024          constructed/fake list
3025        * [r1485] src/ccid_serial.c, src/ccid_usb.c: Open*ByName():
3026          initialise dwMaxDataRate field
3027        * [r1484] src/ccid.h: add dwMaxDataRate field (again)
3028        * [r1483] src/ccid_usb.c: get_data_rates(): check that the reader
3029          sends a DATA RATES list size multiple of 4 othewise it is an
3030          error
3031        * [r1482] src/parse.c: display the bit value of dwFeatures in the
3032          text message
3033        * [r1481] src/parse.c: test all the 4 bytes of dwFeatures against 0
3034          and not just the first one
3035        * [r1480] src/parse.c: do not display the list returned by GET DATA
3036          RATES if the list size is not a multiple of 4 (n % 4 != 0)
3037
30382005-04-27  Ludovic Rousseau
3039
3040        * [r1479] src/ccid_serial.c, src/ccid_usb.c: Open*ByName: do not
3041          initialise the now disappeared .dwMaxDataRate field
3042        * [r1478] src/ccid.h: _ccid_descriptor: remove the now useless
3043          dwMaxDataRate field
3044        * [r1477] src/ifdhandler.c: IFDHSetProtocolParameters(): we do not
3045          check if (card_baudrate <= ccid_desc->dwMaxDataRate) since
3046          find_baud_rate() will tell us if the speed is supported or not by
3047          the reader
3048        * [r1476] src/ccid_usb.c: get_data_rates(): if the CCID command GET
3049          DATA RATES is nto supported the array of supported rates contains
3050          only the default and max data rates
3051        * [r1475] src/ccid_usb.c: get_data_rates(): test if int_array is
3052          NULL (and not buffer)
3053        * [r1474] readers/Makefile.am: add the new or missing readers
3054        * [r1473] configure.in: version 0.9.4
3055        * [r1472] src/ccid_serial.c: OpenSerialByName(): inhibit the
3056          Plug-n-Play string by setting the RTS signal to low. Mainly
3057          useful for the GemPC Card (PCMCIA)
3058        * [r1471] readers/Verisign_secure_storage_token.txt: Verisign
3059          Secure Storage Token
3060        * [r1470] readers/Verisign_secure_token.txt: Verisign Secure Token
3061          (without mass memory)
3062        * [r1469] readers/supported_readers.txt: add Verisign Secure Token
3063          and VeriSign Secure Storage Token
3064        * [r1468] src/parse.c: display the supported data rates using the
3065          CCID command GET DATA RATES
3066        * [r1467] src/ccid_usb.c: get_data_rates(): use the real interface
3067          number instead of 0
3068        * [r1460] src/ccid_usb.c: get_data_rates(): buffer argument of
3069          usb_control_msg is (char *) and not (unsigned char *)
3070        * [r1459] src/ccid_usb.c: get_data_rates() returns an unsigned int
3071          [] (not just int [])
3072        * [r1458] src/ccid_serial.c: SerialDataRates[] is unsigned
3073
30742005-04-26  Ludovic Rousseau
3075
3076        * [r1454] src/openct/proto-t1.c: t1_xcv(): increase the read
3077          timeout if the card sends and WTX request
3078        * [r1453] src/ccid_serial.c, src/ccid_usb.c: use the calculated
3079          read timeout instead of a fixed value
3080        * [r1452] src/ifdhandler.c: calculate and store the read timeout
3081          according to the card ATR instead of using a fixed value of 60
3082          seconds
3083        * [r1451] src/ifdhandler.c: add T0_card_timeout() and
3084          T1_card_timeout()
3085        * [r1450] src/defs.h: /* Default communication read timeout in
3086          seconds */ #define DEFAULT_COM_READ_TIMEOUT 2
3087        * [r1449] src/ccid.h: struct _ccid_descriptor: add unsigned int
3088          readTimeout field
3089        * [r1448] src/ifdhandler.c: IFDHSetProtocolParameters(): only use a
3090          data rate supported by the reader in the PPS negociation,
3091          otherwise we stay at the default speed.
3092        * [r1447] src/ccid_serial.c: OpenSerialByName(): the reader does
3093          not support the Get Data Rates CCID function so the list of
3094          supported data rates is hard coded.
3095        * [r1446] src/ccid_usb.c: OpenUSBByName(): get the list of data
3096          rates the reader supports
3097         
3098          See 3.7.3 Get Data Rates (page 25) from CCID spec 1.00
3099        * [r1445] src/ccid.h: struct _ccid_descriptor: add unsigned int
3100          *arrayOfSupportedDataRates field
3101        * [r1444] src/ccid_serial.c: OpenSerialByName(): set card movement
3102          notification in synchronous mde
3103        * [r1443] configure.in: we need pcsc-lite 1.2.9-beta7 and not just
3104          beta5 since we use the new log API
3105        * [r1442] src/ifdhandler.c: extra_egt(): rewrite the function
3106          comment
3107        * [r1441] src/ifdhandler.c: extra_egt(): reuse the same baud rate
3108          calculation formula
3109        * [r1440] src/ifdhandler.c: extra_egt(): change two if() in one
3110        * [r1439] src/ifdhandler.c: change comments: TBi (i>2) is BWI/CWI
3111          not BWI/BCI
3112
31132005-04-25  Ludovic Rousseau
3114
3115        * [r1438] src/ifdhandler.c: extra_egt(): some (bogus) cards require
3116          an extra EGT but the ATR does not say so. We try to detect the
3117          bogus cards and set TC1=2
3118        * [r1437] src/ifdhandler.c: light code reformating
3119
31202005-04-22  Ludovic Rousseau
3121
3122        * [r1436] readers/supported_readers.txt: add Eutron SIM Pocket
3123          Combo
3124
31252005-04-21  Ludovic Rousseau
3126
3127        * [r1427] src/openct/checksum.c, src/openct/checksum.h,
3128          src/openct/proto-t1.h: #include <stdint.h> only if HAVE_STDINT_H
3129          is defined. Some old FreeBSD do not have stdint.h.
3130         
3131          Thanks to Tilman Linneweh for the patch
3132
31332005-04-13  Ludovic Rousseau
3134
3135        * [r1426] readers/SIM_Pocket_Combo.txt: Eutron SIM Pocket Combo
3136          (the reader is dual slot and is seen as two readers)
3137        * [r1425] readers/sid800.txt: RSA SecurID SID800 Hardware
3138          Authenticator
3139
31402005-04-12  Ludovic Rousseau
3141
3142        * [r1422] src/Info.plist: "Generic CCID reader" -> "Generic CCID
3143          driver"
3144
31452005-03-17  Ludovic Rousseau
3146
3147        * [r1411] src/ccid.c: ccid_error(): use log_msg() instead of
3148          debug_msg()
3149        * [r1410] src/debug.c: change debug_msg() in log_msg() and add the
3150          priority argument same for debug_xxd() changed in log_xxd()
3151         
3152          These functions are only used by the parse command and if the
3153          driver is not used with pcsclite
3154        * [r1409] src/debug.h: use pcsclite debuglog.h header file and use
3155          its Log?() macro instead of debug_msg().
3156         
3157          This adds color to the log messages because Log?() macros use
3158          log_msg() instead of the deprecated debug_msg() function.
3159        * [r1408] src/ifdhandler.c: init_driver(): use DEBUG_INFO2()
3160          instead of debug_msg()
3161        * [r1407] src/tokenparser.l: add "%option nounput" to avoid the
3162          compilation warning "`yyunput' defined but not used"
3163        * [r1406] src/towitoko/atr.c: ATR_GetDefaultProtocol(): the message
3164          "no default protocol found in ATR. Using T=0" is not CRITICAL but
3165          INFO only
3166        * [r1405] configure.in: store & restore the value of LIBS around
3167          the macro AC_CHECK_LIB(pcsclite,...) to avoid adding an automatic
3168          -lpcsclite to LIBS
3169        * [r1404] configure.in: do not check for SCardEstablishContext is
3170          the user does NOT want to use pcsc-lite (with --disable-pcsclite)
3171
31722005-03-14  Ludovic Rousseau
3173
3174        * [r1400] README: release 0.9.3
3175        * [r1399] COPYING, README, src/ccid.c, src/ccid.h,
3176          src/ccid_ifdhandler.h, src/ccid_serial.c, src/ccid_serial.h,
3177          src/ccid_usb.c, src/ccid_usb.h, src/commands.c, src/commands.h,
3178          src/debug.c, src/debug.h, src/defs.h, src/ifdhandler.c,
3179          src/openct/checksum.h, src/openct/proto-t1.h, src/utils.c,
3180          src/utils.h: change licence from GNU GPL to GNU LGPL
3181        * [r1398] configure.in: version 0.9.3
3182
31832005-03-04  Ludovic Rousseau
3184
3185        * [r1397] readers/KAAN_SIM_III.txt, readers/mIDentity.txt: Add KAAN
3186          SIM III and KAAN mIDentity
3187        * [r1396] config.h.in: add HAVE_LIBPCSCLITE
3188        * [r1395] configure.in: use $PCSC_LIBS instead of $PCSCLITE_LIBS
3189          since we used PKG_CHECK_MODULES(PCSC, ...)
3190        * [r1394] README, readers/supported_readers.txt: add Kobil KAAN
3191          mIDentity in supported reader list
3192        * [r1393] README, readers/supported_readers.txt: add Kobil KAAN SIM
3193          III in supported readers list
3194        * [r1392] README, readers/supported_readers.txt: add SCR 3310
3195        * [r1391] readers/SCR3310.txt: SCR3310
3196
31972005-02-28  Ludovic Rousseau
3198
3199        * [r1368] src/ifdhandler.c, src/towitoko/atr.c: use ATR_t instead
3200          of ATR
3201        * [r1367] src/towitoko/atr.h: rename ATR struct to ATR_t do not
3202          conflict with ATR field defined by PCSC/ifdhandler.h. This allows
3203          compilation using tcc (Tiny C Compiler)
3204
32052005-02-27  Ludovic Rousseau
3206
3207        * [r1361] configure.in: check that we can link with libpcsclite
3208          needed by examples/scardcontrol.c
3209        * [r1360] configure.in: exits with an error if usbdropdir is not
3210          defined
3211        * [r1359] configure.in: if /usr/local/lib/pkgconfig/libpcsclite.pc
3212          exists (default pcsc-lite configuration) we exit telling the user
3213          to use PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure
3214        * [r1358] configure.in: do not check for pkg-config since we can do
3215          without it
3216
32172005-02-25  Ludovic Rousseau
3218
3219        * [r1356] readers/CardMan3121.txt, readers/CherryXX33.txt,
3220          readers/CherryXX44.txt, readers/GemPC433_SL.txt,
3221          readers/KAAN_Advanced.txt, readers/KAAN_Base.txt,
3222          readers/SCR331-DI.txt, readers/SCR331.txt, readers/SCR335.txt,
3223          readers/SPR532.txt: typo: correct ICC by CCID where needed
3224        * [r1355] src/parse.c: typo: used "ICC" instead of "CCID"
3225        * [r1354] src/ifdhandler.c: IFDHSetProtocolParameters(): return
3226          immediately if the reader has the bit CCID_CLASS_AUTO_PPS_PROP
3227          set since he will perform PPS and SetParameters himself
3228        * [r1353] src/ccid.h: #define CCID_CLASS_AUTO_PPS_PROP 0x00000040
3229        * [r1352] src/ifdhandler.c: IFDHSetProtocolParameters(): calculate
3230          the value of pps[2] (TA1) even if CCID_CLASS_AUTO_PPS_CUR bit is
3231          set and no PPS will be generated by the driver since this value
3232          is also used later by the SetParameters()
3233        * [r1351] src/ifdhandler.c: IFDHSetProtocolParameters(): use
3234          "card_baudrate <= ccid_desc->dwMaxDataRate" instead of
3235          "card_baudrate < ccid_desc->dwMaxDataRate" to not miss the
3236          maximum speed value
3237        * [r1350] Makefile.am: we do not need to distribute mkinstalldirs
3238        * [r1349] configure.in: define WITHOUT_PCSC=false when pcsclite
3239          _is_ used
3240
32412005-02-23  Ludovic Rousseau
3242
3243        * [r1346] examples/scardcontrol.c: #include <sys/time.h> instead of
3244          <time.h> to get correct definition of struct timeval under Mac OS
3245          X
3246        * [r1343] src/debug.c: if you use --disable-pcsclite and do _not_
3247          want to see the logs sent to stderr just #undef LOG_TO_STDERR
3248        * [r1342] configure.in, src/Makefile.am: if --disable-pcsclite is
3249          used we must link the library with debug.c to provide debug_msg()
3250        * [r1341] examples/Makefile.am: use @PCSC_CFLAGS@ and @PCSC_LIBS@
3251
32522005-02-21  Ludovic Rousseau
3253
3254        * [r1330] src/ccid_serial.c: OpenSerialByName(): use tx_buffer[] =
3255          { 0x02 } insead of "\x02" since we want 1 byte only and not a
3256          null-terminated string
3257        * [r1329] src/Makefile.am: use @PCSC_CFLAGS@
3258        * [r1328] configure.in: use pkg-config(1) to find everything
3259          related to pcsc-lite
3260         
3261          if you installed pcsc-lite in /usr/local you may use $
3262          PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure
3263         
3264          if you do not have pkg-config installed you may use $
3265          CFLAGS=-I/usr/local/include/PCSC ./configure
3266
32672005-02-20  Ludovic Rousseau
3268
3269        * [r1327] src/ccid_usb.c: add an "interface field" in _usbDevice.
3270          This value is set in OpenUSB() and used in CloseUSB().
3271         
3272          The struct usb_device structure is half "corrupted" after the USB
3273          device is removed and we wanted to use it when when closing the
3274          driver after a reader removal. This caused a crash with libusb
3275          0.1.10.
3276        * [r1326] README: add Kobil KAAN Base & KAAN Advanced readers in
3277          the supported list
3278        * [r1325] src/ccid_usb.c: Bogus_firmwares[]: add Kobil KAAN Base &
3279          KAAN Advanced readers
3280        * [r1324] readers/supported_readers.txt: add Kobil KAAN Base & KAAN
3281          Advanced readers
3282        * [r1323] readers/KAAN_Advanced.txt, readers/KAAN_Base.txt:
3283          firmware 0.37
3284
32852005-02-04  Ludovic Rousseau
3286
3287        * [r1322] readers/ACR38.txt: new firmware (but still with version
3288          1.0) with the wMaxPacketSize bug removed
3289
32902005-02-02  Ludovic Rousseau
3291
3292        * [r1321] README: move the ACR 38 from Unsupported to Supported
3293          list
3294
32952005-01-26  Ludovic Rousseau
3296
3297        * [r1319] readers/Makefile.am: add the new or missing readers
3298        * [r1318] readers/CherryXX44.txt, readers/KAAN_Advanced.txt,
3299          readers/KAAN_Base.txt: new readers descriptions
3300
33012005-01-20  Ludovic Rousseau
3302
3303        * [r1317] README: add Cherry XX44 keyboard (SmartBoard G83-6744)
3304        * [r1316] readers/supported_readers.txt: add Cherry XX44
3305          (SmartBoard G83-6744)
3306
33072005-01-13  Ludovic Rousseau
3308
3309        * [r1314] README: move the SCM Micro readers from unsupported to
3310          supported list and document how to upgrade the firmwares
3311         
3312          Thanks to Torsten Maykranz for his support
3313        * [r1313] readers/SCR335.txt: New model with firmware 5.14 (instead
3314          of 4.16)
3315        * [r1312] src/ccid_usb.c: Bogus_firmwares[]: the 3 SMC readers had
3316          the same (cut-n-paste) USB identification
3317        * [r1311] src/commands.c: CmdXfrBlockCHAR_T0(): move a variable
3318          declaration at the beginning of the function since ISO C89
3319          forbids mixed declarations and code
3320        * [r1310] src/commands.c: SecurePIN(): proprietary command to add
3321          the PIN code in the APDU without any padding (this is not
3322          possible with the CCID specs).
3323         
3324          Thanks to Martin Paljak for the patch.
3325        * [r1309] src/ccid.h: define SPR532 USB identification
3326
33272005-01-11  Ludovic Rousseau
3328
3329        * [r1302] configure.in: typo: shat -> what
3330
33312005-01-09  Ludovic Rousseau
3332
3333        * [r1301] src/commands.c: SecurePIN(), CCID_Transmit(),
3334          SetParameters(): check that the user provided command is not too
3335          large (avoid a possible buffer overflow)
3336        * [r1300] examples/scardcontrol.c: The APDU now comes _after_ the
3337          CCID structure as described the CCID specifications.
3338        * [r1299] src/commands.c: SecurePIN(): directly use the user buffer
3339          passed instead of reversing the APDU/CCID structure. It is now as
3340          described in the CCID specifications.
3341         
3342          Thanks to Martin Paljak. I was wrong.
3343
33442004-12-19  Ludovic Rousseau
3345
3346        * [r1298] src/ccid_usb.c: SPR 532 firmware previous to 5.04 is
3347          bogus regarding min/max pin lengths
3348        * [r1297] readers/SPR532.txt: update with firmware 5.04
3349
33502004-10-27  Ludovic Rousseau
3351
3352        * [r1292] src/ccid_serial.c: OpenSerialByName(): use %s instead of
3353          %d for dev_name
3354
33552004-10-20  Ludovic Rousseau
3356
3357        * [r1290] examples/scardcontrol.c: set wPINMaxExtraDigit: set max
3358          to 8 (instead of 4) to differentiate it from min (set to 4)
3359        * [r1289] examples/scardcontrol.c: in wPINMaxExtraDigit the bytes
3360          order is max,min and not min,max. The comments were wrong
3361
33622004-10-19  Ludovic Rousseau
3363
3364        * [r1288] readers/supported_readers.txt: add Oz776
3365        * [r1287] src/Info.plist, src/ccid_ifdhandler.h, src/ccid_usb.c:
3366          check firmware version to avoid firmwares with bugs. You can
3367          still use a bigus firmware by setting
3368          DRIVER_OPTION_USE_BOGUS_FIRMWARE in Info.plist
3369        * [r1286] src/commands.c, src/commands.h, src/openct/proto-t1.c,
3370          src/towitoko/pps.c: Add support of character level communication
3371          (CCID_CLASS_CHARACTER).
3372         
3373          Thanks to Jeffrey Dai
3374
33752004-10-14  Ludovic Rousseau
3376
3377        * [r1285] readers/DellSCRK.txt: add idVendor & idProduct using the
3378          new parse command
3379
33802004-10-07  Ludovic Rousseau
3381
3382        * [r1284] readers/Makefile.am: reorganize the list and add
3383          Oz776S.txt
3384        * [r1283] readers/Oz776S.txt: O2Micro Oz776S USB Hub smartcard
3385          reader
3386        * [r1282] readers/SCR331-DI.txt, readers/SCR335.txt,
3387          readers/SPR532.txt: add idVendor & idProduct using the new parse
3388          command
3389        * [r1281] src/ccid_usb.c, src/ccid_usb.h: the first argument of
3390          get_desc() is lun instead of channel and the function uses
3391          LunToReaderIndex() to get the reader index
3392        * [r1280] src/parse.c: use lun instead of channel as first argument
3393          to get_desc() and use the returned value to detect an error
3394        * [r1279] readers/SCR331.txt: add idVendor & idProduct using the
3395          new parse command
3396
33972004-10-06  Ludovic Rousseau
3398
3399        * [r1278] readers/ACR38.txt, readers/CardMan3121.txt,
3400          readers/CherryXX33.txt, readers/DellSK-3106.txt,
3401          readers/GemPC433_SL.txt, readers/GemPCKey.txt,
3402          readers/GemPCTwin.txt, readers/LTC31.txt: add idVendor &
3403          idProduct using the new parse command
3404        * [r1277] src/parse.c: display idVendor and idProduct
3405        * [r1276] src/parse.c: display USB bcdDevice field. Is it the
3406          device firmware release?
3407        * [r1275] src/parse.c: add support of "Character level exchange"
3408
34092004-10-04  Ludovic Rousseau
3410
3411        * [r1265] configure.in: do not redefine PKG_CONFIG_PATH when
3412          checking the pcsc-lite version since the variable is already
3413          defined a few lines above
3414
34152004-10-03  Ludovic Rousseau
3416
3417        * [r1263] examples/scardcontrol.c: add "THIS PROGRAM IS NOT
3418          DESIGNED AS A TESTING TOOL!
3419
34202004-09-30  Ludovic Rousseau
3421
3422        * [r1261] src/ifdhandler.c: mask bStatus to get the ICC state since
3423          bSatus may also indicate an error in b6-b7
3424        * [r1260] src/ccid.h: #define CCID_CLASS_CHARACTER
3425        * [r1259] src/ccid.h: define OZ776 USB identification
3426        * [r1258] src/ccid.h: define CCID_ICC_STATUS_MASK and status states
3427        * [r1257] src/commands.c: CmdGetSlotStatus(): card absent or mute
3428          is not an communication error (even if the CCID command result
3429          indicates a command failure)
3430        * [r1256] src/ccid_usb.c: get_ccid_usb_interface(): the O2Micro
3431          OZ776S reader has a wrong USB descriptor. The extra[] field is
3432          associated with the last endpoint instead of the main USB
3433          descriptor.
3434
34352004-09-29  Ludovic Rousseau
3436
3437        * [r1254] examples/Makefile.am, src/Makefile.am: use @AM_CPPFLAGS@
3438          (defined by configure.in) instead of `pkg-config libpcsclite
3439          --cflags` since PKG_CONFIG_PATH may not be correct here
3440        * [r1253] configure.in: define AM_CPPFLAGS=`pkg-config libpcsclite
3441          --cflags` here since we also defined/exported a "valid"
3442          PKG_CONFIG_PATH
3443        * [r1252] src/Makefile.am: do not define parse_CFLAGS since
3444          AM_CPPFLAGS is already defined with the same value
3445        * [r1251] configure.in: try to find pkg-config files in
3446          /usr/local/lib/pkgconfig since pcsc-lite installs them in this
3447          directory by default
3448
34492004-09-08  Ludovic Rousseau
3450
3451        * [r1228] src/ccid.c: ccid_open_hack(): do not use a null
3452          terminated C string for the TPDU->APDU switch command since the
3453          command is NOT a C string
3454        * [r1227] src/commands.c: CmdPowerOn(): do not use a null
3455          terminated C string for the EMV->ISO switch command since the
3456          command is NOT a C string
3457        * [r1226] src/commands.c: switch the Cherry xx33 reader in ISO mode
3458          if power up in EMV mode fails. Thanks to Stï¿œphane Durand for the
3459          bug report.
3460        * [r1225] src/ccid.h: #define CHERRYXX33 0x046A0005
3461
34622004-09-03  Ludovic Rousseau
3463
3464        * [r1213] src/ifdhandler.c: IFDHSetProtocolParameters(): return the
3465          result value of SetParameters() in case of error instead of
3466          always IFD_COMMUNICATION_ERROR.
3467         
3468          This will allow to return IFD_NOT_SUPPORTED in some cases and
3469          avoid a PTS negociation failure (and card ignored) in pcscd.
3470        * [r1212] src/commands.c: SetParameters(): returns
3471          IFD_NOT_SUPPORTED if the CCID error is "command not supported".
3472
34732004-08-24  Ludovic Rousseau
3474
3475        * [r1196] src/ifdhandler.c: IFDHSetProtocolParameters(): the
3476          bmTCCKST bits shall be _set_ not cleared
3477        * [r1195] src/ifdhandler.c: IFDHSetProtocolParameters(): we shall
3478          indicate the T=1 checksum used (LRC/CRC) in the SetParameters()
3479          command
3480        * [r1194] src/openct/proto-t1.c: t1_negociate_ifsd: the frame size
3481          is 5 only for LRC checksum. The correct size is (4 +
3482          t1->rc_bytes)
3483        * [r1193] src/utils.c: ReleaseReaderIndex: return 0 since the
3484          function is not void ()
3485
34862004-08-17  Ludovic Rousseau
3487
3488        * [r1189] src/Info.plist: use the official doctype, public and
3489          system ids. Thanks to Ville Skyttï¿œ and OpenCT
3490
34912004-08-15  Ludovic Rousseau
3492
3493        * [r1186] README: release 0.9.2
3494        * [r1185] examples/Makefile.am, src/Makefile.am: use AM_CPPFLAGS =
3495          `pkg-config libpcsclite --cflags`
3496        * [r1184] config.h.in: no need to define HAVE_PCSC_IFDHANDLER_H
3497          (the check section changed in configure.in)
3498        * [r1183] configure.in: use `pkg-config libpcsclite --cflags` to
3499          locate ifdhandler.h and do not use PCSC/ifdhandler.h but just
3500          ifdhandler.h
3501
35022004-08-10  Ludovic Rousseau
3503
3504        * [r1165] README: place the "Known problems" near the affected
3505          reader and not in a independent section for clarification
3506
35072004-08-06  Ludovic Rousseau
3508
3509        * [r1160] src/parse.c: try to IFDHCloseChannel() only if we opened
3510          at least one reader
3511        * [r1157] src/ccid.c: ccid_open_hack(): update the hack for the
3512          SCR331-DI contactless now we use multi-slots
3513        * [r1156] src/ifdhandler.c: IFDHICCPresence(): periodic debug
3514          message indicating the card presence/absence
3515        * [r1155] src/ifdhandler.c: use a much cleaner way to check
3516          presence of a contactless card with a multislot SCR331-DI reader
3517        * [r1154] src/ifdhandler.c: IFDHICCPresence(): call
3518          get_ccid_descriptor() on reader_index instead of Lun
3519        * [r1153] src/ifdhandler.c: FDHGetCapabilities() tag
3520          TAG_IFD_SLOT_THREAD_SAFE: Can NOT talk to multiple slots at the
3521          same time (at least until it is fully validated)
3522        * [r1152] src/ifdhandler.c:
3523          IFDHCreateChannel()/IFDHCreateChannelByName(): if the OpenPort()
3524          call fails we ReleaseReaderIndex() and do not call
3525          ccid_open_hack()
3526        * [r1151] src/ccid_usb.c: for multi-slots readers
3527          IFDHCreateChannel*()/OpenUSB is called for each slot. If we are
3528          opening a new slot of an already opened reader we reuse the same
3529          data (same libusb structures) and share the same pbSeq.
3530        * [r1150] src/commands.c: use (*ccid_descriptor->pbSeq)++ instead
3531          of ccid_descriptor->bSeq++
3532        * [r1149] src/ccid_serial.c, src/ccid_usb.c: use pbSeq instead of
3533          bSeq
3534        * [r1148] src/ccid.h: replace "unsigned char bSeq" by "unsigned
3535          char *pbSeq" so that two slots of a same reader can share the
3536          same sequence number
3537        * [r1147] src/ccid_serial.c: use a dynamic timeout when reading the
3538          serial port.
3539         
3540          The first timeout use when detecting the reader is 2 seconds to
3541          not wait too long if no reader is connected. Later timeouts are
3542          set to 1 minute to allow long time APDU.
3543
35442004-08-04  Ludovic Rousseau
3545
3546        * [r1146] src/ccid.h, src/ccid_serial.c, src/ccid_usb.c,
3547          src/ifdhandler.c: remove defaultFeatures management (was used for
3548          SCR331-DI hack)
3549        * [r1145] src/Makefile.am: add "parse_CFLAGS = `pkg-config
3550          libpcsclite --cflags`" so that parse.c can find and use
3551          <ifdhandler.h>
3552        * [r1144] src/parse.c: do not use OpenUSB/CloseUSB but
3553          IFDHCreateChannel/IFDHCloseChannel to use the ReaderIndex[]
3554          mechanism
3555        * [r1143] src/utils.c: update copyright date (add 2004)
3556        * [r1142] src/utils.c: LunToReaderIndex(): debug message when Lun
3557          is not found
3558        * [r1141] src/utils.c: GetNewReaderIndex(): debug message when
3559          ReaderIndex[] is full
3560        * [r1140] src/utils.c: GetNewReaderIndex(): store Lun in the first
3561          free ReaderIndex[] entry
3562        * [r1139] src/towitoko/pps.c: typo: Receivig -> Receiving
3563        * [r1138] src/towitoko/pps.c: PPS_Exchange(): do not recalculate
3564          the PPS length from the received PPS but take it from the number
3565          of bytes actually received (it may not be a PPS)
3566
35672004-07-28  Ludovic Rousseau
3568
3569        * [r1107] src/ifdhandler.c: use reader_index instead of lun as
3570          reader identification allocate (in IFDHCreateChannel*) and
3571          release (in IFDHCloseChannel)
3572        * [r1106] src/ccid.c, src/ccid.h, src/ccid_ifdhandler.h,
3573          src/ccid_serial.c, src/ccid_serial.h, src/ccid_usb.c,
3574          src/ccid_usb.h, src/commands.c, src/commands.h: use reader_index
3575          instead of lun as reader identification
3576        * [r1105] src/utils.c, src/utils.h: use a more complex Lun ->
3577          reader transformation (Lun>>16) is not usable for multi-slots
3578          readers
3579
35802004-07-27  Ludovic Rousseau
3581
3582        * [r1103] src/openct/proto-t1.c: this code fails EMV test 1771-4
3583          (should be a residue)
3584
35852004-07-26  Ludovic Rousseau
3586
3587        * [r1102] src/openct/proto-t1.c: - debug some cases - add ISO
3588          7816-3 rule number in comments
3589        * [r1101] src/ccid_serial.c, src/ccid_usb.c: initialise
3590          ccid.defaultFeatures field
3591
35922004-07-22  Ludovic Rousseau
3593
3594        * [r1096] configure.in: use pkg-config to test the release version
3595          of pcsc-lite
3596
35972004-07-21  Ludovic Rousseau
3598
3599        * [r1095] configure.in: version 0.9.2
3600        * [r1094] src/ifdhandler.c: hack to support the SCR331-DI
3601          contactless interface
3602        * [r1093] src/ccid.c: ccid_open_hack(): detect and activate the
3603          contactless interface of the SCR331-DI
3604        * [r1092] src/commands.c: use bCurrentSlotIndex as the slot number
3605          in the CCID commands (instead of 0)
3606        * [r1091] src/ccid_serial.c, src/ccid_usb.c: initialise
3607          bMaxSlotIndex and ccid.bCurrentSlotIndex fields
3608        * [r1090] src/ccid.h: add defaultFeatures field for multislot
3609          readers with different dwFeatures for each slot.
3610        * [r1089] src/ccid.h: add SCR331DI identification
3611        * [r1088] src/ccid.h: add bMaxSlotIndex and bCurrentSlotIndex
3612          fields to support multislot readers (one USB device with two or
3613          more card readers)
3614
36152004-07-20  Ludovic Rousseau
3616
3617        * [r1087] src/openct/proto-t1.c: remove "|| sent_length" in "if
3618          (retries == 0 || sent_length)" since it is an OpenCT code that
3619          should not be needed with the new automata.
3620        * [r1086] src/openct/proto-t1.c: update the copyright, add my name
3621          to reflect the same change in OpenCT
3622
36232004-07-19  Ludovic Rousseau
3624
3625        * [r1085] src/ifdhandler.c: update IFDHControl() prototype to
3626          replace LPVOID by PUCHAR (prototype changed in
3627          pcsc-lite-1.2.9-beta5)
3628        * [r1084] src/ifdhandler.c, src/openct/proto-t1.c,
3629          src/openct/proto-t1.h: BUG: I forgot to initialise the t1.lun
3630          field. It failed to work with more than one readers and a T=1
3631          card in a TPDU reader.
3632        * [r1083] src/openct/proto-t1.c: in resync: we set retries = 1
3633          since when we return in the loop we have retries--; Without this
3634          retries goes negative and the test 'if (retries == 0)' will not
3635          become true again before a looooong time.
3636
36372004-07-16  Ludovic Rousseau
3638
3639        * [r1079] src/ccid_usb.c: OpenUSBByName(): use base 0 instead of 16
3640          in strtoul() so that you can express the decimal value 15 as: 15
3641          (decimal), 0xF (hex) or 017 (octal).
3642         
3643          It is not really needed since the reader descriptions in
3644          Info.plist are all in hex.
3645        * [r1078] src/ifdhandler.c: init_driver(): use base 0 instead of 16
3646          in strtoul() so that you can express the decimal value 15 as: 15
3647          (decimal), 0xF (hex) or 017 (octal)
3648        * [r1077] src/ccid_ifdhandler.h, src/ccid_serial.c, src/ccid_usb.c,
3649          src/ifdhandler.c, src/parse.c, src/utils.c: rename
3650          PCSCLITE_MAX_READERS in CCID_DRIVER_MAX_READERS
3651         
3652          This value is not defined by pcsc-lite but is internal to the
3653          CCID driver. By default pcsc-lite supports the same number of
3654          readers (16).
3655        * [r1076] src/commands.c: BUG: CmdPowerOn(): use memmove() instead
3656          of memcpy() to copy the ATR bytes since the source end
3657          destination buffers (with a more than 10 bytes long ATR)
3658          overlaps.
3659         
3660          Bug spotted by splint http://www.splint.org/
3661
36622004-07-15  Ludovic Rousseau
3663
3664        * [r1075] src/openct/proto-t1.h: use "uint8_t *" instead of
3665          "unsigned char *" in the prototype of t1_state_t.checksum field.
3666        * [r1074] src/tokenparser.l: initialise pcDesiredKey to NULL
3667          instead of 0
3668        * [r1073] src/commands.c: BUG in CmdXfrBlockTPDU_T1(): the
3669          t1_transceive() returned value was stored in an unsigned int and
3670          tested if < 0 (error case). Of course the test was never true.
3671        * [r1071] src/openct/proto-t1.c: remove a useless break; after a
3672          goto;
3673        * [r1070] src/openct/proto-t1.c, src/openct/proto-t1.h: in
3674          t1_transceive() and t1_negociate_ifsd() dad argument is unsigned.
3675        * [r1069] src/openct/checksum.h: replace "unsigned char *" by
3676          "uint8_t *" to use the exact same prototype as in the functions
3677          definition
3678        * [r1068] src/commands.c, src/commands.h: i2dw() is not used
3679          outside commands.c so declare it static
3680        * [r1067] examples/scardcontrol.c: allow splint to continue parsing
3681          after use of type fd_set
3682        * [r1066] src/commands.c, src/commands.h: CmdXfrBlockTPDU_T0() and
3683          CmdXfrBlockTPDU_T1() are internal functions so declare them
3684          static
3685        * [r1065] src/towitoko/atr.c: atr tables are internal only so
3686          declare them static
3687        * [r1064] src/openct/proto-t1.c: define internal functions as
3688          static
3689        * [r1063] src/openct/buffer.c, src/openct/buffer.h: remove unused
3690          functions
3691
36922004-07-10  Ludovic Rousseau
3693
3694        * [r1062] src/openct/proto-t1.c: change "previous_block[1]" in
3695          "previous_block[PCB]"
3696        * [r1061] src/openct/proto-t1.c: remove unused struct
3697          ifd_protocol_ops
3698        * [r1060] src/openct/proto-t1.c, src/openct/proto-t1.h:
3699          IFD_PROTOCOL_MORE -> IFD_PROTOCOL_T1_MORE IFD_PROTOCOL_STATE ->
3700          IFD_PROTOCOL_T1_STATE renamed to be in line with OpenCT
3701
37022004-07-09  Ludovic Rousseau
3703
3704        * [r1059] examples/scardcontrol.c, src/ifdhandler.c, src/parse.c:
3705          explicitely cast the returned value as (void) if we don't use it
3706        * [r1058] src/ifdhandler.c: IFDHSetProtocolParameters(): test the
3707          return value of SetParameters()
3708        * [r1057] src/parse.c: ccid_parse_interface_descriptor() is now
3709          static
3710        * [r1056] src/parse.c: make channel variable (unsigned int) instead
3711          of (int)
3712        * [r1055] src/parse.c: include <sys/types.h> so splint can parse
3713          the file
3714        * [r1054] src/ccid_serial.c, src/ccid_usb.c, src/ccid_usb.h: mark
3715          potentially null values as /*@null@*/ for splint
3716        * [r1053] src/ccid_serial.c, src/ccid_usb.c, src/ifdhandler.c,
3717          src/openct/proto-t1.c, src/parse.c: mark unused arguments as
3718          /*@unused@*/ for splint
3719        * [r1052] src/ccid_usb.c: include <sys/types.h> so splint can parse
3720          the file
3721        * [r1051] src/ccid.c: the buffer var_text[] was, in fact, used
3722          outside its declaration
3723        * [r1050] src/ccid_serial.c, src/ccid_serial.h: ReadChunk() and
3724          get_bytes() are internal use in ccid_serial.c so declare them
3725          static
3726        * [r1049] src/ccid_serial.c, src/ccid_usb.c: lun is (unsigned int)
3727          so reader = LunToReaderIndex(lun) is also (unsigned int)
3728        * [r1048] src/ccid_serial.c: OpenSerialByName(): arguments of
3729          CmdEscape() are unsigned
3730        * [r1047] src/ccid_serial.c: replace "121234" by "123456" to make
3731          it more clear it is a memory reservation for 6 characters
3732        * [r1046] src/ccid_serial.c: remove a unneeded cast in (int)lun
3733        * [r1045] src/ccid_serial.c: allow splint to continue parsing after
3734          use of type fd_set
3735        * [r1044] src/ccid_serial.c: ReadSerial(): the unknown card
3736          movement byte is in "c" not "buffer[3]"
3737        * [r1043] src/ccid.c, src/ccid.h, src/ccid_ifdhandler.h,
3738          src/ccid_serial.c, src/ccid_serial.h, src/ccid_usb.c,
3739          src/ccid_usb.h, src/commands.c, src/commands.h, src/ifdhandler.c:
3740          lun is (unsigned int) instead of (int)
3741         
3742          Avoid a warning by splint in #define LunToReaderIndex(Lun)
3743          (Lun>>16) Left operand of >> may be negative (int): lun >> 16
3744
37452004-07-02  Ludovic Rousseau
3746
3747        * [r1023] src/Info.plist, src/create_Info_plist.pl: replace VENDOR
3748          pattern by MAGIC_VENDOR since we also have a VENDOR in
3749          IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE and then a collision.
3750         
3751          same change for PRODUCT and FRIENDLYNAME to be homogenous.
3752        * [r1022] src/ccid_serial.c: OpenSerialByName(): perform a command
3753          (get the reader firmware) to be sure a GemPC Twin (serial or
3754          pcmcia) reader is connected
3755        * [r1021] src/openct/README: present where the files come from and
3756          what I did
3757
37582004-07-01  Ludovic Rousseau
3759
3760        * [r1019] configure.in: version 0.9.1
3761        * [r1018] README: release 0.9.1
3762        * [r1017] src/openct/proto-t1.h: #define IFD_PARITY_ERROR
3763        * [r1015] README: release 0.9.0
3764
37652004-06-30  Ludovic Rousseau
3766
3767        * [r1014] examples/scardcontrol.c: correct a signedness issue
3768        * [r1013] src, src/.cvsignore: rename tokenparser_macosx.? in
3769          tokenparser_fake.?
3770        * [r1012] ., .cvsignore: add build-stamp and configure-stamp
3771        * [r1011] examples, examples/.cvsignore: ignore temporary files
3772        * [r1010] src/towitoko/COPYING: LGPL licence
3773        * [r1009] configure.in: version 0.9.0
3774        * [r1008] src/towitoko/pps.c: PPS_Match() was wrong when the
3775          confirmation is shorter than the request
3776        * [r1007] src/towitoko/pps.c, src/towitoko/pps.h: PPS_Exchange()
3777          has a new argument (unsigned char *pps1) which is the PPS1
3778          returned by the card (TA1 the card wants to use)
3779        * [r1006] src/towitoko/pps.c: CCID_Transmit() now uses a 4th
3780          argument (unsigned char bBWI)
3781        * [r1005] src/towitoko/pps.c, src/towitoko/pps.h: move macros
3782          PPS_HAS_PPS?() from pps.c to pps.h
3783        * [r1004] src/towitoko/atr.c, src/towitoko/atr.h: add
3784          ATR_GetDefaultProtocol() function
3785        * [r1003] src/towitoko/atr.c, src/towitoko/atr.h: remove unused
3786          functions
3787        * [r1002] src/towitoko/atr.c: the atr_f_table[] and atr_d_table[]
3788          tables were partly wrong
3789        * [r1001] src/towitoko/README: - update the text - the function
3790          ATR_GetDefaultProtocol() is mine (Ludovic Rousseau)
3791        * [r1000] src/towitoko/defines.h: remove MIN() and MAX()
3792          definitions
3793        * [r999] src/ifdhandler.c: if DEBUG_LEVEL_PERIODIC is not set we
3794          temporaily remove DEBUG_LEVEL_COMM in IFDHICCPresence() to avoid
3795          having the low level debug every time pcscd test the card
3796          presence
3797        * [r998] src/ifdhandler.c: - removed CardUp() and CardDown() - all
3798          the reader initialisation/negotiation is now done in
3799          IFDHSetProtocolParameters() (that's why you need
3800          pcsc-lite-1.2.9beta3)
3801        * [r997] src/utils.c: pcsclite.h moved in PCSC/
3802        * [r996] src/defs.h: the t1 field in struct CCID_DESC changed from
3803          Protocol_T1 (towitiko) to t1_state_t (openct)
3804        * [r995] src/debug.h: we do not need to have PACKAGE defined (I do
3805          not remember what it was used for)
3806        * [r994] src/commands.c: CmdXfrBlockTPDU_T1(): use the T=1 TPDU
3807          layer from opensc/ instead of towitoko/
3808        * [r993] src/commands.c: CCID_Receive() returns IFD_PARITY_ERROR if
3809          the error returned by the reader is 0xFD (parity error) and
3810          IFD_COMMUNICATION_ERROR otherwise (so that the T=1 TPDU layer can
3811          recover the error)
3812        * [r992] src/commands.c, src/commands.h: CCID_Transmit() now has a
3813          new "unsigned char bBWI" argument
3814        * [r991] src/commands.c: CmdPowerOn(): add a mechanism to allow
3815          power on at 1.8V, 3V and then 5V as specified by ISO 7816. We
3816          still use 5V for now to avoid problems with non ISO compliant
3817          cards
3818        * [r990] src/commands.c: add __FUNCTION__ as argument to
3819          ccid_error()
3820        * [r989] src/ccid.c, src/ccid.h: ccid_error() now also has a "char
3821          *function" argument to log the name of the function in which the
3822          error occured
3823        * [r988] src/Makefile.am: - rename protocol_t1/ in towitoko/ to
3824          reflect the project the code comes from - remove the now useless
3825          files from towitoko/ and add the files from openct/
3826        * [r987] src/towitoko/apdu.h, src/towitoko/protocol_t1.c,
3827          src/towitoko/protocol_t1.h, src/towitoko/t1_block.c,
3828          src/towitoko/t1_block.h: remove these files since I now use the
3829          T=1 TPDU code from OpenCT
3830        * [r986] src/openct, src/openct/LICENSE, src/openct/buffer.c,
3831          src/openct/buffer.h, src/openct/checksum.c,
3832          src/openct/checksum.h, src/openct/proto-t1.c,
3833          src/openct/proto-t1.h: use T=1 TPDU code from the OpenCT project
3834          <http://www.opensc.org/>
3835         
3836          The state automata was greatly improved to manage "all" the
3837          possible errors cases.
3838        * [r985] src/Info.plist: document the possible values for
3839          ifdLogLevel and ifdDriverOptions
3840
38412004-06-23  Ludovic Rousseau
3842
3843        * [r972] examples/scardcontrol.c: - send Select DF and Select EF
3844          APDU before Verify PIN - read stdin (consume the "*" fake keys)
3845          if the pinpad is on a keyboard
3846        * [r971] configure.in: check for the presence of PCSC/ifdhandler.h
3847          instead of ifdhandler.h
3848        * [r970] config.h.in: HAVE_IFDHANDLER_H is renamed
3849          HAVE_PCSC_IFDHANDLER_H
3850        * [r969] README: add info for: - Cherry XX33 keyboard - Dell
3851          keyboard SK-3106 - Dell smart card reader keyboard
3852         
3853          Move some readers in "Unsupported or partly supported CCID
3854          readers:" - C3PO LTC31 - SCM Micro SCR 331 - SCM Micro SCR 335 -
3855          SCM Micro SPR 532
3856
38572004-06-22  Ludovic Rousseau
3858
3859        * [r966] Makefile.am: ChangeLog is not a .PHONY target but a real
3860          file
3861
38622004-06-13  Ludovic Rousseau
3863
3864        * [r940] examples/scardcontrol.c: use SCARD_PROTOCOL_T0 |
3865          SCARD_PROTOCOL_T1 instead of SCARD_PROTOCOL_ANY since it is not
3866          defined in Micosoft PC/SC
3867
38682004-05-30  Ludovic Rousseau
3869
3870        * [r910] configure.in: use 'pkg-config libpcsclite
3871          --variable=usbdropdir' even if --prefix= is used. You should use
3872          --enable-usbdropdir= and --enable-ccidtwindir= to set to
3873          different values.
3874
38752004-05-26  Ludovic Rousseau
3876
3877        * [r906] readers/DellSK-3106.txt: Dell keyboard SK-3106
3878        * [r905] src/commands.c: set *rx_length to 0 when a ReadPort()
3879          error is returned. The problem was not solved by ccid_usb.c 1.25.
3880        * [r904] src/commands.c: bPINOperation is not passed in the user
3881          command since the command is "PIN Verification" and nothing else
3882        * [r903] examples/scardcontrol.c: remove useless bPINOperation
3883
38842004-05-25  Ludovic Rousseau
3885
3886        * [r900] examples/scardcontrol.c, src/ccid.h, src/ccid_serial.c,
3887          src/ccid_usb.c, src/ifdhandler.c: add support for
3888          SCardGetAttrib(.., IOCTL_SMARTCARD_VENDOR_VERIFY_PIN, ..) to know
3889          if the reader supports SCardControl(..,
3890          IOCTL_SMARTCARD_VENDOR_VERIFY_PIN, ..)
3891        * [r896] configure.in: add a --enable-pcsclite option (default yes)
3892          so that the driver can be compiled for a different framework (one
3893          needing tokenparser.l)
3894        * [r895] src/ccid_usb.c: set length to 0 when a usb_bulk_read()
3895          error is returned
3896        * [r894] src/Makefile.am: install Info.plist before the lib. This
3897          is for my convenience only because of my debug setup.
3898        * [r893] src/Makefile.am: rename tokenparser_macosx.l into
3899          tokenparser_fake.l since it is not MacOSX specific.
3900
39012004-05-24  Ludovic Rousseau
3902
3903        * [r892] examples/scardcontrol.c, src/ccid.c, src/ccid_serial.c,
3904          src/ccid_serial.h, src/ccid_usb.c, src/ccid_usb.h,
3905          src/commands.c, src/commands.h, src/debug.c, src/ifdhandler.c,
3906          src/towitoko/atr.h, src/towitoko/protocol_t1.c: recompile using
3907          gcc -pedantic and correct: - some C++ syntax comments - many
3908          signedness "problems"
3909        * [r891] src/ccid_ifdhandler.h, src/commands.c, src/commands.h,
3910          src/ifdhandler.c: add support for Secure PIN through
3911          SCardControl() (see sample code in examples/)
3912        * [r890] src/ccid.c: - add some missing error codes - low error
3913          values indicate the byte in error in the CCID frame
3914        * [r889] examples, examples/Makefile.am, examples/scardcontrol.c:
3915          add examples for SCardControl IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE
3916          and IOCTL_SMARTCARD_VENDOR_VERIFY_PIN
3917        * [r888] Makefile.am: add examples in SUBDIRS
3918        * [r887] configure.in: remove -fno-common from CFLAGS since it
3919          is(?) gcc specific
3920        * [r886] readers/ACR38.txt, readers/supported_readers.txt: add
3921          Advanced Card Systems ACR 38
3922        * [r885] readers/CherryXX33.txt, readers/supported_readers.txt: add
3923          Cherry XX33
3924
39252004-05-18  Ludovic Rousseau
3926
3927        * [r882] src/ifdhandler.c: in CardUp():SetParameters() the default
3928          TA1 is 0x11
3929
39302004-05-17  Ludovic Rousseau
3931
3932        * [r881] src/Info.plist: add default ifdDriverOptions set to 0x0000
3933        * [r880] src/ifdhandler.c: - add support of
3934          IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE in IFDHControl() - read
3935          ifdDriverOptions from Info.plist to limit the use of
3936          IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE (idea from Peter Williams)
3937        * [r879] src/ccid.c, src/commands.c: redefined CmdEscape() to pass
3938          the CCID message instead of just a tag
3939        * [r878] src/ccid_usb.c, src/ccid_usb.h: do not export
3940          get_end_points() declaration and make the function static
3941        * [r877] src/Makefile.am, src/ccid_ifdhandler.h, src/ccid_serial.c,
3942          src/commands.h, src/defs.h, src/parse.c, src/towitoko/atr.c,
3943          src/towitoko/defines.h, src/towitoko/protocol_t1.c, src/utils.c:
3944          reorganize header files
3945        * [r876] config.h.in, configure.in: check for pcsclite.h and
3946          ifdhandler.h installed by recent pcsc-lite
3947        * [r875] src/pcscdefines.h: types and definitions are now in
3948          <pcsclite.h>, "defs.h" and "ccid_ifdhandler.h"
3949        * [r874] src/winsmcrd.h: removed since pcsclite.h now defines
3950          SCARD_ATTR_*
3951        * [r873] src/ccid_ifdhandler.h: use the ifdhandler.h provided by
3952          pcsc-lite so remove a lot of lines
3953
39542004-05-14  Ludovic Rousseau
3955
3956        * [r872] configure.in: check that pkg-config command is present
3957          before using it
3958        * [r871] INSTALL, configure.in: use `pkg-config libpcsclite
3959          --variable=usbdropdir` so you do not have to use
3960          --enable-usbdropdir=DIR or --enable-ccidtwindir=DIR even if pcscd
3961          does not use the default /usr/local/pcsc/drivers
3962
39632004-05-12  Ludovic Rousseau
3964
3965        * [r863] README: document the libusb bug on MacOS X with
3966          unplug/replug in a different USB socket
3967        * [r862] INSTALL, README: move debug configuration from INSTALL to
3968          README since it is dynamic now
3969        * [r861] README: remove the "readers enumeration" part since this
3970          problem is now solved by pcsc-lite-1.2.9
3971        * [r860] INSTALL: document the use of 'pkg-config libpcsclite
3972          --variable=usbdropdir'
3973
39742004-05-10  Ludovic Rousseau
3975
3976        * [r840] src/ifdhandler.c: in IFDHPowerICC() IFD_POWER_DOWN is just
3977          power down without a power up. Changed to be compliant with IFD
3978          Handler specifications.
3979
39802004-05-07  Ludovic Rousseau
3981
3982        * [r837] src/towitoko/protocol_t1.c: in
3983          Protocol_T1_Negociate_IFSD() rename sblock in block since the
3984          same variable is used for sent and received block. This was not
3985          clear and was the source of reported bug [ #300707 ] "Delete
3986          block before using it in t1_protocol.c" which is not a bug in
3987          fact.
3988
39892004-05-06  Ludovic Rousseau
3990
3991        * [r836] INSTALL: add a "configuring the driver for the serial
3992          reader (GemPC Twin)" part
3993
39942004-05-04  Ludovic Rousseau
3995
3996        * [r825] readers/Makefile.am: add DellSCRK.txt
3997        * [r824] readers/DellSCRK.txt, readers/supported_readers.txt: add
3998          Dell smart card reader keyboard
3999
40002004-04-19  Ludovic Rousseau
4001
4002        * [r808] src/Makefile.am: add winsmcrd.h in COMMON
4003        * [r807] src/ifdhandler.c: reset ATR string (length = 0) when the
4004          card is powered down or not present
4005        * [r806] src/defs.h: typo in a comment
4006        * [r805] src/winsmcrd.h: list of tags for SCardGetAttrib() like
4007          SCARD_ATTR_ATR_STRING
4008        * [r804] src/ifdhandler.c: add SCARD_ATTR_ATR_STRING in addition to
4009          TAG_IFD_ATR in IFDHGetCapabilities()
4010
40112004-04-16  Ludovic Rousseau
4012
4013        * [r795] src/ifdhandler.c: new IFDHControl() API
4014        * [r794] src/ccid_ifdhandler.h: use a new version from pcsc-lite
4015          with support of the new IFDHControl() API
4016
40172004-04-08  Ludovic Rousseau
4018
4019        * [r781] src/ccid_usb.c: add support for the libusb naming scheme:
4020          usb:%04x/%04x:libusb:%s
4021        * [r780] readers/SK-3106.txt, readers/SPR532.txt: parse bPINSupport
4022          field
4023        * [r779] src/parse.c: parse bPINSupport field
4024
40252004-04-07  Ludovic Rousseau
4026
4027        * [r778] readers/Makefile.am: also distribute SK-3106.txt
4028
40292004-04-06  Ludovic Rousseau
4030
4031        * [r777] config.h.in, configure.in: remove --enable-debugcritical,
4032          --enable-debuginfo, --enable-debugperiodic and --enable-debugcomm
4033          options since the log level is now dynamically managed by
4034          ifdLogLevel in Info.plist
4035        * [r776] src/Info.plist: define default ifdLogLevel at 3
4036          (DEBUG_LEVEL_CRITICAL | DEBUG_LEVEL_INFO)
4037        * [r775] src/debug.c: remove now useless #ifdef DEBUG
4038        * [r774] src/ccid_serial.c, src/ccid_usb.c: add { } to avoid
4039          ambiguities now that DEBUG_* are "if (x) y" constructions
4040        * [r773] src/ifdhandler.c: during the first IFDHCreateChannel*()
4041          init_debug() is called to read the value of ifdLogLevel from the
4042          Info.plist
4043        * [r772] src/debug.h: change the DEBUG_* macros from static
4044          (compilation conditional) to dynamic (if ())
4045        * [r771] src/Makefile.am: debug.c is only needed by parse_SOURCES
4046          not COMMON
4047        * [r770] src/ifdhandler.c: do not return before
4048          pthread_mutex_unlock() in IFDHCreateChannelByName()
4049        * [r769] src/ifdhandler.c: also call ccid_open_hack() in
4050          IFDHCreateChannelByName()
4051        * [r768] src/ifdhandler.c: T=1 context is initialized in CardUp(),
4052          not in IFDHCreateChannel()
4053        * [r766] src/ifdhandler.c: revert to nearly previous version. -
4054          IFD_POWER_DOWN is power down and power up (cold reset) -
4055          IFD_RESET is power up (warm reset) - IFD_POWER_UP is power up
4056
40572004-04-05  Ludovic Rousseau
4058
4059        * [r764] configure.in: version 0.4.2
4060        * [r763] readers/SK-3106.txt, readers/supported_readers.txt: add
4061          support for the Dell keyboard SK-3106
4062        * [r762] src/ccid_usb.c: define ALLOW_PROPRIETARY_CLASS by default
4063         
4064          Proprietary USB Class (0xFF) are (or are not) accepted A
4065          proprietary class is used for devices released before the final
4066          CCID specifications were ready. We should not have problems with
4067          non CCID devices becasue the Manufacturer and Product ID are also
4068          used to identify the device */
4069
40702004-03-31  Ludovic Rousseau
4071
4072        * [r755] src/Makefile.am: use $(srcdir) instead of ".". Thanks to
4073          Dr Russel Winder for the patch.
4074
40752004-03-30  Ludovic Rousseau
4076
4077        * [r738] src/ccid_usb.c: allow proprietary CCID Class byte but only
4078          if ALLOW_PROPRIETARY_CLASS is defined. You should know what you
4079          do. Only useful for pre-CCID devices.
4080        * [r737] src/parse.c: - use get_ccid_usb_interface() to also manage
4081          USB composite devices (keyboards) - continue parsing even if
4082          bDescriptorType == 0xFF (proprietary)
4083        * [r736] src/ccid_usb.h: define get_ccid_usb_interface() only if
4084          __USB_H__ is defined (usb.h included)
4085
40862004-03-23  Ludovic Rousseau
4087
4088        * [r723] reconf: move the "cp aclocal.m4 build/" after autoreconf
4089
40902004-03-22  Ludovic Rousseau
4091
4092        * [r722] reconf: cp aclocal.m4 build/
4093
40942004-03-18  Ludovic Rousseau
4095
4096        * [r716] src/ifdhandler.c: Reset action is power off and power on,
4097          not just power on
4098
40992004-02-27  Ludovic Rousseau
4100
4101        * [r709] README: add C3PO LTC32, SCM Micro SCR 333 and C3PO
4102          TLTC2USB in the list of "Should work but untested by me" readers
4103        * [r708] README: alphabetical reordering of readers
4104        * [r707] readers/supported_readers.txt: add SCR 333
4105
41062004-02-24  Ludovic Rousseau
4107
4108        * [r706] Makefile.am: use a shorter Perl script to convert
4109          generate/convert ChangeLog
4110
41112004-02-14  Ludovic Rousseau
4112
4113        * [r703] README: release 0.4.1
4114        * [r702] configure.in: version 0.4.1
4115        * [r701] readers/Makefile.am: distribute SCR331-DI.txt and
4116          supported_readers.txt
4117        * [r700] src/Makefile.am: disribute create_Info_plist.pl
4118
41192004-02-13  Ludovic Rousseau
4120
4121        * [r698] configure.in: version 0.4.0
4122        * [r697] README: release 0.4.0
4123
41242004-02-12  Ludovic Rousseau
4125
4126        * [r696] src/ifdhandler.c: huge rework of CardUp()
4127        * [r695] src/towitoko/protocol_t1.c: return with a error if the
4128          received bloc in less than 4 bytes (T=0 error response for
4129          example)
4130        * [r694] src/ccid_serial.c, src/ccid_usb.c: fill dwDefaultClock and
4131          dwMaxDataRate according to the reader descriptor
4132        * [r693] src/ccid.h: add dwDefaultClock and dwMaxDataRate fields
4133
41342004-02-11  Ludovic Rousseau
4135
4136        * [r692] src/ifdhandler.c: Perform PPS and IFSD only if the reader
4137          does not do it automatically
4138        * [r691] src/ccid.h: add CCID_CLASS_AUTO_BAUD and
4139          CCID_CLASS_AUTO_IFSD
4140        * [r690] src/towitoko/protocol_t1.c: add return code tests in
4141          Protocol_T1_Negociate_IFSD()
4142        * [r689] src/towitoko/pps.c, src/towitoko/pps.h: PPS_Exchange() now
4143          uses 'int lun' instead of 'Protocol_T1 * t1'
4144        * [r688] src/towitoko/protocol_t1.c: remove debug message
4145        * [r687] src/ifdhandler.c: use Protocol_T1_Negociate_IFSD() in
4146          CardUp()
4147        * [r686] src/towitoko/protocol_t1.c, src/towitoko/protocol_t1.h:
4148          add Protocol_T1_Negociate_IFSD()
4149        * [r685] src/ccid.h: add CCID_CLASS_AUTO_CONF_ATR
4150
41512004-02-09  Ludovic Rousseau
4152
4153        * [r683] src/ccid_usb.c: first bSeq is 0 (even if 1 works ok)
4154        * [r682] src/ccid_usb.c: usb_reset() the device before usb_close()
4155
41562004-02-05  Ludovic Rousseau
4157
4158        * [r677] README: add Silitek SK-3105 keyboard URL
4159
41602004-02-04  Ludovic Rousseau
4161
4162        * [r676] src/debug.h: DEBUG_COMM4 was named DEBUG_COMM3 due to
4163          cut-n-paste
4164
41652004-02-03  Ludovic Rousseau
4166
4167        * [r673] src/ccid_ifdhandler.h, src/ifdhandler.c: add CardUp() and
4168          CardDown() for PowerOn and PowerOff actions
4169        * [r672] src/ccid.h, src/ccid_serial.c, src/ccid_usb.c: add
4170          dwMaxIFSD field
4171        * [r671] src/debug.h: add DEBUG_COMM3()
4172        * [r670] src/towitoko/pps.c, src/towitoko/protocol_t1.c,
4173          src/towitoko/t1_block.c: use my own debug routines
4174        * [r669] readers/SCR331-DI.txt: new file
4175
41762004-02-02  Ludovic Rousseau
4177
4178        * [r668] src/towitoko/protocol_t1.c: do not restrict ifsc to
4179          Towitoko
4180        * [r667] src/towitoko/protocol_t1.c: remove PPS hack
4181        * [r666] README: add SCR 331-DI in the "should work" list
4182        * [r665] readers/supported_readers.txt, src/Info.plist,
4183          src/Makefile.am, src/create_Info_plist.pl: use
4184          create_Info_plist.pl to generate the installed Info.plist from an
4185          Info.plist template and a list of supported readers.
4186
41872004-01-29  Ludovic Rousseau
4188
4189        * [r663] src/ifdhandler.c: removed useless function name in debug
4190          messages since we use __FUNCTION__
4191        * [r662] src/ccid_usb.c: - remove device_name[] from struct
4192          _usbDevice - use naming scheme usb:vendor/product - simplify (a
4193          bit) the code
4194        * [r661] src/ccid_usb.h, src/parse.c: remore *device_name[]
4195          argument from get_desc()
4196        * [r660] src/debug.h: add DEBUG_CRITICAL4
4197
41982004-01-27  Ludovic Rousseau
4199
4200        * [r659] src/commands.c: set received size to 0 in case of error in
4201          CmdXfrBlockTPDU_T1
4202        * [r658] src/commands.c: in case of error exits CCID_Receive()
4203          without copying an nonexistent anwser
4204        * [r655] src/ccid_usb.c: use DEBUG_CRITICAL2() instead of
4205          DEBUG_CRITICAL()
4206        * [r654] README: add the "Silitek SK-3105 keyboard" in the "Should
4207          work but untested by me" list
4208        * [r653] ., .cvsignore, aclocal, aclocal/.cvsignore, build,
4209          build/.cvsignore, readers, readers/.cvsignore: ignore some build
4210          files
4211        * [r652] src, src/.cvsignore, src/towitoko,
4212          src/towitoko/.cvsignore: ignore some build files
4213        * [r651] src/Info.plist: add Silitek SK-3105 keyboard
4214        * [r650] src/ccid_usb.c, src/ccid_usb.h: add support of USB devices
4215          with multiple interfaces (like the Silitek SK-3105 keyboard)
4216        * [r649] src/ccid_serial.c, src/ccid_serial.h, src/ccid_usb.c,
4217          src/ccid_usb.h, src/defs.h, src/ifdhandler.c: add support of
4218          IFDHCreateChannelByName
4219
42202004-01-22  Ludovic Rousseau
4221
4222        * [r641] src/Makefile.am: move rules for src/protocol_t1/ files in
4223          src/Makefile.am to avoid building a (problematic) static library
4224        * [r640] src/towitoko/Makefile.am: removed since rules for
4225          src/protocol_t1/ files are in src/Makefile.am
4226
42272004-01-15  Ludovic Rousseau
4228
4229        * [r620] src/towitoko/apdu.h: define APDU_Cmd and APDU_Rsp
4230        * [r619] src/towitoko, src/towitoko/Makefile.am,
4231          src/towitoko/README, src/towitoko/atr.c, src/towitoko/atr.h,
4232          src/towitoko/defines.h, src/towitoko/pps.c, src/towitoko/pps.h,
4233          src/towitoko/protocol_t1.c, src/towitoko/protocol_t1.h,
4234          src/towitoko/t1_block.c, src/towitoko/t1_block.h: new files from
4235          Carlos Prados towitoko-2.0.7 driver (with a bit of hacking)
4236        * [r618] src/Makefile.am: build protocol_t1 library
4237        * [r617] src/commands.c: add SetParameters() CCID command
4238        * [r616] src/ifdhandler.c: add support of T=1 in TPDU mode
4239        * [r615] src/defs.h: add CcidDesc.t1 field
4240        * [r614] src/commands.c, src/commands.h: replace CmdXfrBlockTPDU()
4241          by CmdXfrBlockTPDU_T0() and CmdXfrBlockTPDU_T1()
4242        * [r613] src/commands.c: split CmdXfrBlockShortAPDU() in
4243          CCID_Transmit() and CCID_Receive()
4244        * [r612] src/ccid_serial.c, src/ccid_usb.c, src/ifdhandler.c: call
4245          ccid_open_hack() in IFDHCreateChannel() instead of in each
4246          OpenPort()
4247        * [r611] src/ccid.c, src/commands.c, src/commands.h,
4248          src/ifdhandler.c: use an (int *) instead of a PDWORD for
4249          rx_length argument
4250        * [r610] aclocal, aclocal/Makefile.am, aclocal/acx_pthread.m4: new
4251          files. add definition of ACX_PTHREAD macro
4252        * [r609] src/ccid_ifdhandler.h, src/ifdhandler.c: add
4253          get_ccid_slot() function
4254        * [r608] src/ccid_serial.c, src/ccid_usb.c, src/ifdhandler.c:
4255          remove function name from debug message since __FUNCTION__ is now
4256          used in DEBUG_* macro definition
4257        * [r607] src/Info.plist: add ActivCard
4258        * [r606] README: created an "Should work but untested by me"
4259          section and add SCM Micro SPR 532 and ActivCard USB reader 2.0
4260
42612004-01-08  Ludovic Rousseau
4262
4263        * [r584] README: The crashes under MacOS X were not because of a
4264          bug in libusb but because of a bug in pcscd MacOS X hotplug.
4265
42662004-01-06  Ludovic Rousseau
4267
4268        * [r581] src/ccid_usb.c: the USB extra field length shall be
4269          exactly 54 bytes to be CCID.
4270
42712004-01-05  Ludovic Rousseau
4272
4273        * [r580] src/debug.h: also print the function name (__FUNCTION__)
4274          in the debug messages
4275        * [r579] src/ccid_usb.c, src/parse.c: add a test on the USB extra
4276          field length to avoid a crash and print an error message. This
4277          occurs when the reader is _not_ CCID and the CCID driver is used
4278          (wrong Info.plist for example).
4279
42802003-12-19  Ludovic Rousseau
4281
4282        * [r578] INSTALL, src/Makefile.am: build but do not install the
4283          serial ccidtwin driver by default since it is useless on
4284          computers without a serial port or without this reader for
4285          example.
4286
42872003-12-16  Ludovic Rousseau
4288
4289        * [r570] src/ccid_usb.c: read and write timeouts are not symmetric.
4290          write timout can be shorter since the reader and card is not
4291          supposed to do anything before receiving (write) a command.
4292
42932003-12-12  Ludovic Rousseau
4294
4295        * [r569] src/ifdhandler.c: return IFD_NOT_SUPPORTED instead of
4296          IFD_SUCCESS in functions doing nothing (yet)
4297          (IFDHSetCapabilities, IFDHSetProtocolParameters, IFDHControl);
4298
42992003-12-11  Ludovic Rousseau
4300
4301        * [r568] src/ifdhandler.c: set the result buffer length to 0 in
4302          IFDHControl()
4303
43042003-11-25  Ludovic Rousseau
4305
4306        * [r565] configure.in: do not try to find usb.h and other libusb
4307          files if --disable-libusb is used. Needed if you only want to
4308          build the serial driver. Thanks to Niki Waibel for the patch.
4309        * [r564] INSTALL, configure.in, src/Makefile.am: add a
4310          --enable-ccidtwindir argument to ./configure to specify the
4311          serial GemPC Twin installation directory
4312        * [r563] Makefile.am, config.h.in, configure.in, reconf,
4313          src/ifdhandler.c: use a updated version of acx_pthread.m4 needed
4314          for FreeBSD
4315
43162003-11-06  Ludovic Rousseau
4317
4318        * [r556] configure.in: check that the installed libusb implements
4319          usb_get_string_simple()
4320
43212003-11-04  Ludovic Rousseau
4322
4323        * [r553] README: add SPR 532 in "Supported CCID readers" list
4324        * [r552] README: release 0.3.2
4325        * [r551] configure.in: version 0.3.2
4326        * [r550] src/commands.c: comment out the automatic GET RESPONSE
4327          part. I don't think it should be in the driver. Maybe in pcscd
4328          instead?
4329
43302003-11-03  Ludovic Rousseau
4331
4332        * [r547] readers/Makefile.am: also distribute SPR532.txt
4333
43342003-11-01  Ludovic Rousseau
4335
4336        * [r545] Makefile.am: bootstrap is no more distributed (it is no
4337          more in CVS either)
4338        * [r544] src/Makefile.am: $(CCID_BUNDLE) is a directory so use 'rm
4339          -r' in uninstall_ccid: target
4340
43412003-10-31  Ludovic Rousseau
4342
4343        * [r543] src/Makefile.am: modify the hack to compile under MacOSX.
4344        * [r542] reconf: config.guess, config.sub, depcomp and ltmain.sh
4345          are in build/ so removed them there.
4346        * [r541] create_distrib.sh: useless since we have a 'make dist'
4347          rule
4348
43492003-10-29  Ludovic Rousseau
4350
4351        * [r531] src/Info.plist: add USB identification for SPR 532
4352        * [r530] readers/SPR532.txt: add SPR 532 description even if it is
4353          not a "real" CCID reader.
4354        * [r529] src/parse.c: continue parsing even if bInterfaceSubClass
4355          and bInterfaceProtocol are unsupported. This may be the case with
4356          non "real" CCID readers.
4357        * [r528] src/parse.c: do not exit if the InterfaceClass is 0xFF
4358          (proprietary). It is the case with old readers manufactured
4359          before the final release of the CCID specs.
4360
43612003-10-28  Ludovic Rousseau
4362
4363        * [r525] src/ccid_usb.c: correctly use the device name in a debug
4364          message instead of a not yet initialised field.
4365        * [r524] bootstrap: removed since ./reconf is doing a correct job
4366        * [r523] README: move LTC31 reader from unsupported to supported
4367          reader list. It was my fault since in used odd INS byte in my
4368          test applet and odd INS bytes are forbidden by ISO 7816-4 ch.
4369          5.4.2 Instruction byte. Thanks to Josep Monï¿œs Teixidor for
4370          pointing the problem.
4371        * [r522] src/commands.c: correct a stupid bug that occurs with an
4372          APDU with 2 bytes response.
4373
43742003-09-23  Ludovic Rousseau
4375
4376        * [r467] README: release 0.3.1
4377        * [r466] MANIFEST: update file list
4378        * [r465] README: add a note about T=1 cards and readers in TPDU
4379          mode
4380
43812003-09-22  Ludovic Rousseau
4382
4383        * [r464] src/ccid_ifdhandler.h: define TAG_IFD_THREAD_SAFE
4384          introduced in pcsclite-1.2.0-rc3
4385        * [r463] src/ifdhandler.c: add support of thread safe (APDU
4386          multiplexing on different readers)
4387        * [r462] src/ccid_serial.c: ReadChunk() realy reads up to
4388          min_length bytes. Add some debug messages in the state automata.
4389        * [r461] src/Makefile.am: modify install rules so that root can use
4390          them even over NFS where root is nobody
4391        * [r460] config.h.in, configure.in: add --enable-multi-thread for
4392          thread safe support
4393        * [r459] Makefile.am, reconf: add reconf file
4394
43952003-09-19  Ludovic Rousseau
4396
4397        * [r453] src/ccid_serial.c, src/ccid_serial.h: complete
4398          reimplementation of the Twin serial protocol using a finite state
4399          automata (code much simpler)
4400
44012003-09-16  Ludovic Rousseau
4402
4403        * [r448] configure.in: Put back AC_PROG_CPP, it has nothing to do
4404          with C++ but with C preprocessor
4405        * [r445] src/ccid.c: Do not switch to APDU mode since it also
4406          swicth in EMV mode and may not work with non EMV cards
4407        * [r444] src/Makefile.am: honor DESTDIR in install rules (closes [
4408          #300110 ])
4409        * [r443] configure.in: remove useless AC_PROG_CPP (no C++ code in
4410          ccid driver)
4411        * [r438] configure.in: version 0.3.1
4412        * [r437] INSTALL: document the use of --enable-libusb=PATH
4413        * [r436] configure.in: add --enable-libusb=PATH option
4414
44152003-09-10  Ludovic Rousseau
4416
4417        * [r425] README: I forgot to add "support of "time request" from
4418          the card."
4419        * [r423] README: release 0.3.0
4420        * [r422] INSTALL: document the use of ./configure script
4421        * [r421] Makefile.am: use ChangeLog instead of ChangeLog.cvs since
4422          the dist Makefile target is looking at this file name.
4423        * [r420] src/config.h: config.h is now generated by ./configure
4424        * [r418] Makefile.am, configure.in, readers/Makefile.am: add
4425          readers/ in generated .tar.gz archive
4426        * [r417] readers/CardMan3121.txt, readers/GemPC433_SL.txt,
4427          readers/GemPCKey.txt, readers/GemPCTwin.txt, readers/LTC31.txt,
4428          readers/SCR331.txt, readers/SCR335.txt: use new parse indentation
4429          for more readability of supported features
4430        * [r415] config.h.in: new build process using autoconf/automake
4431        * [r414] src/ccid_serial.c, src/ccid_serial.h: manage serial
4432          protocol used by the GemPC Twin. Thanks to Niki W. Waibel for a
4433          working prototype.
4434        * [r413] src/ccid.c, src/ccid.h: contains common CCID feature for
4435          USB and serial (was in ccid_usb before)
4436        * [r412] src/reader.conf.in: used to generate a correct reader.conf
4437          with the real library name
4438        * [r411] src/ccid_ifdhandler.h: remove IFDSetEmv() definition. It
4439          is now useless.
4440        * [r410] src/ifdhandler.c: use OpenPort instead of OpenUSB. move
4441          the complex TPDU management in commands.c (and use it only if
4442          reader does not support APDU mode)
4443        * [r409] src/defs.h: transport abstraction: define OpenPort,
4444          ClosePort, etc. to OpenSerial or OpenUSB depending on TWIN_SERIAL
4445          compilation option
4446        * [r408] src/debug.h: test for PACKAGE and not __CONFIG_H__ since
4447          the config.h file is not generated by ./configure
4448        * [r407] src/commands.c, src/commands.h: - support auto voltage at
4449          power on if reader support it - support Gemplus proprietary
4450          command to switch reader from TPDU to APDU mode - use APDU mode
4451          if reader support it. make it easy to support extended APDU but I
4452          have no reader to test this.
4453        * [r406] src/ccid_usb.c, src/ccid_usb.h: redesign to separate
4454          communication media and CCID protocol. call ccid_open_hack() upon
4455          open to do some reader dependent magic.
4456        * [r405] src/parse.c: indent the output with one feature per line
4457          (and not on the same line separated by ,)
4458        * [r404] Makefile, src/Makefile, src/check, src/ylwrap: new build
4459          process using autoconf/automake
4460        * [r403] src/pcscdefines.h, src/utils.c: use PCSCLITE_MAX_READERS
4461          instead of PCSCLITE_MAX_CHANNELS
4462        * [r402] Makefile.am, NEWS, bootstrap, build, build/ylwrap,
4463          configure.in, src/Makefile.am: new build process using
4464          autoconf/automake
4465
44662003-08-27  Ludovic Rousseau
4467
4468        * [r343] MANIFEST, src/Makefile, src/capabilities.c: remove unused
4469          capabilities.c file
4470
44712003-08-26  Ludovic Rousseau
4472
4473        * [r342] README: release 0.2.0
4474        * [r341] create_distrib.sh: script to create the .tar.gz
4475        * [r340] README: add a note about libusb problem under *BSD
4476        * [r339] src/check: require pcsc-lite 1.2.0 instead of 1.1.2
4477        * [r326] README: the reader enumeration problem also exist under
4478          GNU/Linux (is not MacOS specific)
4479
44802003-08-24  Ludovic Rousseau
4481
4482        * [r322] MANIFEST: remove src/dep_stamp
4483        * [r321] README: add not about bugs/limitations under MacOS X
4484
44852003-08-21  Ludovic Rousseau
4486
4487        * [r314] src/parse.c: do not print garbage if we can't get the
4488          iManufacturer or iProduct fields
4489
44902003-08-20  Ludovic Rousseau
4491
4492        * [r309] src/config.h: comment low level debug messages
4493        * [r308] src/Makefile: use ./ylwrap instead of ylwrap
4494        * [r306] src/check: do not define LDFLAGS since we get it from
4495          outside
4496        * [r305] src/Makefile: add needed MacOS X frameworks to LDFLAGS
4497          (for parse and check)
4498        * [r304] MANIFEST: add src/ylwrap
4499        * [r303] src/ylwrap: wrapper to call (f)lex
4500        * [r302] MANIFEST: src/parse shall not be distributed
4501        * [r301] src/ccid_usb.c: do not duplicate the Info.plist filename
4502          but "calculate" it once
4503        * [r300] src/Makefile: Add support of MacOS X
4504        * [r299] src/Info.plist: use an <array></array> for the alias
4505          enumeration
4506
45072003-08-14  Ludovic Rousseau
4508
4509        * [r279] src/ccid_usb.c: use a 1 minute USB timeout instead of the
4510          1 second used for debug
4511        * [r278] MANIFEST: include in CVS
4512        * [r277] src/Makefile: remove parse binary in clean target
4513
45142003-08-13  Ludovic Rousseau
4515
4516        * [r276] src/Makefile: do not exit with failure if makedepend(1)
4517          does not exist
4518        * [r275] INSTALL: Installation and check guide
4519
45202003-08-12  Ludovic Rousseau
4521
4522        * [r273] README: release 0.1.0
4523        * [r269] ., AUTHORS, COPYING, Makefile, README, readers,
4524          readers/CardMan3121.txt, readers/GemPC433_SL.txt,
4525          readers/GemPCKey.txt, readers/GemPCTwin.txt, readers/LTC31.txt,
4526          readers/SCR331.txt, readers/SCR335.txt, src, src/.dependencies,
4527          src/Info.plist, src/Makefile, src/capabilities.c,
4528          src/ccid_ifdhandler.h, src/ccid_usb.c, src/ccid_usb.h, src/check,
4529          src/commands.c, src/commands.h, src/config.h, src/debug.c,
4530          src/debug.h, src/defs.h, src/ifdhandler.c, src/parse.c,
4531          src/parser.h, src/pcscdefines.h, src/tokenparser.l, src/utils.c,
4532          src/utils.h: Initial revision
4533
Note: See TracBrowser for help on using the repository browser.