
$Rev: 455 $

===========================================================================
MARK: released Libchipcard 3.9.13rc6 (2007/11/19)
===========================================================================

2007/11/19: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added missing files for tool kvkcard


===========================================================================
MARK: released Libchipcard 3.9.12rc5 (2007/11/19)
===========================================================================


2007/11/19: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added daemon mode to the tool "kvkcard". It replaces the now obsolete
  service "kvks".
  Some ideas of Karsten Hilbert (GnuMed) and Hayen Iggena have been
  implemented.


===========================================================================
MARK: released Libchipcard 3.9.11rc4 (2007/11/17)
===========================================================================


2007/11/17: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in usbrawscanner.c
- simplified default settings for local installation mode (and WIN32)


===========================================================================
MARK: released Libchipcard 3.9.10rc3 (2007/11/16)
===========================================================================


2007/11/16: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed IPC modes private and secure (those modes now work as expected)
- removed some possibly misleading warnings
- fixed slave mode
- added example file for slave mode
- added scripts to simplify creating certs and keys for client, master and
  slave


===========================================================================
MARK: released Libchipcard 3.9.9rc2 (2007/11/11)
===========================================================================


2007/11/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added yet another search folder for CCID driver


===========================================================================
MARK: released Libchipcard 3.9.8rc1 (2007/11/10)
===========================================================================

2007/11/09: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a prototype for WIN32


===========================================================================
MARK: released Libchipcard 3.9.7beta (2007/11/07)
===========================================================================


2007/11/04: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- CryptToken DDVCard: only read signseq for key 1


===========================================================================
MARK: released Libchipcard 3.9.6beta (2007/11/03)
===========================================================================


2007/11/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- changed license to LGPL
- implemented CryptToken virtual function SetKeyInfo()
- fixed a bug in CryptToken virtual function GetKeyInfo()


===========================================================================
MARK: released Libchipcard 3.9.5beta (2007/11/02)
===========================================================================


2007/11/02: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- LC_ClientPcsc_V_GetNextCard() no longer bails out if there is no
  reader, it just keeps on scanning for readers (in case a reader is
  plugged in after this function is called)


2007/11/01: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added reader flag LC_READER_FLAGS_NO_MEMORY_SW.
  This is used with Kobil Advanced USB readers because these devices
  return neither SW1 nor SW2 for memory cards (such as KVK)
- driverifd: If the flag LC_READER_FLAGS_NO_MEMORY_SW is given and the
  currently inserted card is a memory card then SW1 and SW2 will be
  manufactured
- card commands: now empty card commands are allowed. Those commands
  provoke the new error code LC_Client_ResultDontExecute which means
  that this special command is not to be executed for the given reader
  or driver. This is needed for the Kobil Kaan Advanced (and possibly
  others) to ignore the command SELECT_MF.


===========================================================================
MARK: released Libchipcard 3.9.4beta (2007/10/27)
===========================================================================


2007/10/26: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added reader entry for SCR3311 (with generic CCID driver)
- introduced local installation mode:
  This can be used on Linux (on Windows this mode is always used since we
  need relocatable files there).
  Normally on Linux this project is installed to a well defined prefix and
  in respect to the FHS.
  However, it might sometimes be interesting to be able to have a relocatable
  version of Libchipcard, too. That is Libchipcard looks for its data files 
  and plugins in folders below the location of the called executable (using
  binreloc).


===========================================================================
MARK: released Libchipcard 3.9.3beta (2007/10/24)
===========================================================================


2007/10/24: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- libchipcard client now also looks for driver description files in the
  client's data folder. On posix systems there is none, since there
  libchipcard's own ressource manager is used. On Windows however these files
  contain information which is needed to determine the driver and reader type
  from a given PC/SC reader name. This in turn is needed to adapt APDUs
  on Windows the same way we do it on POSIX systems.
- split driver description files folder of this package: One for posix
  (contains the same as before) and one for Windows, where we use other ways
  to determine the driver and reader type (see above)
  On posix systems these files are installed to the server's data folder,
  on Windows they are installed to the client's data folder.
- removed the need for a <var> section in driver description files. This was
  deprecated anyway and only used by the memcard class to see whether we have
  a buggy driver for Towitoko CDM (serial) which has a very low write 
  boundary. This is now expressed by the new reader flag 
  LC_READER_FLAGS_LOW_WRITE_BOUNDARY


2007/10/23: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- install README files to appdatadir and carddatadir to make it easier to
  find those folders when using the path manager (especially under WIN32)
- use GWEN_PathManager to retrieve client configuration and data files
- libchipcard now cross-compiles for WIN32 using mingw32 on Debian.
  The resulting binaries work on Windows XP :-)


2007/10/12: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- removed old crypt token stuff


2007/09/28: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- driver_ifd now tries to select the protocol if the reader's default
  protocol doesn't work (this allows reading KVK cards with the Kobil Kaan
  Advanced)


2007/09/18: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- some fixes for DDVCard CryptToken, adapted to changes in the CryptToken API


2007/09/13: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a typo (spotted by Marcel Naziri)


===========================================================================
MARK: released Libchipcard 3.9.2beta (2007/09/11)
===========================================================================


2007/09/07: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- many fixes
- added plugin for Gwenhywfar's new CryptToken framework supporting
  DDV cards
- dropped dependency on LibUSB (it is no longer needed, since we now use
  libsysfs for scanning of USB devices as well)


2007/07/24: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- USB scanner now uses Libsysfs instead of LibUSB to scan for devices.
  This is needed for kernels since about 2.6.20 because these kernels
  have an autosuspend feature and checking for readers using Libusb
  makes the readers wake up and suspend continuously


2007-06-17  Andreas Koehler  <andi5.py@gmx.net>

	* m4/searchfiles.m4: When searching for files and choosing the
	path separator, examine $build instead of $host.

	* m4/os.m4: Replace all target tests by ones for the host system
	type.  Host and target would only differ if we were about to build
	a cross-compiler, but using host is more precise nonetheless.

	* configure.ac: Use AC_CANONICAL_BUILD and _HOST, but not _TARGET


2007/06/19: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted to latest SVN version of Gwenhywfar


2007/06/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- install chipcard daemon as "chipcardd4" to make it distinguishable from
  old daemon of Libchipcard1


===========================================================================
MARK: released Libchipcard 3.9.1beta (2007/05/14)
===========================================================================


2007/05/07: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added support for new Cyberjack readers (0x400 and 0x401)
- don't set key callback for cyberjacks (let the cyberjack beep)


2007/05/04: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- now use path instead of port number for Cyberjack driver


