2004-07-01  Ludovic Rousseau  <rousseau@acer>

	* configure.in: version 0.9.1

	* README: release 0.9.1

	* README: release 0.9.0

2004-06-30  Ludovic Rousseau  <rousseau@acer>

	* examples/scardcontrol.c: correct a signedness issue

	* src/.cvsignore: rename tokenparser_macosx.? in tokenparser_fake.?

	* .cvsignore: add build-stamp and configure-stamp

	* examples/.cvsignore: ignore temporary files

	* src/towitoko/COPYING: LGPL licence

	* configure.in: version 0.9.0

	* src/towitoko/pps.c:
	PPS_Match() was wrong when the confirmation is shorter than the request

	* src/towitoko/pps.c, src/towitoko/pps.h:
	PPS_Exchange() has a new argument (unsigned char *pps1) which is the
	PPS1 returned by the card (TA1 the card wants to use)

	* src/towitoko/pps.c:
	CCID_Transmit() now uses a 4th argument (unsigned char bBWI)

	* src/towitoko/pps.c, src/towitoko/pps.h:
	move macros PPS_HAS_PPS?() from pps.c to pps.h

	* src/towitoko/atr.c, src/towitoko/atr.h:
	add ATR_GetDefaultProtocol() function

	* src/towitoko/atr.c, src/towitoko/atr.h: remove unused functions

	* src/towitoko/atr.c:
	the atr_f_table[] and atr_d_table[] tables were partly wrong

	* src/towitoko/README: - update the text
	- the function ATR_GetDefaultProtocol() is mine (Ludovic Rousseau)

	* src/towitoko/defines.h: remove MIN() and MAX() definitions

	* src/ifdhandler.c:
	if DEBUG_LEVEL_PERIODIC is not set we temporaily remove DEBUG_LEVEL_COMM in
	IFDHICCPresence() to avoid having the low level debug every time pcscd
	test the card presence

	* src/ifdhandler.c: - removed CardUp() and CardDown()
	- all the reader initialisation/negotiation is now done in
	  IFDHSetProtocolParameters() (that's why you need pcsc-lite-1.2.9beta3)

	* src/utils.c: pcsclite.h moved in PCSC/

	* src/defs.h:
	the t1 field in struct CCID_DESC changed from Protocol_T1 (towitiko) to
	t1_state_t (openct)

	* src/debug.h:
	we do not need to have PACKAGE defined (I do not remember what it was
	used for)

	* src/commands.c:
	CmdXfrBlockTPDU_T1(): use the T=1 TPDU layer from opensc/ instead of towitoko/

	* src/commands.c:
	CCID_Receive() returns IFD_PARITY_ERROR if the error returned by the
	reader is 0xFD (parity error) and IFD_COMMUNICATION_ERROR otherwise (so
	that the T=1 TPDU layer can recover the error)

	* src/commands.c, src/commands.h:
	CCID_Transmit() now has a new "unsigned char bBWI" argument

	* src/commands.c:
	CmdPowerOn(): add a mechanism to allow power on at 1.8V, 3V and then 5V
	as specified by ISO 7816. We still use 5V for now to avoid problems with
	non ISO compliant cards

	* src/commands.c: add __FUNCTION__ as argument to ccid_error()

	* src/ccid.c, src/ccid.h:
	ccid_error() now also has a "char *function" argument to log the name of
	the function in which the error occured

	* src/Makefile.am:
	- rename protocol_t1/ in towitoko/ to reflect the project the code comes from
	- remove the now useless files from towitoko/ and add the files from openct/

	* src/towitoko/apdu.h, src/towitoko/protocol_t1.c, src/towitoko/protocol_t1.h, src/towitoko/t1_block.c, src/towitoko/t1_block.h:
	remove these files since I now use the T=1 TPDU code from OpenCT

	* src/openct/LICENSE, src/openct/buffer.c, src/openct/buffer.h, src/openct/checksum.c, src/openct/checksum.h, src/openct/proto-t1.c, src/openct/proto-t1.h:
	use T=1 TPDU code from the OpenCT project <http://www.opensc.org/>

	The state automata was greatly improved to manage "all" the possible
	errors cases.

	* src/Info.plist:
	document the possible values for ifdLogLevel and ifdDriverOptions

2004-06-23  Ludovic Rousseau  <rousseau@acer>

	* examples/scardcontrol.c:
	- send Select DF and Select EF APDU before Verify PIN
	- read stdin (consume the "*" fake keys) if the pinpad is on a keyboard

	* configure.in:
	check for the presence of PCSC/ifdhandler.h instead of ifdhandler.h

	* config.h.in: HAVE_IFDHANDLER_H is renamed HAVE_PCSC_IFDHANDLER_H

	* README: add info for:
	- Cherry XX33 keyboard
	- Dell keyboard SK-3106
	- Dell smart card reader keyboard

	Move some readers in "Unsupported or partly supported CCID readers:"
	- C3PO LTC31
	- SCM Micro SCR 331
	- SCM Micro SCR 335
	- SCM Micro SPR 532

2004-06-22  Ludovic Rousseau  <rousseau@acer>

	* Makefile.am: ChangeLog is not a .PHONY target but a real file

2004-06-13  Ludovic Rousseau  <rousseau@acer>

	* examples/scardcontrol.c:
	use SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1 instead of SCARD_PROTOCOL_ANY
	since it is not defined in Micosoft PC/SC

2004-05-30  Ludovic Rousseau  <rousseau@acer>

	* configure.in:
	use 'pkg-config libpcsclite --variable=usbdropdir' even if --prefix= is
	used. You should use --enable-usbdropdir= and --enable-ccidtwindir= to
	set to different values.

2004-05-26  Ludovic Rousseau  <rousseau@acer>

	* readers/DellSK-3106.txt: Dell keyboard SK-3106

	* src/commands.c:
	set *rx_length to 0 when a ReadPort() error is returned.
	The problem was not solved by ccid_usb.c 1.25.

	* src/commands.c:
	bPINOperation is not passed in the user command since the command is
	"PIN Verification" and nothing else

	* examples/scardcontrol.c: remove useless bPINOperation

2004-05-25  Ludovic Rousseau  <rousseau@acer>

	* examples/scardcontrol.c, src/ccid.h, src/ccid_serial.c, src/ccid_usb.c, src/ifdhandler.c:
	add support for SCardGetAttrib(.., IOCTL_SMARTCARD_VENDOR_VERIFY_PIN, ..)
	to know if the reader supports SCardControl(.., IOCTL_SMARTCARD_VENDOR_VERIFY_PIN, ..)

	* configure.in:
	add a --enable-pcsclite option (default yes) so that the driver can be
	compiled for a different framework (one needing tokenparser.l)

	* src/ccid_usb.c:
	set length to 0 when a usb_bulk_read() error is returned

	* src/Makefile.am:
	install Info.plist before the lib. This is for my convenience only
	because of my debug setup.

	* src/Makefile.am:
	rename tokenparser_macosx.l into tokenparser_fake.l since it is not
	MacOSX specific.

2004-05-24  Ludovic Rousseau  <rousseau@acer>

	* examples/scardcontrol.c, src/ccid.c, src/ccid_serial.c, src/ccid_serial.h, src/ccid_usb.c, src/ccid_usb.h, src/commands.c, src/commands.h, src/debug.c, src/ifdhandler.c, src/towitoko/atr.h, src/towitoko/protocol_t1.c:
	recompile using gcc -pedantic and correct:
	- some C++ syntax comments
	- many signedness "problems"

	* src/ccid_ifdhandler.h, src/commands.c, src/commands.h, src/ifdhandler.c:
	add support for Secure PIN through SCardControl() (see sample code in examples/)

	* src/ccid.c: - add some missing error codes
	- low error values indicate the byte in error in the CCID frame

	* examples/Makefile.am, examples/scardcontrol.c:
	add examples for SCardControl IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE and
	IOCTL_SMARTCARD_VENDOR_VERIFY_PIN

	* Makefile.am: add examples in SUBDIRS

	* configure.in:
	remove -fno-common from CFLAGS since it is(?) gcc specific

	* readers/ACR38.txt, readers/supported_readers.txt:
	add Advanced Card Systems ACR 38

	* readers/CherryXX33.txt, readers/supported_readers.txt:
	add Cherry XX33

2004-05-18  Ludovic Rousseau  <rousseau@acer>

	* src/ifdhandler.c: in CardUp():SetParameters() the default TA1 is 0x11

2004-05-17  Ludovic Rousseau  <rousseau@acer>

	* src/Info.plist: add default ifdDriverOptions set to 0x0000

	* src/ifdhandler.c:
	- add support of IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE in IFDHControl()
	- read ifdDriverOptions from Info.plist to limit the use of
	  IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE (idea from Peter Williams)

	* src/ccid.c, src/commands.c:
	redefined CmdEscape() to pass the CCID message instead of just a tag

	* src/ccid_usb.c, src/ccid_usb.h:
	do not export get_end_points() declaration and make the function static

	* src/Makefile.am, src/ccid_ifdhandler.h, src/ccid_serial.c, src/commands.h, src/defs.h, src/parse.c, src/towitoko/atr.c, src/towitoko/defines.h, src/towitoko/protocol_t1.c, src/utils.c:
	reorganize header files

	* config.h.in, configure.in:
	check for pcsclite.h and ifdhandler.h installed by recent pcsc-lite

	* src/pcscdefines.h:
	types and definitions are now in <pcsclite.h>, "defs.h" and "ccid_ifdhandler.h"

	* src/winsmcrd.h: removed since pcsclite.h now defines SCARD_ATTR_*

	* src/ccid_ifdhandler.h:
	use the ifdhandler.h provided by pcsc-lite so remove a lot of lines

2004-05-14  Ludovic Rousseau  <rousseau@acer>

	* configure.in:
	check that pkg-config command is present before using it

	* INSTALL, configure.in:
	use `pkg-config libpcsclite --variable=usbdropdir` so you do not have to
	use --enable-usbdropdir=DIR or --enable-ccidtwindir=DIR even if pcscd
	does not use the default /usr/local/pcsc/drivers

2004-05-12  Ludovic Rousseau  <rousseau@acer>

	* README:
	document the libusb bug on MacOS X with unplug/replug in a different USB
	socket

	* INSTALL, README:
	move debug configuration from INSTALL to README since it is dynamic now

	* README:
	remove the "readers enumeration" part since this problem is now solved
	by pcsc-lite-1.2.9

	* INSTALL:
	document the use of 'pkg-config libpcsclite --variable=usbdropdir'

2004-05-10  Ludovic Rousseau  <rousseau@acer>

	* src/ifdhandler.c:
	in IFDHPowerICC() IFD_POWER_DOWN is just power down without a power up.
	Changed to be compliant with IFD Handler specifications.

2004-05-07  Ludovic Rousseau  <rousseau@acer>

	* src/towitoko/protocol_t1.c:
	in Protocol_T1_Negociate_IFSD() rename sblock in block since the same
	variable is used for sent and received block.
	This was not clear and was the source of reported bug [ #300707 ]
	"Delete block before using it in t1_protocol.c" which is not a bug in fact.

2004-05-06  Ludovic Rousseau  <rousseau@acer>

	* INSTALL:
	add a "configuring the driver for the serial reader (GemPC Twin)" part

2004-05-04  Ludovic Rousseau  <rousseau@acer>

	* readers/Makefile.am: add DellSCRK.txt

	* readers/DellSCRK.txt, readers/supported_readers.txt:
	add Dell smart card reader keyboard

2004-04-19  Ludovic Rousseau  <rousseau@acer>

	* src/Makefile.am: add winsmcrd.h in COMMON

	* src/ifdhandler.c:
	reset ATR string (length = 0) when the card is powered down or not present

	* src/defs.h: typo in a comment

	* src/winsmcrd.h:
	list of tags for SCardGetAttrib() like SCARD_ATTR_ATR_STRING

	* src/ifdhandler.c:
	add SCARD_ATTR_ATR_STRING in addition to TAG_IFD_ATR in IFDHGetCapabilities()

2004-04-16  Ludovic Rousseau  <rousseau@acer>

	* src/ifdhandler.c: new IFDHControl() API

	* src/ccid_ifdhandler.h:
	use a new version from pcsc-lite with support of the new IFDHControl() API

2004-04-08  Ludovic Rousseau  <rousseau@acer>

	* src/ccid_usb.c:
	add support for the libusb naming scheme: usb:%04x/%04x:libusb:%s

	* readers/SK-3106.txt, readers/SPR532.txt, src/parse.c:
	parse bPINSupport field

2004-04-07  Ludovic Rousseau  <rousseau@acer>

	* readers/Makefile.am: also distribute SK-3106.txt

2004-04-06  Ludovic Rousseau  <rousseau@acer>

	* config.h.in, configure.in:
	remove --enable-debugcritical, --enable-debuginfo,
	--enable-debugperiodic and --enable-debugcomm options since the log
	level is now dynamically managed by ifdLogLevel in Info.plist

	* src/Info.plist:
	define default ifdLogLevel at 3 (DEBUG_LEVEL_CRITICAL | DEBUG_LEVEL_INFO)

	* src/debug.c: remove now useless #ifdef DEBUG

	* src/ccid_serial.c, src/ccid_usb.c:
	add { } to avoid ambiguities now that DEBUG_* are "if (x) y" constructions

	* src/ifdhandler.c:
	during the first IFDHCreateChannel*() init_debug() is called to read the
	value of ifdLogLevel from the Info.plist

	* src/debug.h:
	change the DEBUG_* macros from static (compilation conditional) to
	dynamic (if ())

	* src/Makefile.am: debug.c is only needed by parse_SOURCES not COMMON

	* src/ifdhandler.c:
	do not return before pthread_mutex_unlock() in IFDHCreateChannelByName()

	* src/ifdhandler.c:
	also call ccid_open_hack() in IFDHCreateChannelByName()

	* src/ifdhandler.c:
	T=1 context is initialized in CardUp(), not in IFDHCreateChannel()

	* src/ifdhandler.c: revert to nearly previous version.
	- IFD_POWER_DOWN is power down and power up (cold reset)
	- IFD_RESET is power up (warm reset)
	- IFD_POWER_UP is power up

2004-04-05  Ludovic Rousseau  <rousseau@acer>

	* configure.in: version 0.4.2

	* readers/SK-3106.txt, readers/supported_readers.txt:
	add support for the Dell keyboard SK-3106

	* src/ccid_usb.c: define ALLOW_PROPRIETARY_CLASS by default

	Proprietary USB Class (0xFF) are (or are not) accepted
	A proprietary class is used for devices released before the final CCID
	specifications were ready.
	We should not have problems with non CCID devices becasue the
	Manufacturer and Product ID are also used to identify the device */

2004-03-31  Ludovic Rousseau  <rousseau@acer>

	* src/Makefile.am:
	use $(srcdir) instead of ".". Thanks to Dr Russel Winder for the patch.

2004-03-30  Ludovic Rousseau  <rousseau@acer>

	* src/ccid_usb.c:
	allow proprietary CCID Class byte but only if ALLOW_PROPRIETARY_CLASS is
	defined. You should know what you do. Only useful for pre-CCID devices.

	* src/parse.c:
	- use get_ccid_usb_interface() to also manage USB composite devices (keyboards)
	- continue parsing even if bDescriptorType == 0xFF (proprietary)

	* src/ccid_usb.h:
	define get_ccid_usb_interface() only if __USB_H__ is defined (usb.h included)

2004-03-23  Ludovic Rousseau  <rousseau@acer>

	* reconf: move the "cp aclocal.m4 build/" after autoreconf

2004-03-22  Ludovic Rousseau  <rousseau@acer>

	* reconf: cp aclocal.m4 build/

2004-03-18  Ludovic Rousseau  <rousseau@acer>

	* src/ifdhandler.c:
	Reset action is power off and power on, not just power on

2004-02-27  Ludovic Rousseau  <rousseau@acer>

	* README:
	add C3PO LTC32, SCM Micro SCR 333 and C3PO TLTC2USB in the list of
	"Should work but untested by me" readers

	* README: alphabetical reordering of readers

	* readers/supported_readers.txt: add SCR 333

2004-02-24  Ludovic Rousseau  <rousseau@acer>

	* Makefile.am:
	use a shorter Perl script to convert generate/convert ChangeLog

2004-02-14  Ludovic Rousseau  <rousseau@acer>

	* README: release 0.4.1

	* configure.in: version 0.4.1

	* readers/Makefile.am:
	distribute SCR331-DI.txt and supported_readers.txt

	* src/Makefile.am: disribute create_Info_plist.pl

2004-02-13  Ludovic Rousseau  <rousseau@acer>

	* configure.in: version 0.4.0

	* README: release 0.4.0

2004-02-12  Ludovic Rousseau  <rousseau@acer>

	* src/ifdhandler.c: huge rework of CardUp()

	* src/towitoko/protocol_t1.c:
	return with a error if the received bloc in less than 4 bytes (T=0
	error response for example)

	* src/ccid_serial.c, src/ccid_usb.c:
	fill dwDefaultClock and dwMaxDataRate according to the reader descriptor

	* src/ccid.h: add dwDefaultClock and dwMaxDataRate fields

2004-02-11  Ludovic Rousseau  <rousseau@acer>

	* src/ifdhandler.c:
	Perform PPS and IFSD only if the reader does not do it automatically

	* src/ccid.h: add CCID_CLASS_AUTO_BAUD and CCID_CLASS_AUTO_IFSD

	* src/towitoko/protocol_t1.c:
	add return code tests in Protocol_T1_Negociate_IFSD()

	* src/towitoko/pps.c, src/towitoko/pps.h:
	PPS_Exchange() now uses 'int lun' instead of 'Protocol_T1 * t1'

	* src/towitoko/protocol_t1.c: remove debug message

	* src/ifdhandler.c: use Protocol_T1_Negociate_IFSD() in CardUp()

	* src/towitoko/protocol_t1.c, src/towitoko/protocol_t1.h:
	add Protocol_T1_Negociate_IFSD()

	* src/ccid.h: add CCID_CLASS_AUTO_CONF_ATR

2004-02-09  Ludovic Rousseau  <rousseau@acer>

	* src/ccid_usb.c: first bSeq is 0 (even if 1 works ok)

	* src/ccid_usb.c: usb_reset() the device before usb_close()

2004-02-05  Ludovic Rousseau  <rousseau@acer>

	* README: add Silitek SK-3105 keyboard URL

2004-02-04  Ludovic Rousseau  <rousseau@acer>

	* src/debug.h: DEBUG_COMM4 was named DEBUG_COMM3 due to cut-n-paste

2004-02-03  Ludovic Rousseau  <rousseau@acer>

	* src/ccid_ifdhandler.h, src/ifdhandler.c:
	add CardUp() and CardDown() for PowerOn and PowerOff actions

	* src/ccid.h, src/ccid_serial.c, src/ccid_usb.c: add dwMaxIFSD field

	* src/debug.h: add DEBUG_COMM3()

	* src/towitoko/pps.c, src/towitoko/protocol_t1.c, src/towitoko/t1_block.c:
	use my own debug routines

	* readers/SCR331-DI.txt: new file

2004-02-02  Ludovic Rousseau  <rousseau@acer>

	* src/towitoko/protocol_t1.c: do not restrict ifsc to Towitoko

	* src/towitoko/protocol_t1.c: remove PPS hack

	* README: add SCR 331-DI in the "should work" list

	* readers/supported_readers.txt, src/Info.plist, src/Makefile.am, src/create_Info_plist.pl:
	use create_Info_plist.pl to generate the installed Info.plist from an
	Info.plist template and a list of supported readers.

2004-01-29  Ludovic Rousseau  <rousseau@acer>

	* src/ifdhandler.c:
	removed useless function name in debug messages since we use __FUNCTION__

	* src/ccid_usb.c: - remove device_name[] from struct _usbDevice
	- use naming scheme usb:vendor/product
	- simplify (a bit) the code

	* src/ccid_usb.h, src/parse.c:
	remore *device_name[] argument from get_desc()

	* src/debug.h: add DEBUG_CRITICAL4

2004-01-27  Ludovic Rousseau  <rousseau@acer>

	* src/commands.c:
	set received size to 0 in case of error in CmdXfrBlockTPDU_T1

	* src/commands.c:
	in case of error exits CCID_Receive() without copying an nonexistent anwser

	* src/ccid_usb.c: use DEBUG_CRITICAL2() instead of DEBUG_CRITICAL()

	* README:
	add the "Silitek SK-3105 keyboard" in the "Should work but untested by
	me" list

	* .cvsignore, aclocal/.cvsignore, build/.cvsignore, readers/.cvsignore, src/.cvsignore, src/towitoko/.cvsignore:
	ignore some build files

	* src/Info.plist: add Silitek SK-3105 keyboard

	* src/ccid_usb.c, src/ccid_usb.h:
	add support of USB devices with multiple interfaces (like the Silitek
	SK-3105 keyboard)

	* src/ccid_serial.c, src/ccid_serial.h, src/ccid_usb.c, src/ccid_usb.h, src/defs.h, src/ifdhandler.c:
	add support of IFDHCreateChannelByName

2004-01-22  Ludovic Rousseau  <rousseau@acer>

	* src/Makefile.am:
	move rules for src/protocol_t1/ files in src/Makefile.am to avoid
	building a (problematic) static library

	* src/towitoko/Makefile.am:
	removed since rules for src/protocol_t1/ files are in src/Makefile.am

2004-01-15  Ludovic Rousseau  <rousseau@acer>

	* src/towitoko/apdu.h: define APDU_Cmd and APDU_Rsp

	* src/towitoko/Makefile.am, src/towitoko/README, src/towitoko/atr.c, src/towitoko/atr.h, src/towitoko/defines.h, src/towitoko/pps.c, src/towitoko/pps.h, src/towitoko/protocol_t1.c, src/towitoko/protocol_t1.h, src/towitoko/t1_block.c, src/towitoko/t1_block.h:
	new files from Carlos Prados towitoko-2.0.7 driver (with a bit of hacking)

	* src/Makefile.am: build protocol_t1 library

	* src/commands.c: add SetParameters() CCID command

	* src/ifdhandler.c: add support of T=1 in TPDU mode

	* src/defs.h: add CcidDesc.t1 field

	* src/commands.c, src/commands.h:
	replace CmdXfrBlockTPDU() by CmdXfrBlockTPDU_T0() and CmdXfrBlockTPDU_T1()

	* src/commands.c:
	split CmdXfrBlockShortAPDU() in CCID_Transmit() and CCID_Receive()

	* src/ccid_serial.c, src/ccid_usb.c, src/ifdhandler.c:
	call ccid_open_hack() in IFDHCreateChannel() instead of in each OpenPort()

	* src/ccid.c, src/commands.c, src/commands.h, src/ifdhandler.c:
	use an (int *) instead of a PDWORD for rx_length argument

	* aclocal/Makefile.am, aclocal/acx_pthread.m4:
	new files. add definition of ACX_PTHREAD macro

	* src/ccid_ifdhandler.h, src/ifdhandler.c: add get_ccid_slot() function

	* src/ccid_serial.c, src/ccid_usb.c, src/ifdhandler.c:
	remove function name from debug message since __FUNCTION__ is now used in
	DEBUG_* macro definition

	* src/Info.plist: add ActivCard

	* README:
	created an "Should work but untested by me" section and add SCM Micro
	SPR 532 and ActivCard USB reader 2.0

2004-01-08  Ludovic Rousseau  <rousseau@acer>

	* README:
	The crashes under MacOS X were not because of a bug in libusb but because of
	a bug in pcscd MacOS X hotplug.

2004-01-06  Ludovic Rousseau  <rousseau@acer>

	* src/ccid_usb.c:
	the USB extra field length shall be exactly 54 bytes to be CCID.

2004-01-05  Ludovic Rousseau  <rousseau@acer>

	* src/debug.h:
	also print the function name (__FUNCTION__) in the debug messages

	* src/ccid_usb.c, src/parse.c:
	add a test on the USB extra field length to avoid a crash and print an
	error message. This occurs when the reader is _not_ CCID and the CCID
	driver is used (wrong Info.plist for example).

2003-12-19  Ludovic Rousseau  <rousseau@acer>

	* INSTALL, src/Makefile.am:
	build but do not install the serial ccidtwin driver by default since it
	is useless on computers without a serial port or without this reader for
	example.

2003-12-16  Ludovic Rousseau  <rousseau@acer>

	* src/ccid_usb.c:
	read and write timeouts are not symmetric. write timout can be shorter
	since the reader and card is not supposed to do anything before
	receiving (write) a command.

2003-12-12  Ludovic Rousseau  <rousseau@acer>

	* src/ifdhandler.c:
	return IFD_NOT_SUPPORTED instead of IFD_SUCCESS in functions doing
	nothing (yet) (IFDHSetCapabilities, IFDHSetProtocolParameters,
	IFDHControl);

2003-12-11  Ludovic Rousseau  <rousseau@acer>

	* src/ifdhandler.c: set the result buffer length to 0 in IFDHControl()

2003-11-25  Ludovic Rousseau  <rousseau@acer>

	* configure.in:
	do not try to find usb.h and other libusb files if --disable-libusb is
	used. Needed if you only want to build the serial driver. Thanks to Niki
	Waibel for the patch.

	* INSTALL, configure.in, src/Makefile.am:
	add a --enable-ccidtwindir argument to ./configure to specify the
	serial GemPC Twin installation directory

	* config.h.in, configure.in, reconf, src/ifdhandler.c, Makefile.am:
	use a updated version of acx_pthread.m4 needed for FreeBSD

2003-11-06  Ludovic Rousseau  <rousseau@acer>

	* configure.in:
	check that the installed libusb implements usb_get_string_simple()

2003-11-04  Ludovic Rousseau  <rousseau@acer>

	* README: add SPR 532 in "Supported CCID readers" list

	* README: release 0.3.2

	* configure.in: version 0.3.2

	* src/commands.c:
	comment out the automatic GET RESPONSE part. I don't think it should be
	in the driver. Maybe in pcscd instead?

2003-11-03  Ludovic Rousseau  <rousseau@acer>

	* readers/Makefile.am: also distribute SPR532.txt

2003-11-01  Ludovic Rousseau  <rousseau@acer>

	* Makefile.am:
	bootstrap is no more distributed (it is no more in CVS either)

	* src/Makefile.am:
	$(CCID_BUNDLE) is a directory so use 'rm -r' in uninstall_ccid: target

2003-10-31  Ludovic Rousseau  <rousseau@acer>

	* src/Makefile.am: modify the hack to compile under MacOSX.

	* reconf:
	config.guess, config.sub, depcomp and ltmain.sh are in build/ so removed
	them there.

	* create_distrib.sh: useless since we have a 'make dist' rule

2003-10-29  Ludovic Rousseau  <rousseau@acer>

	* src/Info.plist: add USB identification for SPR 532

	* readers/SPR532.txt:
	add SPR 532 description even if it is not a "real" CCID reader.

	* src/parse.c:
	continue parsing even if bInterfaceSubClass and bInterfaceProtocol are
	unsupported. This may be the case with non "real" CCID readers.

	* src/parse.c:
	do not exit if the InterfaceClass is 0xFF (proprietary). It is the case
	with old readers manufactured before the final release of the CCID specs.

2003-10-28  Ludovic Rousseau  <rousseau@acer>

	* src/ccid_usb.c:
	correctly use the device name in a debug message instead of a not yet initialised field.

	* bootstrap: removed since ./reconf is doing a correct job

	* README:
	move LTC31 reader from unsupported to supported reader list. It was my fault
	since in used odd INS byte in my test applet and odd INS bytes are
	forbidden by ISO 7816-4 ch. 5.4.2 Instruction byte. Thanks to Josep Monés
	Teixidor for pointing the problem.

	* src/commands.c:
	correct a stupid bug that occurs with an APDU with 2 bytes response.

2003-09-23  Ludovic Rousseau  <rousseau@acer>

	* README: release 0.3.1

	* MANIFEST: update file list

	* README: add a note about T=1 cards and readers in TPDU mode

2003-09-22  Ludovic Rousseau  <rousseau@acer>

	* src/ccid_ifdhandler.h:
	define TAG_IFD_THREAD_SAFE introduced in pcsclite-1.2.0-rc3

	* src/ifdhandler.c:
	add support of thread safe (APDU multiplexing on different readers)

	* src/ccid_serial.c:
	ReadChunk() realy reads up to min_length bytes. Add some debug messages
	in the state automata.

	* src/Makefile.am:
	modify install rules so that root can use them even over NFS where root is
	nobody

	* config.h.in, configure.in:
	add --enable-multi-thread for thread safe support

	* Makefile.am, reconf: add reconf file

2003-09-19  Ludovic Rousseau  <rousseau@acer>

	* src/ccid_serial.c, src/ccid_serial.h:
	complete reimplementation of the Twin serial protocol using a finite
	state automata (code much simpler)

2003-09-16  Ludovic Rousseau  <rousseau@acer>

	* configure.in:
	Put back AC_PROG_CPP, it has nothing to do with C++ but with C preprocessor

	* src/ccid.c:
	Do not switch to APDU mode since it also swicth in EMV mode and may not
	work with non EMV cards

	* src/Makefile.am: honor DESTDIR in install rules (closes [ #300110 ])

	* configure.in: remove useless AC_PROG_CPP (no C++ code in ccid driver)

	* configure.in: version 0.3.1

	* INSTALL: document the use of --enable-libusb=PATH

	* configure.in: add --enable-libusb=PATH option

2003-09-10  Ludovic Rousseau  <rousseau@acer>

	* README: I forgot to add "support of "time request" from the card."

	* README: release 0.3.0

	* INSTALL: document the use of ./configure script

	* Makefile.am:
	use ChangeLog instead of ChangeLog.cvs since the dist Makefile target is
	looking at this file name.

	* src/config.h: config.h is now generated by ./configure

	* Makefile.am, configure.in, readers/Makefile.am:
	add readers/ in generated .tar.gz archive

	* readers/CardMan3121.txt, readers/GemPC433_SL.txt, readers/GemPCKey.txt, readers/GemPCTwin.txt, readers/LTC31.txt, readers/SCR331.txt, readers/SCR335.txt:
	use new parse indentation for more readability of supported features

	* config.h.in: new build process using autoconf/automake

	* src/ccid_serial.c, src/ccid_serial.h:
	manage serial protocol used by the GemPC Twin. Thanks to Niki W. Waibel
	for a working prototype.

	* src/ccid.c, src/ccid.h:
	contains common CCID feature for USB and serial (was in ccid_usb before)

	* src/reader.conf.in:
	used to generate a correct reader.conf with the real library name

	* src/ccid_ifdhandler.h:
	remove IFDSetEmv() definition. It is now useless.

	* src/ifdhandler.c:
	use OpenPort instead of OpenUSB. move the complex TPDU management in
	commands.c (and use it only if reader does not support APDU mode)

	* src/defs.h:
	transport abstraction: define OpenPort, ClosePort, etc. to OpenSerial or
	OpenUSB depending on TWIN_SERIAL compilation option

	* src/debug.h:
	test for PACKAGE and not __CONFIG_H__ since the config.h file is not
	generated by ./configure

	* src/commands.c, src/commands.h:
	- support auto voltage at power on if reader support it
	- support Gemplus proprietary command to switch reader from TPDU to APDU mode
	- use APDU mode if reader support it. make it easy to support extended
	  APDU but I have no reader to test this.

	* src/ccid_usb.c, src/ccid_usb.h:
	redesign to separate communication media and CCID protocol. call
	ccid_open_hack() upon open to do some reader dependent magic.

	* src/parse.c:
	indent the output with one feature per line (and not on the same line
	separated by ,)

	* Makefile, src/Makefile, src/check, src/ylwrap:
	new build process using autoconf/automake

	* src/pcscdefines.h, src/utils.c:
	use PCSCLITE_MAX_READERS instead of PCSCLITE_MAX_CHANNELS

	* build/ylwrap, src/Makefile.am, Makefile.am, NEWS, bootstrap, configure.in:
	new build process using autoconf/automake

2003-08-27  Ludovic Rousseau  <rousseau@acer>

	* MANIFEST, src/Makefile, src/capabilities.c:
	remove unused capabilities.c file

2003-08-26  Ludovic Rousseau  <rousseau@acer>

	* README: release 0.2.0

	* create_distrib.sh: script to create the .tar.gz

	* README: add a note about libusb problem under *BSD

	* src/check: require pcsc-lite 1.2.0 instead of 1.1.2

	* README:
	the reader enumeration problem also exist under GNU/Linux (is not MacOS
	specific)

2003-08-24  Ludovic Rousseau  <rousseau@acer>

	* MANIFEST: remove src/dep_stamp

	* README: add not about bugs/limitations under MacOS X

2003-08-21  Ludovic Rousseau  <rousseau@acer>

	* src/parse.c:
	do not print garbage if we can't get the iManufacturer or iProduct fields

2003-08-20  Ludovic Rousseau  <rousseau@acer>

	* src/config.h: comment low level debug messages

	* src/Makefile: use ./ylwrap instead of ylwrap

	* src/check: do not define LDFLAGS since we get it from outside

	* src/Makefile:
	add needed MacOS X frameworks to LDFLAGS (for parse and check)

	* MANIFEST: add src/ylwrap

	* src/ylwrap: wrapper to call (f)lex

	* MANIFEST: src/parse shall not be distributed

	* src/ccid_usb.c:
	do not duplicate the Info.plist filename but "calculate" it once

	* src/Makefile: Add support of MacOS X

	* src/Info.plist: use an <array></array> for the alias enumeration

2003-08-14  Ludovic Rousseau  <rousseau@acer>

	* src/ccid_usb.c:
	use a 1 minute USB timeout instead of the 1 second used for debug

	* MANIFEST: include in CVS

	* src/Makefile: remove parse binary in clean target

2003-08-13  Ludovic Rousseau  <rousseau@acer>

	* src/Makefile:
	do not exit with failure if makedepend(1) does not exist

	* INSTALL: Installation and check guide

2003-08-12  Ludovic Rousseau  <rousseau@acer>

	* README: release 0.1.0

	* readers/CardMan3121.txt, readers/GemPC433_SL.txt, readers/GemPCKey.txt, readers/GemPCTwin.txt, readers/LTC31.txt, readers/SCR331.txt, readers/SCR335.txt, src/commands.h, src/parse.c, src/parser.h, src/tokenparser.l:
	First release

	* readers/CardMan3121.txt, readers/GemPC433_SL.txt, readers/GemPCKey.txt, readers/GemPCTwin.txt, readers/LTC31.txt, readers/SCR331.txt, readers/SCR335.txt, src/commands.h, src/parse.c, src/parser.h, src/tokenparser.l:
	New file.

	* AUTHORS, COPYING, Makefile, README, src/.dependencies, src/Info.plist, src/Makefile, src/capabilities.c, src/ccid_ifdhandler.h, src/ccid_usb.c, src/ccid_usb.h, src/check, src/commands.c, src/config.h, src/debug.c, src/debug.h, src/defs.h, src/ifdhandler.c, src/pcscdefines.h, src/utils.c, src/utils.h:
	First release

	* AUTHORS, COPYING, Makefile, README, src/.dependencies, src/Info.plist, src/Makefile, src/capabilities.c, src/ccid_ifdhandler.h, src/ccid_usb.c, src/ccid_usb.h, src/check, src/commands.c, src/config.h, src/debug.c, src/debug.h, src/defs.h, src/ifdhandler.c, src/pcscdefines.h, src/utils.c, src/utils.h:
	New file.