2007/05/02: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- renamed LC_Card_SelectMF() to LC_Card_SelectMf() for a consistent API
- improved API doc
- started renaming all Libchipcard3 names to simply Libchipcard. This will
  simplify future releases.
- changed all headers and #include directives to no longer include the "3"
  (as in "#include <chipcard3/chipcard3.h>")
  NOTE: The paths and names of the configuration files therefore changes!!
  The default configuration file is no longer 
    /usr/etc/chipcard3/server/chipcard3.conf
  but rather
    /usr/etc/chipcard/server/chipcard.conf


===========================================================================
MARK: released Libchipcard 3.9.0beta (2007/05/03)
===========================================================================


2007/04/30: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added description for reader Omnikey Cardman 4040 (not tested yet)


2007/04/28: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- use new CT_init_name() function with celetronic devices
- celectronic CardStar2 has two slots, marked this in the driver description
  file -> now I could finally test two slot mode and it works so far!!


2007/04/21: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added special path for PC/SC drivers under SuSE


2007/04/19: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted driver for IFD handlers for 64 bit archs: unfortunately PC/SC
  defines DWORD as "unsigned long" on any architecture, even on 64 bit.
  As a result DWORD is 32 bits wide on 32 bit archs and 64 bits wide on
  64 bit archs. The drivers seem to be expecting this behaviour so we have to
  use the same albeit incorrect definitions here


2007/04/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed reader description for O2Micro
- fixed compile bug in src/lib/sharedstuff


===========================================================================
MARK: released Libchipcard3 3.1.0beta  (2007/04/03)
===========================================================================


2007/04/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added description for SCM 3320
- prepared release of 3.1.0beta


2007/03/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- implemented card command "IsoModifyPin_Ascii" (needed for STARCOS cards
  in combination with readers without keypads)


2007/02/20: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added function LC_Card_ReadBinary()
- added new card type: eGK (for now only reads some MKT+ files, so the same
  data is available with this card as with KVK cards)


2007/02/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- disabled Linux-specific include on non-Linux systems


2007/01/31: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- disabled Linux-specific parts of DriverCTAPI_KeyCallback1() when
  KDMKTONE is not defined


2007/01/24: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted PC/SC stuff to Gwenhywfar3
- added SCR 331 to ccid_ifd.xml (it reportedly works with this driver)


2007/01/14: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted to Gwenhywfar3


2007/01/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added device description files for Celectronic CardMedic 2


===========================================================================
MARK: released Libchipcard3 3.0.2  (2006/12/27)
===========================================================================


2006/12/27: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- server:
  - client manager now removes all requests of a client which went down
  - now also call LCDM_DeviceManager_ClientDown() when a client goes down
- client:
  - fixed a bug in geldkarte code (it now reads the BLOG of new cards as well)
- updated distri.m4 to detect SuSE10.2 (why the hell did they change the 
  format of the /etc/SuSE-release file??)
- removed "--service-libs" from chipcard3-config


===========================================================================
MARK: released Libchipcard3 3.0.1  (2006/12/25)
===========================================================================


2006/12/24: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted to latest changes in Reiner SCT Cyberjack driver
- fixed a bug in device manager (was accessing already free'd data)


2006/11/20: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in usbttyscanner: Was missing a macro definition when not using
  sysfs


2006/11/15: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added Cherry ST1044u to list of supported readers as suggested by 
  Sascha Hauer (reader is now autodetected)
- added note about udev rules for USB devices


2006/11/05: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added 64-bit lib folders to all driver locations (so libchipcard will also
  find drivers on those systems)


===========================================================================
MARK: released Libchipcard3 3.0.0  (2006/11/02)
===========================================================================

2006/11/02: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- the init script name "chipcardd3" has been successfully registered with
  "The Linux Assigned Names And Numbers Authority" (http://www.lanana.org/)


2006/10/20: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added reader flag "keepRunning", which is used for SCM SPR532, because this
  reader doesn't like to be stopped (it can't be restarted afterwards, and
  since the manufacturers driver isn't OpenSource I don't know how to fix it)
- src/lib/sharedstuff/msgengine.c: Don't AND the tag type with 0x1f, this
  would make some tags unavailable (especially some KVK tags)


2006/10/19: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- changed the driver description files regarding SCM SPR532: Now we only
  support the original driver with the original firmware, because the
  generic CCID driver is unable to perform secure pin verification with
  some cards


2006/10/13: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- make use of the latest additions to the Cyberjack driver
- we are now fully capable of distinguishing two or more Cyberjack
  readers which are connected in parallel


2006/10/10: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a showstopper: If a reader reports an error while it is still being
  started the daemon could crash
- added nonstandard locations for CCID driver
- pcmciascanner and usbttyscanner now add device path information if available
- simplified card command description for PERFORM_VERIFICATION with the
  generic CCID driver (it now works with Kobil Kaan Advanced USB and 
  Omnikey CardMan 3621)
- added some more readers to the list of devices I tested myself
- cardcommander3: added command "rapdu" which sends an APDU to a reader
- the command IsoPerformModification_Ascii now works with both Kobil Kaan
  Advanced USB and Omnikey Cardman 3621. This allows changing the pin of
  STARCOS cards again
- added chipcardd3 command "listreaders": This command lists all supported
  readers
- improved handling of STARCOS cards: Now check for EF_CARD_VERSION. If it
  exists it might tell us what kind of card is inserted


===========================================================================
MARK: released Libchipcard3 2.9.4beta  (2006/10/09)
===========================================================================


2006/10/09: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added support for SCM 3310 (now uses Generic CCID driver from Ludovic
  Rousseau instead of the reader from the vendor)
- with IFD drivers: call IFDHCreateChannelByName() instead of 
  IFDHCreateChannel(). This allows to use multiple readers (even mutliple
  readers of the same kind) with the generic CCID driver at the same time
- export headers and functions needed for external driver development


===========================================================================
MARK: released Libchipcard3 2.9.3beta  (2006/10/02)
===========================================================================

2006/10/02: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- Libchipcard3 now compiles and runs under Windows!!
  The checks of src/lib/client/testlib are now successfully performed.


2006/10/01: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added accessType to driver.xml files (defaults to "port")
- added devicePathTmpl to driver.xml files: Now devices can be accessed
  using a devicePath instead of a port value (not used by internal drivers
  for now)


2006/09/30: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- IFD driver: If the driver reports error code 612 then we just retry to
  connect the reader for a few times (this grants the reader a warmup
  period)
- drivers: changed createReaderFunction to extendReaderFunction (much less
  arguments and easier to extend)


2006/09/28: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- slave now restarts if the connection to the master is broken (or if the
  master cannot be connected to). Before restarting the server waits for
  a few seconds.
- decreased verbosity
- added init script
- added support for mandriva to specfile


2006/09/27: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added a wildcard to Cyberjack driver description to match the CTAPI file
  even if ldconfig didn't create the necessary symlinks
- added information to the README about how to install the CardMan 4000
- added some notify codes/flags:
  - LC_NOTIFY_CODE_DRIVER_ADD
  - LC_NOTIFY_CODE_DRIVER_DEL
  - LC_NOTIFY_FLAGS_DRIVER_ADD
  - LC_NOTIFY_FLAGS_DRIVER_DEL
  - LC_NOTIFY_CODE_READER_ADD
  - LC_NOTIFY_CODE_READER_DEL
  - LC_NOTIFY_FLAGS_READER_ADD
  - LC_NOTIFY_FLAGS_READER_DEL
- allowed these flags and masks in SetNotify client command
- server now sends notifications when a reader is added/removed
- "chipcard3-tool monitor" now receives these notifications and prints them


===========================================================================
MARK: released Libchipcard3 2.9.2beta  (2006/09/26)
===========================================================================


2006/09/26: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed RPM file creation: We now ship a separate RPM package with the
  CryptToken plugin (this allows installing Libchipcard2 and Libchipcard3
  in parallel except for the CryptToken plugins)
- removed unneeded files in doc/
- deactivated driver for Cherry keyboard's card reader in 
  doc/chipcardd3.conf.example (should only be activated if there actually *is*
  such a device)

2006/09/25: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in LCS_Server_DumpState() (unintended recursion)
- fixed a serious memory leak in usbttyscanner.c
- added another method to tell the chipcard daemon about harware changes:
  if in the configuration file the variable "hardwareScanInterval" is set
  to "0" then the server will only scan for hardware upon initial setup.
  After that a scan can be triggered by sending the signal USR2 to the
  daemon (e.g. "killall -USR2 chipcardd3" does the job).
  The default method is to scan every 2 seconds for changes.


===========================================================================
MARK: released first beta of Libchipcard3: 2.9.1beta1  (2006/09/24)
===========================================================================


2006/09/23: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- src/drivers/ifd: introduced a workaround with Kobil Kaan Advanced USB and
  the generic CCID driver: This combination returns alternating ATRs for
  DDV1 cards. The falsely returned ATR is that of a DDV0 card, so if the 
  driver now detects such an ATR it rereads it and only returns the DDV0 ATR 
  if it has been confirmed by the second read.
  This makes the fake-CTAPI now work with MoneyPlex even with a Kobil Kaan
  Advanced USB!
- reverted change of DDV1 ATRs in card description files (the change was
  induced by the strange behaviour of the reader/driver noted above)
- fixed a bug in DDV card code
- fixed a bug in LC_ClientLcc_V_GetNextCard()
- decreased verbosity of KVK service
- create driver and service log folders upon "make install"


2006/09/22: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- src/lib/server/driver: split driver.c into multiple source files to make
  it easier to maintain
- src/drivers: Now there is only one single IFD driver replacing previous
  driver types ccid, ifd and ifdold
- added "static" keyword to most functions in "*_p.h" files thus reducing
  the number of exported symbols
- pcsc code no longer needs PC/SC includes (they aren't available on some
  systems, so we need to declare some stuff directly here)
- implemented the last missing driver functions in slavemanager
- chipcard3-tool now has the option "--start-all" which is used with the
  command "monitor": If this option is given then the monitoring command
  starts all readers before going into monitoring mode


2006/09/21: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- src/lib/server: 
  - merged server and fullserver (only one class now)
  - added slave manager (manages communication with the master server)
    Libchipcard3 has 3 modes now:
      1) standAlone (same as before)
      2) master (like libchipcard2 with enabled remote drivers)
      3) slave
    In slave mode no client connections are accepted. Instead the server
    will connect to a master server (a libchipcard3 server running in master
    mode) and announce all plugged and unplugged readers to the master.
    The master handles a slave just like any other driver. It starts and
    stops the remote readers just like it would do with local readers.
    This new mode replaces the limited support for remote drivers in 
    libchipcard2.
    A usefull scenario is a central gnumed server which also runs the master 
    chipcard3 daemon to which thin clients can connect and report their local
    readers. The master server is then able to use the readers at thin
    clients as they appear (e.g. for the KVK service).
  - created new common class "LCCO_READER" which is now used also outside of
    the device manager
  - chipcard3-tool command "monitor" now shows the date and time of the
    receiption of a notification
- most IPC commands now use a numeric error code instead of "OK" and "ERROR"


2006/09/20: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- "chipcardd3 init" works again (didn't work with Libchipcard2 either since
  some changes in Gwenyhwfar, however, LCC2 is soon to be replaced by LCC3)


2006/09/19: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- implemented card notifications (inserted, removed)
- starcos crypttoken plugin works again
- removed OpenSC stuff (OpenSC is able to use CTAPI drivers, so it can
  use my fake-ctapi driver, too)
- rewrote tutorials


2006/09/16: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- Libchipcard3's current CCID driver is now able to handle IFD3 and IFD2
  lowlevel drivers. Therefore the next release will only contain a single
  IFD driver: ifd3 (which replaces current ccid, ifd and ifdold)


2006/09/15: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- new generic ccid driver (>=1.1.0) now translates feature TLV values 
  (big <-> little endian), so in order to use the feature functions we need to
  translate them, too. 
  Libchipcard3's driver now detects the version of the generic ccid driver
  (it parses the debug messages of the ccid driver and scans for the
   product string. Maybe there is a better way to determine the driver
   name and version?).


2006/09/12: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in ccid driver: Was checking for feature/control code even
  for APDUs for cards
- added ressource manager type PC/SC to client library.
  This is a big step towards WIN32 compatiblity.


2006/09/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added gcc visibility handling (now Libchipcard only exports symbols which
  are part of the API)


2006/09/08: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- reimplemented Libchipcard client. Now most code uses a basic set
  of funtions which can also be used with e.g. PC/SC under Windows.
  This is a big step towards being able to run Libchipcard under Windows.
  - defined a common set of functions needed to work with chipcards
  - implemented these basic functions (and extensions) for use against
    a Libchipcard server
  - API cleanup
  - all card implementations now only use the limited subset of functions
    in order to be usable under Windows. Since all card implementations
    already used just a small set of functions this is no restriction.
  - command construction and parsing is now done on the client side, so the
    chipcard server becomes only a ressource manager
  - added command "monitor" to chipcard3-tool: This command shows all
    notifications received from the libchipcard3 ressource manager
  - XML data files are now installed to $PREFIX/share/... instead of 
    $PREFIX/etc/... since they are data files rather than configuration
    files
  - now used ony a single chipcard3-config script instead of separate scripts
    for client and server


===========================================================================
MARK: forked branch aq_3 for Libchipcard3 (2006/09/08)
===========================================================================


2006/08/30: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- pcmciascanner.c: changed error message to debug message for missing PCMCIA
  bus (e.g. on Desktop PC there is no PCMCIA bus in most cases)
- LC_Client_Walk now returns an error if not a single server could be
  connected


===========================================================================
MARK: released Libchipcard2 2.1.8 (2006/08/25)
===========================================================================


2006/07/24: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in 
  src/lib/chipcard2-server/server2/devicemanager/devicemanager.c (was not
  activating PCMCIA scanner)


2006/07/17: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in driver code: Was relying on server address even in
  testmode


2006/07/14: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- RPM: Make the OpenSC plugin a separate RPM package
- reader driver for OpenSC now compiles with OpenSC 0.11.x as well


===========================================================================
MARK: released Libchipcard2 2.1.7 (2006/07/13)
===========================================================================


2006/07/10: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- stronger recommendation for LibSysFS (still optional but strongly 
  recommended): We now use it primarily to detect ttyUSB devices and fallback 
  to proc files


2006/06/21: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in code for command IsoVerifyPin


2006/06/19: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed geldkarte.c: Obviously some newer cards only store 24 bytes in 
  a EF_BLOG record, in which case the date is only stored as YYMMDD instead
  of YYYYMMDD (as defined by the GeldKarte specs I have).


2006/06/16: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added missing defines for C++


===========================================================================
MARK: released Libchipcard2 2.1.6 (2006/06/16)
===========================================================================


2006/06/16: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed some bugs which prevented Libchipcard2 from compiling on some systems


===========================================================================
MARK: released Libchipcard2 2.1.5 (2006/06/16)
===========================================================================


2006/06/15: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- minor changes in secure pin input
- client and server now use the minimal example configuration files in case no
  other configuration files are given or found.
  This makes Libchipcard2 work out-of-the-box with known USB/PCMCIA readers
  (as suggested by Marcel Mulch from MoneyPenny)
- decreased verbosity of the server
- removed LCM_Monitor_new() and LCM_Monitor_free() from the API
- updated README regarding the free CCID driver


2006/05/18: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- changed pcmcia scanner code to use libsysfs. No longer require kernel
  sources. Thanks to Thomas Viehmann and Joachim Breitner.


2006/05/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- started implementing Austrian Ecard (info only, no crypto stuff)


2006/05/05: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in fake_ctapi (spotted and proposed a fix by Thomas Viehmann)


2006/05/04: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ccid driver: added PC/SC functions as proposed by Ludovic Rousseau
  Libchipcard2 now works with the standard libccid provided by Debian :-)


===========================================================================
MARK: released Libchipcard2 2.1.4 (2006/05/03)
===========================================================================


2006/05/01: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a problem with CryptTokenDDV: When a bank code contains a "=" then
  this character is replaced by a "2" (thereby undoing the escape mechanism
  apparently used when a BSD bank code contains 0x20)


2006/04/28: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- applied a patch provided by Thomas Viehmann (fixes libsysfs 2.x support)


2006/04/25: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added function LC_Client_ReaderCommand()


2006/04/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- initial import into SVN


2006/03/28: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- changed LC_DEFAULT_PIDDIR to now use "${localstatedir}/run" instead of
  "${localstatedir}/run/chipcard2"


===========================================================================
MARK: released Libchipcard2 2.1.3 (2006/03/26)
===========================================================================


2006/03/20: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in monitor code: Was not initializing list code
- removed some debugging messages


===========================================================================
MARK: released Libchipcard2 2.1.2 (2006/03/20)
===========================================================================


2006-03-20  Christian Stimming <stimming@tuhh.de>

	* Makefile.am: Improve Makefiles: Add $srcdir to includes and add
	CLEANFILES. "make distcheck" will now run successfully.


2006/03/16: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- now works with Libsysfs 2.x


===========================================================================
MARK: released Libchipcard2 2.1.1 (2006/03/07)
===========================================================================


2006/03/06: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- now ships with driver.xml for new cyberjack driver (2.0.10)
- removed some debug messages


===========================================================================
MARK: released Libchipcard2 2.1.0 (2006/02/27)
===========================================================================


2006/02/15: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a problem with Debian's libtool: This tool does not allow lazy
  library linking
- cleaned up client API (remove many functions which should not be called
  by applications)
- improved API documentation of the client parts


===========================================================================
MARK: released Libchipcard2 2.0.0 (2006/02/14)
===========================================================================


2006/02/14: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- removed some debug messages
- tool geldkarte2 now prints a list of known commands upon "--help"
- prepared release of Libchipcard2 2.0.0


===========================================================================
MARK: released Libchipcard2 1.9.20beta (2006/01/26)
===========================================================================


2006/01/23: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- crypttoken plugins:
  - now use the new function GWEN_CryptManager_SetPinStatus() to mark bad pins
  - fixed some bugs, mainly in STARCOS crypttokens
- relaxed driver name for SCM33x readers (was looking for 4.1.1. only, now it
  uses every version, since the CTAPI didn't change since spec 1.1)
- starcos crypt token now is more verbous about errors


2006/01/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted to next release of Cyberjack driver


===========================================================================
MARK: released Libchipcard2 1.9.19beta (2005/12/15)
===========================================================================


2005/12/15: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- disabled keypad of SCM SPR 532, currently it can't be used since the 
  firmware of the reader and the free CCID driver don't work successfully
  together right now


2005/12/09: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- pin verification via the keypad of the Kobil Kaan Advanced now works!!
- reordered calls for NewCard callback in server-code: Now the CommandManager
  is called before the ClientManager, because the CommandManager determines
  the types of the card according to its ATR
- removed driver-specific parts from card description files (I will have
  to clean those up)
- fixed a bug: Server was sending "ResetCard" instead of "Driver_ResetCard"


2005/12/07: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- started implementing PerformVerification for CCID readers (prepared
  CCID driver, clientmanager and generic driver to allow sending and receiving
  "verify" commands


2005/12/06: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added support for Omnikey Cardman 4000 (uses proprietary driver from
  http://www.omnikey.at)
- added autoport sortkey "BusPos"
- no longer install cyberjack2_ctapi stuff
- added support for Kobil Kaan Advanced
- added autport sortkeys "DriverType" and "ReaderType"
- HandleDriverReady() now reads driverFlagsValue and driverFlagsMask from
  request, thus modifying the driverFlags according to the drivers info
- moved definition of LCDM_DRIVER_FLAGS to sharedstuff
- added two arguments to LC_Driver_Connect which allow modifying the driver
  flags (needed to flag support for driver-specific pin modifications/
  verification)
- added handler and virtual functions for pin verification and modification
  to driver base module
- temporarily disabled "keypad" flags for "Kobil Advanced" (I'm working on
  that)


===========================================================================
MARK: released Libchipcard2 1.9.18beta (2005/12/02)
===========================================================================


2005/11/29: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug (was abandoning *all* readers when any driver went down)
- moved pininfo to sharedstuff (is used by all parts of Libchipcard2)


2005/11/28: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added flag LC_NOTIFY_FLAGS_SINGLESHOT to command "Client_SetNotify".
  With this flag given this command only does send the notifications
  according to the flags and does not change the server-side notification mask
  permanently


2005/11/26: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- introduced lockmanager. This is now used to lock reader slots for used 
  cards. This is to prepare to allow the direct use of readers by client
  applications as needed e.g. to access the fingerprint scanner of the 
  Cyberjack Biometric reader.
- when a card reader is locked by a client card status checks are temporarily
  suspended. After the reader is unlocked (either explicitly or implicitly
  upon shutdown of the client) card status checks are resumed.
- reader notifications now again contain the readerInfo field
- implemented client-functions to lock and unlock a card reader
- renamed IPC command names internally to make them unique


===========================================================================
MARK: released Libchipcard2 1.9.17beta (2005/11/22)
===========================================================================


2005/11/22: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- cleanup: fixed some memory leaks discovered using valgrind
- create some directories (e.g. log folder etc)


2005/11/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted to Gwen2 (now works with the latest CVS of Gwen)


2005/10/25: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added some libpcsc functions which are needed by some IFD drivers
- added preliminary driver description for O2Micro (PCMCIA)
- undid two of Christian's changes (LastFailedTime and ShortFailCounter are
  actually needed, with them outcommented the server won't compile here)


===========================================================================
MARK: released Libchipcard2 1.9.16alpha (2005/10/22)
===========================================================================


2005/10/22: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added support for pcmcia device detection
- completed transition to new server code
- gcc 4 fixes
- implemented driver blacklisting (allows to have multiple driver information
  files for one reader)
- code cleanup (server now releases unneeded ressources)


2005/10/20: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- complete redesign of the server core.
  Divided core into multiple submodules which are quite independant from each
  other. This makes it easier to debug the code if necessary.
  New subgroups:
   - CardManager
   - ClientManager
   - DeviceManager
   - ServiceManager
  This transition is not yet complete. The new core also handles folders much
  better (i.e. no hardcoded folders).
- format of server configuration file changed slightly (should still read most
  existing config files, though)


2005/09/30: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- started working on a new server core: 
  - better separation of different aspects of the card server
  - makes use of GWEN_PathManager and GWEN_Plugin (no more hardcoding of
    paths into the source, neither by direct hardcoding nor by configure)


2005/09/23: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- KVK service now cleans up used cards (releases them)


2005-09-13  Christian Stimming <stimming@tuhh.de>

	* src/lib/chipcard2-client/client/msgengine.c: Fix gcc4 signedness
	warnings by adding explicit casts where the code previously used
	implicit casts/typeconversions. Watch out: The msgengine code for
	an XML node of type "ascii" (needed with KVK cards) might need
	more thought about the encoding of the resulting string. Currently
	the resulting string will be in latin1 encoding, *not* in
	utf8. That should be documented in the API somewhere.

2005/09/09: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- changed ISO verify/modify functions: Use LC_PININFO instead of only a few
  elements of it


===========================================================================
MARK: released Libchipcard2 1.9.15beta (2005/08/24)
===========================================================================


2005/08/24: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- reworked starcos card stuff (to make the card of Petric Frank work)
- cleaned up cards/starcos (removed functions which are now in 
  the corresponding crypttoken)
- disabled tool rsacard2 completely: This has now been obsoleted by gwen's
  gct-tool
- fixed memory card and kvk card: MemoryCard no longer selects the MF,
  and KVKCard ignores cmd-errors when selecting the MF


2005/08/23: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in STARCOS-vr description


===========================================================================
MARK: released Libchipcard2 1.9.14beta (2005/08/23)
===========================================================================


2005/08/23: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in CryptToken description of DDV card


2005/08/22: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added application description for VR-Networld kind of STARCOS cards
- added functions 
  - LC_Card_SelectedApp()
  - LC_Starcos_GetChPinId()
  - LC_Starcos_GetEgPinId()


===========================================================================
MARK: released Libchipcard2 1.9.13beta (2005/08/11)
===========================================================================


2005/08/10: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in MsgEngine: Was not returning "dword" as int type


2005/08/04: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added crypttoken for STARCOS cards ("Matrica")
- added function pointers to LC_CARD for generic ISO commands
- added crypttoken definitions to ddv0.xml and starcos.xml
- modified card module LC_STARCOS (breaks compatibility with AqHBCIs
  RSACard plugin. However, AqHBCI now uses crypttokens so that plugin
  is obsolete anyway)


2005/07/29: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted to latest changes in Gwen


2005/07/26: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added crypttoken plugin for DDV cards
- improved OpenSC detection (driver module now works again)


2005/06/17: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- partially applied patch provided by Andreas Jellinghaus (mostly regarding
  OpenSC):
  - PKG is now used instead of my own m4 file


2005/06/14: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added description for my driver for Cherry keybards


2005/06/01: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fs: added remote access code (LC_RFS, LC_FS_HandleRequest)
- data: added description for SCR33x readers from SCM (not tested yet)
- m4: fixed macros for OpenSC version detection


===========================================================================
MARK: released Libchipcard2 1.9.12beta (2005/03/28)
===========================================================================


2005/03/28: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- split off driver for old IFD interface (has now a folder of its own)


2005/03/15: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- switched from SCM driver to open source CCID driver for SCM readers.
  This has been tested with an SPR532 reader.
  For Libchipcard2 to be able to use this driver you'll have to compile the
  driver yourself:
    ./configure --disable-pcsclite
    make
    make install
- added support for old AND new IFD interface. This allows supporting old
  and new IFD drivers. Libchipcard2 now supports both CCID and SCM drivers
  for SCM SPR532. Whichever driver exists will be used.
- added missing files


2005/03/14: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- improved ATR for DDV1 cards


2005/03/08: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a memory leak in tutorial1c.c


2005/03/07: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- now GWEN_Init() and GWEN_Fini() are called from within the constructor and
  destructor functons of LC_Client.
  This is a workaround for systems which do not honour the constructor/
  destructor attributes in the source code of gwen.


2005/03/05: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added system-check code to m4 file for BSDs and MacOSX.
  Now libchipcard2 should be usable out of the box on MacOSX with a Cyberjack.


2005/03/04: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- prepared libchipcard2 to have system-dependent parts in driver.xml files
- added compile note for MacOS to README


===========================================================================
MARK: released Libchipcard2 1.9.11beta (2005/02/23)
===========================================================================


2005/02/23: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed some bugs in Geldkarte


===========================================================================
MARK: released Libchipcard2 1.9.10beta (2005/02/19)
===========================================================================


2005/02/19: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added a driver for OpenSC. This allows OpenSC to use Libchipcard instead of
  OpenCT, CTAPI or PC/SC


2005/02/16: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in fake CTAPI


2005/02/15: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- moved usb stuff to a convenience library of its own, to be used by drivers
  and setup tools in addition to the server
- no longer install the driver library (it is not needed by any tool except
  the built-in drivers, and no program should need it)
- added library libchipcardi.so (provides information about installed drivers
  and USB devices, this might be used by setup tools)
- added build-rules for WIN32 platforms (now compiles and the client already
  works)
- added ressource.rc.in files to all installed libs
- now use -version-info for LDFLAGS, also use "-s" on official releases
- renamed code files in src/chipcard2-client/mon to not interfere with those
  in src/chipcard2-client/client
- many minor fixes in Makefile.am's
- completed chipcard remote driver tool


2005/02/13: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- work on fake CTAPI:
  - added environment variable "LC_CTAPI_LOGLEVEL"
  - made it less verbous per default
  - fixed usage of PIN id for SecureVerifyPin/ModifyPin commands
- added license exception needed for Debian
- no longer install the server library (it is not needed by any tool except
  the chipcard daemon, and no program should need it)
- no longer install ctapi.h (not needed and it interferes with the same file
  from some drivers)
- added prefix "CHIPCARD_API" to all exported functions


2005/02/12: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- prepared server/driver code to let a driver send a list of supported 
  readers. This is needed for remote drivers and later for a PC/SC driver.
- decreased verbosity of chipcard-tool
- fixed some minor bugs
- prepared remote drivers: Remote drivers are used with networks of thin 
  clients (as requested by Gnumed developers). 
  With such a configuration there is a central chipcard daemon to which card
  readers connected to thin clients can connect. At this central server there
  may be a service which uses all readers at all thin clients (as the KVK
  service does). This feature has been requested and sponsored by Gnumed.
  
  I'm still working on the process watcher which will start and monitor the 
  remote drivers at the thin clients. This watcher has to restart the driver
  when the connection between driver and server has been cut off.


2005/02/08: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed some bugs
- added service: "KVKs". This is the replacement for libchipcard1s' "kvkd".
  It is now implemented as a service to Libchipcard2. It monitors all
  inserted cards, and if a memory card is found it tries to read that card.
  If the card is a KVK card its data is written to a file (same format as
  for kvkd).
  To start this service you have to add a "service" section to your
  chipcardd2.conf file:
  
  service {
    char serviceName="kvks"
    char serviceDataDir="YOUR_DATA_FOLDER"
    char logFile="YOUR_LOGFILE" # or omit this for reasonable defaults
    char flags="autoload" # this makes the server load this service upon
                          # its own start
  } # service
- services now use a default log file (like drivers do) if none provided in
  the config file


2005/02/02: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug spotted by Thomas Viehmann (concerning driver names)
- fixed another bug spotted by Hanno Boeck


===========================================================================
MARK: released Libchipcard2 1.9.9beta (2005/01/30)
===========================================================================


2005/01/30: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- changes in DDV card:
  - for DDV0 signKey and cryptKey versions are now always 0
  - LC_DDVCard_ReadInstituteData() now returns every record (even empty ones)
- "chipcardd2 addreader" can now also list available ports ("--rport list")


2005/01/29: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added function LC_DDVCard_WriteInstituteData() (to be used by the next
  DDVCard plugin of AqHBCI)


2005/01/28: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added command "CardCheck" which checks whether a card has been removed
- added command "CardReset" 
- added an ATR database: When a card is inserted the server checks the list of
  known cards for ATRs. If any of them matches the corresponding card type is 
  added to the list of possible card types. "chipcard-tool atr" should now show
  this.
  However, this only lists the *possible* card types, e.g. there is no way to
  tell an EC (Euro Cheque) card from a DDV card by ATR.
- started working on a fake CTAPI: It is now able to tell MoneyPlex that a
  Cyberjack reader is connected while in fact a completely other reader might
  be present (even tested with a SCM 532 which only comes with an IFD driver).
- fixed some bugs in DDV code


2005/01/27: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- more work on file system (added new file system which works with real
  files in a folder).
  When this is finished I will have to write a service which will for example
  offer a filesystem hierarchy which shows information about readers, cards,
  clients, service etc). Later I can built a KIO module for that...
- fixed a bug in the driver description file for Cyberjack ("autoPortMode"
  must be set to "vendorId")


===========================================================================
MARK: released Libchipcard2 1.9.8beta (2005/01/26)   [first one-package release]
===========================================================================


2005/01/26: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- "Happy Birthday" to my sister ;-)
- applied patch by Thomas Viehmann for LibSysFS support. Thanks Thomas !
- added tutorial3 and an example card type
- added function LC_Card_SelectApp()
- fixed some XML files for Cyberjack readers
- added driver variable "autoportmode" which defines how ports are to be
  assigned automatically:
  - productid: VendorId *and* ProductId must match to count a device
  - vendorId:  VendorId suffices
  Now the cyberjack uses the mode "vendorid" because to find out the port to
  be used we must also count old Cyberjacks (thats why the driver does this,
  too). Should now improve support for new Cyberjack.
- added callback function LC_CLIENT_SERVER_DOWN_FN which is called when
  a server went down. This can be used by applications to detect this.


2005/01/25: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- some fixes
- services are now based on clients (since services basically *are* clients
  which serve other clients)
- removed "OfferService" command
- added reader flags: NOINFO, REMOTE and AUTO
- reconnecting to a server now works
- unplugged readers are now removed (if they have been autocreated)


2005/01/24: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- now uses a single chipcard2.h and version.h file for all sublibraries
- moved service code from chipcard2-server/service to chipcard2-service


2005/01/23: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added support for new Cyberjack driver 2.0.6


2005/01/21: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- debugging of FS code (creating a folder and setting the CWD now works)
- added preliminary support for libsysfs (not yet enabled, I will have to
  create M4-macros for configure.ac first) submitted by Thomas Viehmann.
- fixed a bug which caused the nanny to remove the pid file of the child
  (patch submitted by Thomas Viehmann)


2005/01/16: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- more work on FS
- started working on first service: cardfs.
  This service will be part of a small service group which allows to view
  cards as a file system with special folders for any supported kind of
  cards.
- added monitoring for services
- added open- and close- and command service functions to client library
- chipcard-tool: now shows services, too. Also, you can now tell this tool
  *what* you are interested in:
  --services: if present services are listed
  --drivers:  if present drivers are listed
  --readers:  if present readers are listed
  It neither of these options are given the previous behaviour is selected
  where drivers and readers are listed.
- reordered functions in client.h


2005/01/13: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- valgrind session, fixed memory leaks in:
  - LC_CardServer__SampleDrivers()
  - LC_CardMgr_SampleFiles()
  - LC_Client_free()
- added function LC_Reader_DelClientRequests()
- when a driver goes down: delete its IPC client
- when client goes down: delete clients' requests
- fixed a typo in chipcardd2.c


2005/01/05: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added code which retrieves reader information via CTAPI. This information is
  now shown by "chipcard-tool check".


2005/01/04: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- started working on card file system


2005/01/02: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- combined chipcard2-client and chipcard2-server to form the new libchipcard2.


===========================================================================
MARK: released Libchipcard2 1.9.7beta (2004/12/31)
===========================================================================


2004/12/30: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- improved handling of drivers which do not behave themselves:
  E.g. sometimes the Cyberjack driver simply hangs upon CT_close(). This is 
  now detected and the driver is in this case terminated with brute force
  (signal KILL)
- fixed some bugs which made the server hold readers forever if a special
  command error occurred
- now transitional states are detected: I.e. if a client wants to access a 
  reader which is on its way down (or if its driver is going down) then the
  server finishes the deinitialisation in progress and remembers to start the
  reader afterwards
- fixed some possible problems in driver process (e.g. detect whether GWEN's
  IPC code is running wild)
- example server configuration files are now copied to the system folder
- the server now shows a message about whether USB support is enabled
- reworked Cyberjack-stuff:
  Added a driver configuration for the new Cyberjack driver (2.x) while the
  existing Cyberjack driver configuration uses the old driver (1.x) only.
  Now old AND new Cyberjack devices work in parallel.
- added code which autodetects the port value to be used for new Cyberjack
  drivers.
- added command "initialpin" to tool "rsacard"
- MemoryCard can now determine the capacity
- added some tutorials
- added tool "kvkcard" which reads German medical cards and stores the data
  to a file (or stdout)
- now an example configuration file is installed
- added tool "cardcommand" (port of my cardcommander from Libchipcard1)



2004/12/29: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- driver descriptions may now contain driver variables in "<vars>" section.
- added IPC command GetDriverVar
- added base card types ProcessorCard and MemoryCard
- added *_UnextendCard() functions to all non-base card types
- added tool memcard2


2004/12/22: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added support for Kobil Standard Plus (USB)
  Thanks to Bernd Wurst.
- added some port definitions to Kobil driver description


2004/12/04: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added starcos.xml for Cyberjack and Kobil devices
- tool rsacard: print a note if the PIN was successfully verified


2004/12/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added file doc/FAQ
- improved error output of drivers
- added commands to chipcard-tool:
  "check" 
    Starts all available readers and monitors their progress.
    This command can be used to check whether all readers are usable.
    The option "--showall" shows a detailed log about the status of
    each driver and reader.
  "atr"
    Waits for a card to be inserted into any reader and shows some
    information about it.


===========================================================================
MARK: released server version 1.9.6beta (2004/11/29)
===========================================================================
===========================================================================
MARK: released client version 1.9.4beta (2004/11/29)
===========================================================================


2004/11/29: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added support for new Reiner-SCT Cyberjack (USB device 0xc4b/0x300)
- now the list of installed drivers is reread whenever a new USB device is
  plugged in
- fixed a bug in client.c


2004/11/26: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added driver description for Omnikey CardMan drivers


2004/11/25: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in cardserver.c: was not adjusting the reader status when
  reader became unavailable
- added "enabled=1" in example files


2004/11/22: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added autoconfiguration support for Kobil Kaan Pro USB


2004/11/05: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- started working on services: now clients can offer services to other
  clients as well
- added service notification (sent by services to inform clients)
- implemented OfferService command
- now handling ServiceOpen, ServiceClose and ServiceCommand requests
- updated doc/IPCCOMMANDS


2004/11/04: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed some bugs in STARCOS xml data
- starcos.c: 
  - LC_Starcos_ReadInstituteData() now checks for empty contexts
  - fixed two bugs in ManageSE (double free/no pointer init)
  - fixed a bug in ReadSigCounter


2004/11/02: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- improved reader/driver error messages sent via notifications
- initial notifications in response to a SetNotify command are now sent
  before the actual response. This makes it easier for clients to determine
  when the list of readers/drivers is complete.
- renamed tool "geldkarte" to "geldkarte2"
- added tool "chipcard-tool" ("chipcard-tool list" lists all readers/drivers)
- added copyright headers to alll tools


===========================================================================
MARK: released Libchipcard2 1.9.5beta (2004/11/01)
===========================================================================


2004/11/01: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- LC_READER now includes a short description. This is send with reader
  notifications, too.
- improved searching for libraryFile: 
  - driver.xml files may now contain
    file patterns (such as "libtowitoko.so.*").
  - a default lowlevel driver folder is now searched before any other folder.
- readerNotifications: now reads short descriptions of readers


2004/10/31: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- cardserver.c: Upon receiption of a SetNotify message the server now 
  initially sends notifications for each driver/reader to give initial info
  to the client.


2004/10/30: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added monitoring framework (monitors chipcard servers by evaluating
  notifications)
- more work on notification framework: now the monitoring is built into
  the client. The monitoring is done transparently upon receiption of
  a notification. The client can get a pointer to the monitor via 
  LC_Client_GetMonitor(). This monitor keeps track of all servers, drivers, 
  readers etc which are announced via notifications.


2004/10/29: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added notification framework: clients may now sign in for notifications
  about driver started/up/down/error, reader started/up/down/error etc.
  This will simplify debugging and may be used for a monitor tool.
  These features can also be used to list working readers in clients (just
  apply for ReaderStart, ReaderUp and ReaderError notifications and send a 
  StartWait request. As soon as a reader is up the client will be notified).
- CardServer: CheckReader now removes existing currentRequestId


2004/10/10: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added Kobil CT B1-S reader (without keypad and display)


===========================================================================
MARK: released server version 1.9.4beta (2004/10/09)
===========================================================================
===========================================================================
MARK: released client version 1.9.3beta (2004/10/09)
===========================================================================


2004/10/09: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- rsacard: added options to modify logging-behaviour
- doc/chipcardc2.conf.example: clarifications
- README: filled with information


2004/10/08: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- starcos: now institute data is added even if empty


2004/10/06: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- cardcontext: "lr" property overwrites lr value, if -1
- added tool "geldkarte"


2004/10/05: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added card description for geldkarte
- fixed a bug in LC_CardServer_ReaderDbFromXml
- started working on geldkarte


2004/10/04: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- CTAPI driver now logs the port number used


===========================================================================
MARK: released Libchipcard2 1.9.3beta (2004/10/02)
===========================================================================


2004/10/02: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- USB-TTY code now works with 2.6.x kernels as well (thanks to Lukas Kolbe
  for his bug report on this)


2004/09/29: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug: Now it is allowed to have a configuration file without any
  driver sections (as is the case with autodetected-only readers)


===========================================================================
MARK: released server version 1.9.2beta (2004/09/26)
===========================================================================
===========================================================================
MARK: released client version 1.9.2beta (2004/09/26)
===========================================================================


2004/09/26: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- configure now uses $sysconfdir and $localstatedir instead of hardcoded
  $prefix derived values


2004/09/25: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- server now logs the error message when a driver sends a ReaderError
  notification.
- added vendor/product id of Towitoko Chipdrive USB
- tool rsacard: added commands to read/write bank information


2004/09/24: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- started the first tool: rsacard. This tool can be used to manage
  a STARCOS RSA card (used for HBCI in Germany)
- the tool rsacard is now able to create, activate, deactivate and export 
  keys.


2004/09/23: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- starcos: Secure PIN verification and modification works with
  SCM Chipdrive Pinpad ;-)
- started working on STARCOS (RSA) cards. The following already works:
  - extend card as a STARCOS card
  - retrieve pin status
  - verify cardholder pin
  - read a descriptor from EF_KEY_LOG
  - read a public key
  - write a public key


2004/09/22: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- started working on STARCOS cards
- msgengine: removed check for too few bytes in "bytes" handling
- fixed automake warnings about underquoted definitions


2004/09/20: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted to latest changes in Gwen
- added target for linked source docs
- removed reasons for automakes underquote warnings
- use sysconfdir instead of prefix/etc to conform to the holy Debian 
  guidelines ;-)
- chipcardd2:
  - split main file into multiple files, one for each command
  - added command "addreader". This command allows to add a reader to the
    configuration of the chipard daemon.


2004/08/30: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- valgrind session: fixed some memory leaks


2004/08/20: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted to latest changes in gwen
- created log domain for Libchipcard2 client


2004/08/09: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted to latest changes in gwen
- StartWait now clears the client's list of seenCards to allow reusing of 
  already seen cards.


2004/08/06: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted to latest changes in gwen
- fixed some bugs


2004/08/01: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted to latest changes in gwen


2004/07/27: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added support for Ludovic Rousseau's generic CCID driver.
  This should allow even more USB devices to be recognized.


2004/07/04: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- tools/chipcardd2: fixed a bug (one free to often)


===========================================================================
MARK: released server version 1.9.1beta3 (2004/07/03)
===========================================================================
===========================================================================
MARK: released client version 1.9.1beta4 (2004/07/03)
===========================================================================


2004/07/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed some major bugs (code, XML files)
- added a driver.xml for Kobil readers
- completed simple version of chipcard-setup tool


2004/07/02: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed some bugs


2004/06/27: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- setup tool will use the new UI in Gwen, so no need for low level console
  stuff here ;-)
- added driver description for old towitoko chipdrives


2004/06/18: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- started working on a ncurses based configuration tool.
  Hmm, ncurses is pretty cool (but it takes quite long to figure out how
  it really works)


2004/06/17: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added and armed auto-configuration code. The chipcard daemon is now
  able to detect plugging and unplugging of USB readers.
  For known readers (these are readers for whose driver we have a driver.xml)
  the correct port is selected (as needed with ttyUSBx readers such as
  Cyberjacks).
  While the Towitoko Chipdrive Pinpad can unplugged at any time the Cyberjack
  tends to hang up the USB bus if unplugged while still accessed...
  You can disable the autoconfiguration code by adding the following line
  to your chipcardd2.conf file:
     int disableAutoConf="1"
- the drivers now really disconnect when an transmission error is encountered
- readers that are not used and which are unavailable (as flagged by the
  USB monitor) are removed completely.
- Libchipcard now uses LibUSB to check for USB devices. This way the USB code
  is already ported to Linux (2.4, 2.6), FreeBSD, NetBSD, OpenBSD, Darwin...
- m4/libusb.m4: Wrote a rudimentary M4-script to detect LibUSB
- improved logfile handling by drivers: if not given otherwise a driver will
  use a separate log file for every reader.
- chipcardd2 can now accepts commands on the command line. This will later
  be used for some administration, for now the only command allowed (and
  which is the default command if omitted) is "server".
- added commands to chipcard daemon:
  - "init"  : creates all files necessary for SSL connections (certificate 
              etc)
  - "mkcert": creates a certificate for a user which he can use to securely
              communicate with the chipcard daemon


2004/06/15: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added testmode to drivers, this now allows for testing a reader (like the
  old tool "readertest" did)


2004/06/13: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added support for KVK cards (German medical cards)


2004/06/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added a service library (can be used to create services)
- added descriptions for KVK card
- added descriptions for Orga reader


2004/06/08: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- finished USB monitor, I will now have to use it in CardServer...


2004/06/07: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- started working on an USB monitor (which will later be used to detect
  plugged-in and plugged-out devices)


2004/05/30: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- results are now also searched for in data of cards which extend the current
  one (inheritage)
- added support for FPIN2
- aded verification commands for DDV0 cards
- added new chipcardd2
- results are now also searched for in data of cards which extend the current
  one (inheritage)
- added support for FPIN2
- aded verification commands for DDV0 cards


2004/05/29: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- worked on IPC stuff, added some files to DDV0 app


2004/05/26: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added implementation of command ReadRecord
- minor fixes to the MsgEngine
- added data files for cards and card applications


2004/05/24: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added binType functions for TLV to MsgEngine
- changed name to Libchipcard2
- completed reading of TLVs in MSgEngine


2004/05/23: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- executing commands using the new server-side command engine works ;-)


2004/05/20: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- started working on server based card commands, moved message engine
  from client to server library


2004/05/18: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- started working on MsgEngine for APDUs


2004/05/17: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted to new IPC module in Gwenhywfar
