
===========================================================================
MARK: released gwenhywfar-3.2.0 (2008/03/16)
===========================================================================


2008/03/12: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added function GWEN_Crypt_Token_KeyInfo_SetKeySize()
- changed behaviour of GWEN_Crypt_TokenFile__SetKeyInfo(): Now we don't
  just set the new KeyInfo object but we rather modify the existing
  KeyInfo object according to the flags in the new keyinfo.
  This avoids accidental overwriting of keyInfo data.


2008/03/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ct.h: added mode GWEN_CRYPT_TOKEN_MODE_DIRECT_SIGN (passes the flag
  GWEN_CRYPT_KEYRSA_FLAGS_DIRECTSIGN on to sign keys if set)


2008/03/10: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in ctfile.c (was applying unpadd algo before decryption)


2008/03/08: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added functions:
   - GWEN_Padd_PaddWithIso9796_2()
   - GWEN_Unpadd_PaddWithIso9796_2()
- ctfile.c: verify function now has special handling for padd/signature algos
  which add random bytes (like PKCS1#2, ISO 9796-2). In these cases the
  signature is first decoded then unpadded and compared to the signed data.
  Other algos which do not allow to recover the original data from the
  signature (like ISO 9797-1A) are still handled the other way around (i.e.
  first padding the signed data and calling GWEN_Crypt_Key_Verify which
  decodes the signature and compares it to the padded signed data).


2008/03/07: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in CryptToken plugin OHBCI: Now creates empty key info
  objects for keys missing in the file (thus allowing to create the 
  corresponding keys later)


2008/03/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added functions:
  - GWEN_Crypt_KeyRsa_GetFlags()
  - GWEN_Crypt_KeyRsa_SetFlags()
  - GWEN_Crypt_KeyRsa_AddFlags()
  - GWEN_Crypt_KeyRsa_SubFlags()


2008/03/01: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added function GWEN_Crypt_KeySym_dup()
- typemaker::write_code_duprec_c(): use the dup() function if "copy" is !=0 
  OR if "takeOver" is !=0 (previously we only checked for the "copy" 
  attribute)


2008/02/27: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- xml: added optional handling of namespaces


2008/02/26: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added function GWEN_Crypt_KeyRsa_dup()


2008/02/19: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- cgui: added password handling and TLS certificate handling so this is now
  also available to C console tools


2008/02/18: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added debug messages to io layer code


2008/02/15: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added GWEN_HttpSession: This module is a wrapper around the various
  io layers. It very much simplifies sending requests and receiving 
  responses and will be used by some of AqBanking's backends.


===========================================================================
MARK: released gwenhywfar-3.1.1 (2008/02/10)
===========================================================================


2008/02/10: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in ctfile.c (now ignores modulus and exponent in
  GWEN_Crypt_TokenFile__SetKeyInfo())
  Now gct-tool setsignseq works again with OpenHBCI keyfiles.


2008/01/29: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- parser/msgengine.c: decreased verbosity


===========================================================================
MARK: released gwenhywfar-3.1.0 (2008/01/25)
===========================================================================


2008/01/22: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- base/buffer.c: fixed a bug in IO mode


2008/01/15: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in src/parser/text.c whiche prevented the CSV plugin from
  reading lines with empty fields when using TAB as a delimiter
- gwentime_all.c: decrease verbosity


2008/01/08: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed GWEN_XML_ReadFromFastBuffer(): no longer requires the function
  GWEN_XmlCtx_GetCurrentNode(), so we really can write new XML context
  implementations which do not use XML nodes (e.g. for the new OFX parser)
- fixed a bug in GWEN_XML__ReadTag(): was not calling endTagFn for tags
  beginning with "/"


2007/12/18: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- applied a small patch by Andreas Steinmetz which fixes a bug in
  src/os/inetsocket.c


2007/12/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added GWEN_IDLIST64_ITERATOR which deprecates the following functions:
  - GWEN_IdList64_GetFirstId()
  - GWEN_IdList64_GetNextId()
  - GWEN_IdList64_GetFirstId2()
  - GWEN_IdList64_GetNextId2()


2007/12/10: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed another bug in GWEN_Buffer_ReplaceBytes()


===========================================================================
MARK: released gwenhywfar-3.0.1 (2007/12/07)
===========================================================================


2007/12/05: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in GWEN_Buffer_ReplaceBytes()


===========================================================================
MARK: released gwenhywfar-3.0.0 (2007/11/22)
===========================================================================


2007/11/19: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- GWEN_Gui_CGui is now less verbous in NonInteractive mode


2007-11-18  Christian Stimming  <stimming@tuhh.de>

	* m4/lib-prefix.m4 et al: Add additional aclocal macros that are
	needed by the iconv.m4 macro.


===========================================================================
MARK: released gwenhywfar-2.9.15rc6 (2007/11/17)
===========================================================================


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


===========================================================================
MARK: released gwenhywfar-2.9.14rc5 (2007/11/16)
===========================================================================


2007/11/16: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- io_tls: fixed some problems in TLS server code (used by Libchipcard in
  private and secure IPC modes)


2007/11/15: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- io_tls: added field dhParamFile which is used to specify a PEM encoded
  file containing DH params (used for TLS servers)


===========================================================================
MARK: released gwenhywfar-2.9.13rc4 (2007/11/14)
===========================================================================


2007/11/14: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- configure.ac: added --with-cfg-searchdir and --with-locale-searchdir


2007/11/13: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- translated messages from gui classes


===========================================================================
MARK: released gwenhywfar-2.9.12rc3 (2007/11/13)
===========================================================================


2007/11/12: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in target "make srcdoc" as pointed out by Micha Lenk
- GWEN_Io_Layer_ReadPacketToBuffer(): now stores any data received so far
  even if there was an error (fixes problems with some HBCI servers)
- GWEN_Io_LayerBuffered_AddRequest() no longer returns an error if a
  read request is to be added and the last result of enqueuing an outbound
  read request was an error. We still enqueue the new request to make all
  data available which have arrived prior to the error (that data would be
  already in internal buffers and still be available).


===========================================================================
MARK: released gwenhywfar-2.9.11rc2 (2007/11/11)
===========================================================================


2007/11/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- GWEN_Time_fromString() is now more tolerant when handling multiple/single
  digit elements (e.g. DD/MM/YYYY now also matches "1/12/2006" in addition to
  "01/12/2006")
- fixed a bug in mklistdoc (was not using the correct path to lookup
  templates)


2007/11/10: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- export GWEN_Socket_GetSocketInt() and make it part of the API (with
  a strong recommendation to only use it if it can't be avoided because
  it is not portable to every system)


===========================================================================
MARK: released gwenhywfar-2.9.10rc1 (2007/11/10)
===========================================================================


2007/11/08: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in GWEN_InetSocket_Select()


===========================================================================
MARK: released gwenhywfar-2.9.9beta (2007/11/07)
===========================================================================


2007/11/07: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- OpenHBCI keyfile plugin now reads and writes the key owner again
  (using field peerId from CryptToken context)
- fixed tool mklistdoc


2007/11/05: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added module for 64 bit id lists


2007/11/04: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- GWEN_BUFFER: increased maximum number of bookmarks to 32


===========================================================================
MARK: released gwenhywfar-2.9.8beta (2007/11/03)
===========================================================================


2007/11/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- dbio plugin olddb now has support for values of up to 16KB length. 
  No value in old OpenHBCI files should be longer than that.
- gct-tool: added command "setsignseq"


2007/11/01: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added functions GWEN_Buffer_RemoveRoom() and GWEN_Buffer_ReplaceBytes()


===========================================================================
MARK: released gwenhywfar-2.9.7beta (2007/10/31)
===========================================================================


2007/10/30: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed OpenHBCI keyfile code (now sets the key info objects when generating
  keys)
- added function GWEN_DB_WriteToFastBuffer()
- fixed a bug in GWEN_List1_AddList()


===========================================================================
MARK: released gwenhywfar-2.9.6beta (2007/10/30)
===========================================================================


2007/10/30: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- gct-tool: added command "genkey" which generates a key
- cryptkeyrsa.c: use the old libgcrypt API to generate RSA keys because
  the new API does not create the correct exponent


2007/10/29: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- applied a patch by Micha Lenk (use "localedir" as defined by autoconf)
- fixed a bug in GWEN_I18N_SetLocale()


===========================================================================
MARK: released gwenhywfar-2.9.5beta (2007/10/28)
===========================================================================


2007/10/28: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- check for OpenSSL again. However, this is only used by the gct-tool to
  convert very old files to the new version (AqBanking can't link against
  OpenSSL anymore, so in order to have the only function from OpenSSL we
  depend on while converting an ancient key file we have to link the
  gct-tool against it and provide that needed function).
- added CryptToken mode "update". If this bit is set the CryptToken is 
  allowed to update a key file
- added command to gct-tool: "update". This command uses the feature 
  described above.


===========================================================================
MARK: released gwenhywfar-2.9.4beta (2007/10/27)
===========================================================================

2007/10/27: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- improved I18N support


2007/10/26: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- 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 Gwenhywfar, too. That is Gwen looks for its data files and
  plugins in folders below the location of the called executable (using
  binreloc).
- added default ca-bundle.crt which is used for TLS connections when no other 
  trusted certs file is selected
- removed some pathmanager paths which weren't used anyway
- added pathmanager path for gwen's data
- io_tls.c now checks host name if one is set
- removed modules net2 (is no longer used anyway) and storage (including plugins,
  I will write a new one for my other project specifically)


===========================================================================
MARK: released gwenhywfar-2.9.3beta (2007/10/24)
===========================================================================


2007/10/24: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- function GWEN_PathManager_AddRelPath() now has an additional argument
  which specifies to what the path to be added is relative


2007/10/23: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added function GWEN_PathManager_AddRelPath() to add a path
  relative to the current working directory
- GWEN_PathManager_AddPath() now translates the given path so that WIN32
  can handle it e.g. when loading plugins
- on WIN32 platforms the plugin folder is also searched for in the current 
  working directory (e.g. "%PWD%\lib\gwenhywfar\plugins....")
- gwen now cross-compiles for WIN32 using mingw32 on Debian. The resulting
  binaries work on Windows XP :-) This makes it very much easier to compile
  a win32 version of gwen because mingw32 is sometimes broken on windows but
  works flawlessly on Debian... 
  Compiling is also much faster on Debian than on Windows.


2007/10/22: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added a missing #ifdef __cplusplus


2007/10/12: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- removed old OpenSSL-based crypto stuff


2007/09/22: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added GWEN_Gui_PasswordStatus_Remove (used to clear passwords)
- prepared more headers for use with C++


2007/09/21: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- many fixes to new crypt code etc


2007/09/18: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added some fields to the keyinfo structure which are needed by AqHBCI
- gct-tool: added command "showkey" to show available key information


2007/09/12: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted tls code to be able to work with gnutls < 1.6 (many distributions
  seem still to be using 1.4.x)


===========================================================================
MARK: released gwenhywfar-2.9.2beta (2007/09/11)
===========================================================================


2007/09/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed RSA code (now the new OpenHBCI crypt token works!)


2007/09/07: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- more fixes
- added function GWEN_Padd_UnapplyPaddAlgo()
- temporarily added a small tool to test the new CryptToken framework
  and to compare the results of cryptographic functions of both CryptToken
  frameworks (old and new)
- GWEN_GetPluginPath() is now deprecated, is is now recommended to use
  the path manager path GWEN_PM_PLUGINDIR instead
- adapted dbio and storage code to no longer use GWEN_GetPluginPath()


2007/09/05: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- numerous fixes
- added convenience functions:
  - GWEN_DBIO_ImportFromFile()
  - GWEN_Io_Layer_ReadPacket()
  - GWEN_Io_Layer_ReadPacketToBuffer()
- crypt token plugin framework:
  - now add plugin specific path from every generic plugin path


2007/08/10: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added convenience functions:
  - GWEN_DBIO_ExportToFile()
  - GWEN_DBIO_ExportToBuffer()


2007-07-08  Christian Stimming  <stimming@tuhh.de>

	* src/base/pathmanager.c, plugin.c: Change all registry key
	lookups to use HKEY_LOCAL_MACHINE as opposed to CURRENT_USER
	because we're talking about installation paths as opposed to
	per-user configuration settings. See also
	http://bugzilla.gnome.org/show_bug.cgi?id=454108.

	* src/base/list2.h: Add sanity check in ForEach so that calling
	this with a NULL list doesn't crash.


2007/06/21: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed fastbuffer
- applied a patch by Christian to make gwen compile correctly on 64 bit 
  systems without warnings


2007/06/20: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- improved and fixed GWEN_FAST_BUFFER, adapted GWEN_DB and GWEN_XML modules
  to make use of it
- added some convenience functions for reading/writing GWEN_DB and
  GWEN_XML to ease the transition from GWEN_BUFFEREDIO to GWEN_IO_LAYER
- fixed GWEN_XML, split-off xml io to xmlrw.c
  Now xmlmerge works again :-)


2007/06/19: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- improved GWEN_INHERIT_FINI (use safer variable names inside the macro)
- fixed GWEN_Buffer_AdjustUsedBytes(): Was not adding trailing \0 when
  it should
- decreased verbosity of some modules
- added function GWEN_DB_WriteToFd()
- split-off read/write functions of GWEN_DB (->dbrw.c)
- adapted ipc module now works (as proven with libchipcard4)


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

	* configure.ac: For the gwentest libxml2 check and --cflags and
	--libs retrieval, use pkg-config rather than xml2-config.

	* 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/14: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added io layer io_packets which reads and writes complete packets
- list1.h: added function *_List_HasElement() which checks whether a given
  element is member of a given list
- io_*: modifed behaviour of function AddRequest: Now the request's finish
  handler is not called if the result of the AddRequest function is
  GWEN_ERROR_TRY_AGAIN. This allows for adding the same request at at
  later time
- moved url*.{c,h,xml} from src/net2 to src/parser
- added check for io_packets (now passes)
- adapted GWEN_IPC code to use IO layer instead of the deprecated NetLayer
- changed argument list for GWEN_IpcManager_SendRequest(): Now a meaningfull
  error code is returned (so the caller can determine not only *that* the
  function failed but also *why*)


2007/06/13: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- implemented an HTTP io layer
- added a check for new HTTP io layer
- fixed io layer for sockets (reconnect now works)
- added a check for new HTTP io layer over TLS
- removed DBIO plugin rfc822
- moved GWEN_DBIO from GWEN_BUFFEREDIO based to io layer based
  approach
- adapted GWEN_DBIO plugins to the changes in GWEN_DBIO
- adapted tool "typemaker" to latest changes
- added argument "guiid" to some GUI functions. This allows GUI 
  implementations to keep track of e.g. parent widgets etc by
  using this guiid. It is up to the GUI implementation to
  interprete this guiid (or to just ignore it like the console
  GUI implementation does)


2007/06/12: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- xml:
  - removed read functions which were based on GWEN_BUFFEREDIO
  - replaced them with functions which use IO layers. These functions have
    been moved from xml2.c to xml.c and they now internally use a
    GWEN_XML_CONTEXT. Such a context contains callbacks for all major actions
    when reading XML files (e.g. when an element begins and ends, when data or
    comments have been read, attributes etc).
    The replacement read functions mentioned above create such a context
    themselves for the programmers convenience. This standard context just
    stores the elements read into a GWEN_XMLNODE as the previous read
    functions did. However, the programmer is now free to do whatever he
    likes with received elements etc (e.g. use them not to store them into
    and XML node but to create structures/objects from the data)
  - IMPORTANT: removed functionality of including XML files! The "<include>"
    element no longer serves as an include command! However, this can
    still be implemented by providing your own GWEN_XML_CONTEXT which has
    a different implementation for the StartTag/EndTag callbacks.


2007/06/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- implemented new file read function for GWEN_DB (uses IO layer)
- implemented new file read function for GWEN_XML (uses IO layer)


2007/06/09: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- changed behaviour of GWEN_INHERIT_FINI: When this function is called all
  type extension data is free'd by calling the *_freeData() callback function.
  At this point (at least until after that function returns) the type extension
  data *must* remain accessible via GWEN_INHERIT_GETDATA because the callback
  function might want to perform some cleanup actions.
  Before this change GWEN_INHERIT_FINI just called 
  GWEN_InheritData_List_free(), but that function works by first removing 
  elements from the list and then deleting them. This means at the point where
  the GWEN_InheritData_free() function is called (which in turn calls the 
  _freeData callback) that particular object is no longer in the list which
  makes it inaccessible via GWEN_INHERIT_GETDATA.
  So now GWEN_INHERIT_FINI clears the list by hand which allows _freeData()
  callbacks to still find type extension data via GWEN_INHERIT_GETDATA
- started working on io_tls (IO layer which provides a TLS layer over a given
  base layer). I can at least use it now to request a document from an HTTPS 
  server
- moved ssl_cert_descr from crypt/ to iolayer/ since it will be used there and
  the crypt/ folder will soon be removed
- added function GWEN_Gui_CheckCert(): This is used by io_tls to ask the user
  whether he wants to accept the certificate. The default implementation in
  cgui.c shows the cert on the console and asks whether the user wants to
  accept the certificate
- io_tls now reads the peer's certificates and performs some checks. It ist
  still up the application/user to decide whether the received cert is
  accepted
- added preliminary check for io_tls


2007/06/08: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added io layer: io_socket. This is an io layer which uses sockets to 
  transfer data
- improved posix/inetsocket.c: Some of the error checking was still based on
  the long deprecated GWEN_ERRORCODE behaviour, so in some cases the system's
  error code wasn't translated to GWEN's error codes. This might be the
  reason why on some systems connecting to some servers didn't work
- added check for io_socket (reads http://devel.aqbanking.de/index.html)
- started working on io_codec (this is a generic io layer which takes input
  from requests, encodes/decodes it and writes the result to a base layer.
  This will be used for the new GNU TLS based SSL io layer.


2007/06/07: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- io_buffered:
  - added flag GWEN_IO_REQUEST_BUFFERED_FLAGS_UNTILEMPTYLINE (same meaning
    as the flag GWEN_BUFFEREDIO_FLAGS_UNTIL_EMPTY_LINE); report EOF upon
    encounter of an empty line


2007/06/06: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- completed io_file
- added check for io_file
- export io layer functions
- added io_buffered (will soon replace GWEN_BUFFEREDIO)
- added checks for io_file and io_buffer
- added io_memory (uses a GWEN_BUFFER to read/write data)


2007/06/05: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added function GWEN_Gui_WaitForSockets()
  Most GUIs allow to add sockets to their internal socket list, so a
  GWEN_GUI implementation can use that feature. This has the benefit
  that while GWEN is waiting for sockets the GUI is updated more
  fluidly.
- added new io layer (much simpler than its predecessor GWEN_NETLAYER)
  This module will replace some of the now deprecated modules:
  - GWEN_NETLAYER
  - GWEN_BUFFEREDIO
  This layer is request based which makes it much easier to maintain since
  those requests can be easily enqueued. It is now much easier to determine
  whether an io layer has something to send or receive (just check whether
  the io layer has enqueued requests). This also reduces the number of
  virtual functions an io layer has to implement.
- added first implementation of GWEN_IO_LAYER: GWEN_Io_LayerFile_new() 
  creates an io layer which reads/write to/from files


2007/06/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added functions:
  - GWEN_Crypt_KeyRsa_GetModulus()
  - GWEN_Crypt_KeyRsa_GetExponent()
  - GWEN_Crypt_KeyRsa_fromModExp()


2007/06/01: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- new CryptToken plugin compiles (functionality not yet tested)
- implemented CryptToken plugin stuff for new CryptToken
- started working on new gct-tool (which will later replace the
  current one)


2007/05/28: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- started working on replacement for CryptToken plugin "OHBCI"
- moved module tag16 from old "ohbci" folder to src/parser (it will be
  used for other code as well)
- temporarily disabled new plugin (will only be compiled when running "make"
  from within the folder)
- fixed old CryptToken plugin (now compiles again)


2007/05/21: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- implemented some more CryptToken functions
- base class for file-based CryptToken finnished


2007/05/20: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- implemented most virtual functions of file-based crypt token


2007/05/19: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- started working on new, much simpler CryptToken API
- added GWEN_Gui_LogHook() which is called at the beginning of
  GWEN_Logger_Log() to give tha application an opportunity to catch all
  logs
- GWEN_FSLock_Lock() now takes an additional argument for a GUI id
  (as assigned by GWEN_GUI). This provides support for gui threads of
  actions (so the application can group widgets appropriately)
- started implementing  file based CryptToken (like the old 
  GWEN_CryptTokenFile module, but now based on the new crypt token
  module)


2007/05/18: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- finished implementing RSA key (works now)
- implemented symmetric keys (DES3K, BlowFish)
- no longer store padd/crypt/hash algos with the key (the key has nothing
  to do with those anyway)


2007/05/16: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added base module for hash algos
- moved padding code from crypt to crypt3 (is usefull here as well)
- started implementing RSA key (not finished yet, but I call it a night)


2007/05/14: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added new implementation for basic crypt key stuff


===========================================================================
MARK: released gwenhywfar-2.9.1beta (2007/05/14)
===========================================================================


2007/04/12: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed bug in CGUI (was not storing pointer to GWEN_GUI in CProgress)


2007-05-11  Christian Stimming  <stimming@tuhh.de>

	* src/base/logger.c: Fix LoggerType_Function. By Hendrik Weimer.


===========================================================================
MARK: released gwenhywfar-2.9.0beta (2007/04/03)
===========================================================================


2007/04/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- changed the way the release string is created (no "-" between version and
  tag)
- prepared release


2007/03/12: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- src/os/posix/process.c: now use GWEN_BUFFER to collect arguments for
  the process to start instead of fixed buffers


2007/03/09: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- allow Gwenhywfar to be included in other projects (using static linking)
- applied patch from cstim which adds makros for the functions
  GWEN_List_FindIter(), GWEN_List_Contains() and GWEN_List_IsEmpty()
- added function GWEN_ConstList_Remove()


2007/03/08: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- adapted crypt/none (now works again)


2007-02-16   Christian Stimming <stimming@tuhh.de>

	* src/gwenhywfarapi.h: Add common macros for DIR_SEPARATOR and
	SEARCHPATH_SEPARATOR, both as character and string. Naming is
	similar to glib convention.


2007-02-13   Christian Stimming <stimming@tuhh.de>

	* src/os/directory.h: Add GWEN_Directory_GetTmpDirectory()
	function to have a uniform method for getting a temporary
	directory, similar to g_get_tmp_dir().


2007-02-09   Christian Stimming <stimming@tuhh.de>

	* src/os/windows/directory.c: For GetHomeDirectory() on windows,
	really look up the user's home directory now.  (Previously this
	used the WindowsDirectory, but this is fixed now.).


2007-01-29   Christian Stimming <stimming@tuhh.de>

	* m4/binreloc.m4: Fix detection of binreloc support for
	autoconf>=2.60.


2007-01-21  Christian Stimming  <stimming@tuhh.de>

	* configure.ac: Simplify OS section about windows; detection of
	WIN_PATH_SYSTEM et al is no longer necessary for libtool-aided
	builds, so we skip this here.
	
	* m4/ssl.m4: Change openssl detection on win32 so that gnuwin's
	libtool libraries are looked for; alternatively, the user could
	set ssl_lib and ssl_libraries externally.

	* configure.ac: On win32, change gwenhywfar_libs flags back to
	"-lgwenhywfar" without so-version because libtool will lookup the
	library name without so-version number.


2007/01/21: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- xml: added flag GWEN_XML_FLAGS_TOLERANT_ENDTAGS
- added xml2.{c,h}: This module reads XML files and calls some callback 
  functions upon encounter of elements, attributes, comments etc.


2007/01/19: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in db.c: Was not accepting ":" instead of "=" when flag
  GWEN_DB_FLAGS_USE_COLON was given


2007/01/13: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed some minor bugs


2007/01/10: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- bufferedio:
  - added var "filteredLinePos" which holds the position within a line
    without CR characters (#13)
  - added flag GWEN_BUFFEREDIO_FLAGS_UNTIL_EMPTY_LINE
    When this flag is set then GWEN_BufferedIO_ReadChar() returns EOF upon
    encounter of an empty line
- db:
  - replaced GWEN_BUFFEREDIO_FLAGS_STOP_ON_EMPTY_LINE by
    GWEN_BUFFEREDIO_FLAGS_UNTIL_EMPTY_LINE to detect its use in derived
    projects: The meaning of this flag has changed, because the DB reading
    code has changed. The new flag only applies to functions which create
    GWEN_BUFFEREDIO objects themselves (like GWEB_DB_ReadFile).
    If you want the reader to stop on empty lines while reading from a
    GWEN_BUFFEREDIO you must add the flag 
    "GWEN_BUFFEREDIO_FLAGS_UNTIL_EMPTY_LINE" to it.
  - fixed some bugs
- armed console GUI


2007/01/09: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added a section about callbacks and GWENHYWFAR_CB to doc/STYLE
- all plugins are now adapted to the latest changes


2007-01-09   Christian Stimming <stimming@tuhh.de>

	* src/*: Add missing __stdcall decoration on callback functions as
	needed on win32 since r1087 (2006-09-14). In other words,
	gwenhywfar-2.4.1 and 2.5.0 are probably broken on win32.


2007/01/07: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added functions to GUI:
  - GWEN_Gui_GetPassword
  - GWEN_Gui_SetPasswordStatus
  These functions are used by the crypt manager and can be used by programs
  or libraries (e.g. AqBanking).
- PluginManager now internally uses PathManager to manage the plugin paths,
  so there now is only one module which handles paths
- the PluginManager for CryptTokens is now created by Gwenhywfar itself and
  no longer has virtual functions: The former virtual user interaction
  functions internally now call GWEN_GUI functions, so there is on place less
  to overwrite user interaction functions (which leaves GWEN_GUI as the only
  place where interaction is to be caught by applications)
- GWEN_NetLayerSsl_AskAddCert() now as a default makes the necessary GUI 
  calls if no handler is set
- gui: Setters for virtual functions now return the previous functions


2007/01/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- replaced all uses of GWEN_WAITCALLBACK by use of GWEN_GUI, so from now on
  there is only one place where user interaction is to occur
- cleaned up namespace (removed compatibility macros)
- removed GWEN_DB_HASH_MECHANISM
- large-scale rewrite of GWEN_DB code: 
  - Now reading a normal GWEN_DB file is sped-up by a factor of about 200 with
    a 3.8 MB file. GWEN_DB_NODE's now internally use GWEN_LIST code, so when 
    appending a node to a GWEN_DB we no longer have to traverse the full list
    in order to find the last node of a branch. Therefore the speedup-factor 
    rises exponentially with larger files.
  - reading of a file is now stream-oriented (as opposed to the line-oriented
    approach of Gwen2). This allows for a much better representation of large
    amounts of data
- added a folder containing tests for gwenhywfar (checks/)


2006/12/30: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- enable the _free()-function in plugindescr.c (freeAll())
- removed GWEN_TYPE_UINT32/64, replaced with standard types 
  uint32_t/uint64_t which are defined by "#include <inttypes.h>"
- changed paradigm of error logging: Only log with priority "ERROR" at the
  point the error is detected. Later code in the stack only logs with priority
  "INFO". This makes error GWEN less verbous in case of errors.
- started renaming, reordering and renaming error codes to be more
  consistent
- added GUI interface (like it has been used in AqBanking), added first
  frontend (console gui).
  The intention is to replace all the different ways currently used to 
  handle user interaction (in CryptManager, WaitCallback etc) by a single
  and simple one.
- started renaming some types to be more consistent throughout Gwenhywfar
  - GWEN_DIRECTORYDATA -> GWEN_DIRECTORY
- removed parser/csv*.{c.h} (this is deprecated for a long time since it has
  been replaced by a DBIO plugin)


===========================================================================
MARK: started working on gwenhywfar3 (2006/12/29)
===========================================================================


===========================================================================
MARK: released gwenhywfar-2.5.0 (2006/12/25)
===========================================================================


2006/12/25: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- decreased verbosity of libloader code


2006-10-11   Christian Stimming <stimming@tuhh.de>

	* src/gwenhywfar.c: Make plugindir lookup relocatable as well. By
	now, the full gwenhywfar should be relocatable.


2006/10/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added functions GWEN_NetLayerPackets_GetFixedPacketSize() and
  GWEN_NetLayerPackets_SetFixedPacketSize(): This allows the packets netlayer
  determine on its own how many bytes have to be read for a complete packet
  -> this constitutes an API enhancement
- src/gwenhywfar.c: initialize binreloc only once, decreased verbosity,
  changed position of binreloc init call because the GWEN_LOGGER mechanism is
  only available after the logger module has been initialized


2006-10-10  Christian Stimming  <stimming@tuhh.de>

	* src/gwenhywfar.c, src/binreloc.[hc]: Add initial binreloc
	support; all directories except plugindir (!) are now looked up
	automatically at runtime.


2006/10/02: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- decreased verbosity of netlayer and OS functions


===========================================================================
MARK: released gwenhywfar-2.4.1 (2006/09/26)
===========================================================================


2006/09/28: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in netlayer: Was not resetting "inStatusChangeFn"
- decreased verbosity in nl_ssl.c


2006/09/25: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a possible memory leak in netlayer code


2006/09/20: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- nl_packets: Don't start sending data unless the next lower layer is
  connected
- decreased verbosity in src/os/directory_all.c
- decreased verbosity in src/parser/xml.c and src/base/plugindescr.c


2006/09/19: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- decreased loglevel of some messages in gct-tool
- function GWEN_NetLayerSsl_GenerateCertAndKeyFile() now always
  sets permissions so that only the creating user will be able to
  access the resulting file


2006/09/15: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in GWEN_Logger: Now removes a logdomain upon close
- removed the following functions, because they were never used and never
  should be:
  - GWEN_Logger_new()
  - GWEN_Logger_free()
  - GWEN_Logger_Attach()
  - GWEN_Logger_SetDefaultLogger() (was deprecated for a long time)
  - GWEN_Debug_Error_Log() (internal functions, not used)
  - GWEN_Debug_Error_Err() (internal functions, not used)
- removed the definition of the type GWEN_LOGGER: No part of the API uses
  this struct (a logdomain is represented by a char*), so there is no need to
  expose this type
- fixed prototype for GWEN_Text_DumpString2Buffer(), GWEN_Text_DumpString(),
  GWEN_Text_LogString() (use "unsigned int" instead of "unsigned")


2006/09/14: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- introduced attribute GWENHYWFAR_CB which expands to "__stdcall" on WIN32
  systems. This prevents some spurious errors we get on Win32 systems
  when inherited classes are used (those errors are very hard to debug so
  we now prevent them).
  On WIN32 systems this changes the API of inherting classes!
  However, our main development system is Linux, and on such systems nothing
  changes. Therefore we will also increment SO_AGE for the next release.


2006/09/04: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- implemented the function GWEN_Logger_SetLogFunction()


===========================================================================
MARK: released gwenhywfar-2.4.0 (2006/08/25)
===========================================================================


2006/07/16: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added a simple signal/slot framework which allows a single signal to be
  connected to multiple matching slots
- fixed a bug in list.c (pointed out by "Archimedes Submerged")


2006/07/15: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_List_Erase(): The given iterator is move toward the next element in any
  case (if there is no next element then the iterator will point to 0).
  This makes the return conditions clear to the caller.


===========================================================================
MARK: released gwenhywfar-2.3.1 (2006/07/13)
===========================================================================


2006/06/23: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added GWEN_DBIO plugin for XML data


===========================================================================
MARK: released gwenhywfar-2.3.0 (2006/06/15)
===========================================================================


2006/06/16: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- decreased verbosity of nl_packets.c


2006/06/03: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- plugins/storage/localfiles: 
  - fixed a problem with the latest checkin:
    The storage code assumes that every object has a unique id. So to ensure
    this while keeping GWEN_IDMAPs effective the upper 8 bytes of the id
    are now reserved for the type.


2006/06/01: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- src/storage: 
  - fixed some bugs
  - object ids are now only unique within a type's namespace. This allows
    for a more efficient use of GWEN_IDMAP to store object ids per type.


2006/05/23: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- src/storage: 
  - now logs creation of new objects
  - introduced lockCount for object locks thus allowing one client to have
    multiple locks on a given object
- src/storage.c: fixed a bug


2006/05/22: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- improved idmap code: now iterates over const idmaps (i.e. the argument
  *pid to the function GWEN_IdMap_FindNext() is now used as attach point
  instead of an internally stored var). This also allows for multiple
  iterations in parallel


2006-05-22   Christian Stimming <stimming@tuhh.de>

	* src/: Add include file ifdefs, which might be necessary on some
	windows (MSVC) platforms.


2006/05/20: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added function pr##_IdMap_freeAll() to GWEN_IDMAP macros which e.g. expands
  to GWEN_Buffer_IdMap_freeAll() for
  "GWEN_IDMAP_FUNCTION_DEFS(GWEN_BUFFER, GWEN_Buffer)".
  This function frees all objects stored in the GWEN_IDMAP and frees the 
  GWEN_IDMAP itself.
- added function pr##_IdMap_FreeItems() to GWEN_IDMAP macros which e.g. 
  expands to GWEN_Buffer_IdMap_FreeItems() for
  "GWEN_IDMAP_FUNCTION_DEFS(GWEN_BUFFER, GWEN_Buffer)".
  This function frees all objects stored in the GWEN_IDMAP and clears the 
  GWEN_IDMAP (e.g. make it contain no ids afterwards).
- src/storage: added argument "reason" to GWEN_StoStorage_UnregisterClient(),
  which is now logged in the new log messages beginSession and endSession
- src/base/idlist: added functions which allow iterating over 
  const GWEN_IDLIST as well


2006-05-19   Christian Stimming <stimming@tuhh.de>

	* configure.ac: Let svn write the revision number directly into
	here on each svn update. Fixes all problems with using svninfo.


2006/05/18: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added base/idmap: This code allows for fast and efficient storage of
  pairs of [32-bit ID and a void* pointer].
  Such pairs can be set, reset and sought. This new class also allows to
  fastly iterate over the pairs.
  It allows for multiple storage algos. The first algo uses 8-step pointer
  tables of 16 entries per table.
- added typesafe macros for idmap (like those macros for GWEN_LIST2), e.g.
  "GWEN_IDMAP_FUNCTION_DEFS(GWEN_BUFFER, GWEN_Buffer)" would create an idmap
  for GWEN_BUFFER objects instead of void* pointers. So the function
  GWEN_Buffer_IdMap_GetPtr() will only work on an idmap which stores pointers
  to GWEN_BUFFERs and it returns a pointer to a GWEN_BUFFER rather than a
  void* pointer.


2006/05/17: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added storage framework (to be used by some of my developing projects)
- added first storage plugin which uses local files
  The storage framework is not yet part of the official API of Gwenhywfar,
  so API changes are likely to occurr.


2006/05/15: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- base/idlist_p.h: increased GWEN_IDTABLE_MAXENTRIES from 16 to 32


2006/05/11: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- parser/db.c: increased word buffer size
- parser/xml.c: fixed a bug in GWEN_XMLNode_HandlePath


2006-05-10   Christian Stimming <stimming@tuhh.de>

	* configure.ac: Change RELEASE_STRING of svn versions from
	x.y.z-r111 to x.y.z.r111 because tools like rpmbuild do not accept
	a '-' inside the version numbers.


2006/05/04: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- removed prototype for a function which had been removed in previous
  versions


2006-04-24   Christian Stimming <stimming@tuhh.de>

	* test/README.MSVC: Update description on how to create a
	libgwenhywfar.lib file for MSVC.



2006/04/22: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- text.{c,h}: 
  - added function GWEN_Text_UnescapeN()
  - added function GWEN_Text_EscapeTolerant()
  - added function GWEN_Text_UnescapeTolerant()
  - added function GWEN_Text_UnescapeTolerantN()


2006-04-18   Christian Stimming <stimming@tuhh.de>

	* src/gwenhywfarapi.h: Define __attribute__((deprecated)) not on
	all __GNUC__, but only on gcc >= 3.0.x because gcc-2.95 doesn't
	yet have it.

	* src/base/logger.h: Replace __attribute__((deprecated)) by the
	macro from gwenhywfarapi.h.


===========================================================================
MARK: released gwenhywfar-2.2.0 (2006/04/12)
===========================================================================


2006/04/12: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed rfc822 DBIO plugin (import *and* export now work)


2006/04/10: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- net2/urlfns.c, net2/url.xml:
  - added fields "userName" and "password" to GWEN_URL, the format of a
    complete URL is now:
    "proto://user:passwd@host/path:port", as in
    "http://me:secret@here/path:123"
    These new fields are optional, of course.


2006/04/07: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- included a temporary fix for MacOSX as suggested by Thorsten (introduce a 1s
  sleep when writing to a socket for the first time). 
  This is just an ugly hack, but it should work.


2006/04/06: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- db.c:
  - GWEN_DB_ReadFile(), GWEN_DB_ReadFileAs(), GWEN_DB_WriteFile() and
    GWEN_DB_WriteFileAs() now honour the flag "GWEN_DB_FLAGS_DOSMODE"
- added GWEN_DBIO: "rfc822". This plugin reads RFC822 message headers (e.g.
  those used in maildir or in HTTP requests)
- GWENHYWFAR_VERSION_BUILD is now automatically updated from SVN's revision
- changed GWENHYWFAR_VERSION_RELEASE_STRING and GWENHYWFAR_VERSION_FULL_STRING


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


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

	* src/parser/xsd_write.c, src/net2/nl_http.c: Add cast to
	isdigit() et al functions; needed for platforms where "char" has a
	different signedness than on most platforms. Notably
	sparc-solaris.

	* configure.ac: Change gcc version number checking so that it
	works with 2.95.x as well.


===========================================================================
MARK: released gwenhywfar-2.1.1 (2006/03/26)
===========================================================================


2006/03/26: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in DBIO plugins: Was returning a false value when file to be
  checked did not exist


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

	* src/os/posix/fslock.c: Cast the result of getpid() to
	int. Necessary for sparc-solaris.

	* src/base/memory.c, plugins/dbio/olddb/olddb.c: Fix format args
	for amd64 platform.


2006/03/22: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- nl_hbci.c: Also print code and text when logging error response
- list1.h: Allow to define lists with private constructors (i.e. the
  constructor/destructor is invisible to applications)
- list2.h: Made some arguments const where possible


===========================================================================
MARK: released gwenhywfar-2.1.0 (2006/03/20)
===========================================================================


2006/03/20: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added flags to NetLayer_Log which allow to choose what data to log 
  (incoming and/or outgoing data)


2006/03/16: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in IPC request manager


2006/03/15: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- replaced old GWEN_LIST stuff by new code: These new lists are a drop-in
  replacement for the old lists (source-compatible) and are double-linked.
  In addition to storing the first element these lists now also store a
  pointer to the last element. This makes browsing of the list when adding
  an element unnecessary.
- XML code now uses the new lists instead of its own list code. This leads
  to an astonishing speedup for XML loading:
  Loading times for an XML file with about 16MB of data:
     Gwenhywfar 2.0.0.1: 11 secs
     Gwenhywfar 2.0.0.2: 2-3 secs
  If I can find the time I will also change the GWEN_DB code to use these
  lists instead of its own list code.
- fixed a bug in keyspec.c: Was not initialising list structures


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

	* src/io/bufferedio.h: Make some simple accessor functions const
	because they don't modify the object.


2006/03/02: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in waitcallback code


===========================================================================
MARK: released gwenhywfar-2.0.0 (2006/02/27)
===========================================================================


2006/02/24: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- mklistdoc now recognizes const list macros as well


2006-02-17   Christian Stimming <stimming@tuhh.de>

	* configure.ac: Use AC_CONFIG_HEADERS, not HEADER, in according to
	autoconf docs.


2006/02/15: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added functions GWEN_CryptToken_GetMatchingContexts() and 
  GWEN_CryptToken_FindContextInList(). This very much simplifies working with
  crypt tokens.
- adapted "ohbci" crypt token context description to the latest changes


2006/02/14: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- removed debug messages in ct_file.c


2006-02-10   Christian Stimming <stimming@tuhh.de>

	* src/base/buffer.h, list.h: Improved documentation.


2006/02/10: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- finally fixed the spurious signature bug which sometimes caused HBCI
  signatures to be invalid


2006/02/09: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added function GWEN_NetLayer_WaitForStatus()
- fixed two bugs in PKCS1 padding


2006/02/07: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- declare GWEN_Random() public


===========================================================================
MARK: released gwenhywfar-1.99.7 (2006/02/06)
===========================================================================


2006/02/06: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added a test executable (for now only checks base64 code)


2006-02-06   Christian Stimming <stimming@tuhh.de>

	* src/os/{posix,windows}/fslock.c: Free strdup'd string to fix a
	memory leak.


2006/02/03: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added functions GWEN_NetLayerHttp_GetHttpVersion()
  and GWEN_NetLayerHttp_SetHttpVersion()
- fixed a bug in GWEN_InetSocket_Accept_Wait (was waiting for writeability,
  should rather wait for readability)
- fixed another bug in GWEN_InetSocket_Accept_Wait(): Was closing socket
  even wif the error simply was a timeout
- netlayers can now take over already connected baseLayers
- OpenHBCI CryptToken:
  - now saves new auth keys


2006/02/02: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- OpenHBCI CryptToken:
  - now supports keylength of up to 2048 bits
  - now accepts key ids up to 6 (including the new auth keys)
- CryptToken: Context functions now return non-const pointers, because
  otherweise we would also have to copy all that stuff even for objects
  we own
- src/os/inetsocket.h: 
  - added socket type GWEN_SocketTypeFile
  - added constructor GWEN_Socket_fromFile()
- added GWEN_NetLayer_Stdio which uses stdin and stdout on non-WIN32 systems


2006/02/02: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added auth-key to GWEN_CryptToken_Context
- OpenHBCI CryptToken:
  - implemented additional keys and keyLength. Additional tags:
    - GWEN_CRYPTTOKEN_OHBCI_TAG_KEY_LEN
    - GWEN_CRYPTTOKEN_OHBCI_TAG_USER_PRIVAUTHKEY
    - GWEN_CRYPTTOKEN_OHBCI_TAG_INST_PUBAUTHKEY
  - updated version to 1.7 (still compatible to older versions)


===========================================================================
MARK: released gwenhywfar-1.99.6 (2006/01/30)
===========================================================================


2006-01-31   Christian Stimming <stimming@tuhh.de>

	* src/types.h.in: Fix bad include order between gwenhywfarapi.h
	and this file.


2006/01/30: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- OpenHBCI CryptToken:
  - now signals a bad pin to the CryptManager (UI, which
    is implemented e.g. in AqBanking). Now when entering a bad pin in a
    AqBanking environment leads to the expected behaviour.
  - no longer show the message "unknown tag 16"


===========================================================================
MARK: released gwenhywfar-1.99.5 (2006/01/26)
===========================================================================


2006/01/25: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in GWEN_Url_toString (was not writing an unchanged string)


2006/01/23: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- work on CryptToken-API: 
  - added virtual function GWEN_CryptManager_SetPinStatus()
    This function is now used by some crypttokens (mainly chipcards) and
    intercepted by AqBanking's CryptManager. This is another step in making
    working with crypttokens safer.
  - added modes (change the behaviour for crypt tokens, e.g. allow the user
    to enter the pin even though the error counter isn't zero
  - moved 
      GWEN_CRYPTTOKEN_FLAGS_FORCE_PIN_ENTRY
    to
      GWEN_CRYPTTOKEN_MODES_FORCE_PIN_ENTRY
- fixed a bug in nl_http.c (was trying to read from a connection which is
  not yet established)


2006-01-19   Christian Stimming <stimming@tuhh.de>

	* src/gwenhywfarapi.h: Add #define GWENHYWFARAPI_H to avoid
	errorneous circular inclusion from types.h; remove '#' lines with
	comments but no preprocessor directives, might choke some compiler
	some day.


===========================================================================
MARK: released gwenhywfar-1.99.4 (2006/01/17)
===========================================================================


2006/01/14: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- bump up GCC version needed for visibility (use version 4, don't know which
  version started to support it, but I'm sure 4.0 does)


2006/01/13: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_WaitCallback_Enter_u() now immediately calls the checkAbort function.
  This allows instantiated callbacks to check whether a widget is to be
  shown immediately.


2006/01/11: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in gct-tool
- added a missing GWENHYWFAR_API


===========================================================================
MARK: released gwenhywfar-1.99.3 (2006/01/11)
===========================================================================


2006/01/04: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added missing GWENHYWFAR_API in requestmgr.h


2005/12/30: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- worked on typemaker:
  - fixed some bugs (e.g. missing DOMAIN before List_dup-functions)
  - added "c-headers", "pre-headers" and "post-headers"
  - added some struct-properties
    - constructor-name
    - constructor-access
    - fromdb-access
    - dup-access
- make use of GCC's new visibility features: Now we only export symbols which
  are part of the API (so marked by GWENHYWFAR_API. Gladly we had to add this
  macro for WIN32 long ago, so we just redefine this macro for GCC).
  For Gwenhywfar this removes about 700 (!!) symbols from the symbol table !


2005/12/23: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- worked on memory allocation stuff:
  - calls to GWEN_NEW_OBJECT and GWEN_FREE_OBJECT MUST be matched
  - added optional code for allocation of small memory blocks without
    having to bother the heap for every 4 byte data (disabled for now,
    since it is much less effective than the glibc heap functions. However,
    my functions speed up things when working with dmalloc or efence)
  - removed the memory tracker stuff, since it always showed the constructors
    of all objects as the caller, however, we would more need to see who was
    calling the constructor function... Currently there is no way to trace
    back in runtime. Anyway, valgrind is much better in that capacity.


2005/12/17: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- typemaker: added check for empty strings to setters


2005/12/16: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added debugging code to GWEN_NEW_OBJECT() and GWEN_FREE_OBJECT() to find
  the mysterious double free...


===========================================================================
MARK: released gwenhywfar-1.99.2 (2005/12/15)
===========================================================================


2005/12/06: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_NetLayer_Work(): 
  - if the work function of a netlayer returns an  error
    the connection will be abandoned.
  - introduced a loop around the work function of a netlayer (makes it less
    often necessary to call GWEN_Net_Heartbeat())


2005-12-06   Christian Stimming <stimming@tuhh.de>

	* src/gwenhywfar.c: Use only GWEN_PathManager for path
	lookups. Make sure the PathManager entries are initialized with
	windows registry, if this is windows.

	* src/gwenhywfar.c: Use windows registry and GWEN_PathManager for
	all path lookups in gwen. Replaces literal LOCALEDIR macro and
	LIBSUFFIX macro for lib64 library paths.


2005/12/05: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- temporarily disabled call to GWEN_PluginDescription_List2_free() from
  within GWEN_PluginDescription_List2_freeAll(): This causes Gnucash to
  crash because it contains a workaround for an old memory leak which had been
  fixed in the last release of Gwen. However, the bugfix in gwen and the
  workaround in Gnucash together lead to a double free which causes the
  program to crash.
  As soon as the next release of Gnucash is out we reenable this function
  call thus finally fixing this bug.
- completed documentation of pathmanager


2005-12-05   Christian Stimming <stimming@tuhh.de>

	* src/gwenhywfar.c: Register GWEN_PathManager entries for
	localedir and libdir as well. Intended to prepare for integration
	of autopackage's binreloc tools, hence providing even more
	platform independence.


===========================================================================
MARK: released gwenhywfar-1.99.1 (2005/12/01)
===========================================================================


2005-11-28  Christian Stimming  <stimming@tuhh.de>

	* src/gwenhywfar.c: Add header define for x86_64 libdir suffix.


2005/11/28: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- worked on nl_ssl: 
  - now GWEN_NetLayerSsl_Disconnect() also disconnects the
    SSL layer, not only the underlying layer
  - fixed a severe bug (double free of peer certificate)


2005/11/26: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed another bug in XML writing code (could segfault when writing empty 
  data of properties)
- fixed a bug where netlayer status changes would cause infinite recursions


2005/11/23: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in XML writing code (could segfault when writing empty data
  of data elements)


2005-11-23  Christian Stimming <stimming@tuhh.de>

	* gwenhywfar-config.in.in: Re-introduce the old --has-ui argument
	but print a single-line error message, because if the "usage" text
	is printed then the old gwenhywfar.m4 macro breaks with very weird
	error messages.


===========================================================================
MARK: released gwenhywfar-1.99.0 (2005/11/22)
===========================================================================


2005/11/21: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- improved to GWEN_NetLayerHttp_Request() [nl_http.c]:
  - intermediate packets (like "100 Continue") are now ignored
  - when the final response indicates to close the connection (via header
    "Connection: close" or when this header is omitted in HTTP/1.0)
    then the connection is closed automatically. This way the next try to
    send a packet via this connection would fail. Callers will always
    check for the connection status before sending packets, so in this case
    they will just reopen the connection. We should now finally get rid of the
    ominous "timeout" problem in AqHBCI
- fixed a bug in HTTP write work function: Was always returning "Changed",
  even if there was nothing to write. This caused up to 100% CPU 
  consumption
- introduced brake to avoid CPU overload by GWEN_Net_HeartBeat()
- entered cleanup phasis:
  - implemented destructors for netlayers
  - fixed memory leaks found by valgrind


2005/11/18: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added function GWEN_NetLayerSsl_ImportCertFile() (this will make it easier
  to import certificate files)
- implemented poll()-based code which checks whether a connection is down
  (as suggested by Thomas Baumgart)
- changed HTTP code: Now tries to detect when a connection is broken while
  trying to send a packet (detects the special condition when the connection
  is broken while sending the first byte of a packet. In such a case a
  reconnect would be in order, while a broken pipe after having written some
  bytes is still an error)
- switched from autopoint to what we use in AqBanking: autopoint doesn't
  exist on WIN32 and I didn't like it anyway (uses way too many files)
- added GWENHYWFAR_API where missing
- removed all selfmade DLL-creation stuff: Current libtool is able to do
  that for us now (I hate libtool, it took me over 10 hours to figure out how
  to use it for DLLs with version info. If they only had documented this 
  stuff!)
- mingw adds a "-<NUM>" to the DLL name, I couldn't find a way to make it omit
  the major version number for the plugins. Therefore I added code to the
  libloader under windows which checks for modules with the major number
  "0" (so we for now just use "0" for every plugin)


2005/11/17: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- reverted change of filename for gwenhywfar-config script
- install gwenhywfar2 headers to the same location as gwenhywfar1 (thus
  effectively overwriting gwenhywfar1 headers)
- incremented minor version number: Next release shall be 1.99.0


2005/11/15: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in keyspec.c: Was not writing keyType to db (we should backport
  this one to gwen1)


2005-11-15   Christian Stimming <stimming@tuhh.de>

	* m4/ssl.m4: Revert the configure argument name change; maybe this
	is not so unconventional after all and it is at least consistent
	with the rest of the configure arguments in aqbanking.

	* configure.ac, README.DARWIN: Add -L/sw/lib to linker flags on
	darwin, but don't use that in test/Makefile.am.

2005-11-14   Christian Stimming <stimming@tuhh.de>

	* m4/ssl.m4: Change configure argument name to
	--with-openssl-include (no s at the end); improve documentation.


2005/11/11: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a memory leak introduced by typemaker in GWEN_URL


2005/11/09: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added NetLayerFile (used for debugging, can be used instead of real sockets
  when testing new code)
- added NetLayerLog (used for debugging, loggs data read and written from
  netlayers below itself. The output of this layer can be used for 
  NetLayerFile)


2005/11/08: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in netlayer (bad function name)


2005/11/03: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- some fixes in network/IPC code (now works with Libchipcard2, so the IPC 
  stuff now works again


2005/11/02: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- started on Gwenhywfar2:
  - src/ipc/*:
    - removed netconnectionhttp*.{c,h}
    - renamed all function GWEN_IPCxxx to GWEN_IpcXxx (according to coding
      style of GWEN)
  - removed src/net
    This has now been replaced by src/net2.
  - removed ui/
  - removed gwenpp/
  - GWEN_CryptKey: Renamed function _FromDb and _ToTb to _fromDb and _toDb
    according to coding style document
  - GWEN_KeySpec: removed proprietary list functions, added GWEN_KeySpec_List
  - GWEN_StringList2, GWEN_Args, GWEN_Logger: Renamed enums according to
    coding style document
  - removed gwenhywfar-config.in.in, added gwenhywfar2-config.in.in
  
  These changes break the API, so SO_CURRENT has been incremented and SO_AGE 
  is 0 !
  This means that all depending applications must be recompiled in order to
  use the new version of GWEN (all not-recompiled applications still use the
  old version). Some depending libraries/tools will have to be adapted to
  these changes (AqBanking, Libchipcard2).
  For some enums which might be used by Gnucash there are compatibility
  macros (if there are some missing please tell me. At least Gnucash MUST
  compile without modifications!).


===========================================================================
MARK: Started working on Gwenhywfar2 (2005/11/02)
===========================================================================


2005/11/01: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- removed a fprintf() from netlayer.c
- added nl_packets.{c,h}: This is a simple layer which enqueues incoming and
  outgoing packets.


2005/10/31: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added functions to GWEN_NetLayer:
  - GWEN_NetLayer_RecvPacket()
  - GWEN_NetLayer_SendPacket()
  - GWEN_NetLayer_RecvPacketBio()
  - GWEN_NetLayer_SendPacketBio() (this is now used for HTTP requests)
- fixed a bug in nl_http.c (error in handling of chunked transfers)
- AqHBCI now works with the latest changes !!


2005/10/30: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added GWEN_NetLayerHbci:
  This is to be used by AqHBCI. It determines the size of incoming messages
  and also encodes/decodes them to/from BASE64 if requested.
  This layer only handles the transport of HBCI messages, it neither parses
  nor generates HBCI messages.


2005/10/29: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- typemaker: added property "out" to "header" element (if value is "source"
  then the corresponding include will be written to the created source file,
  otherwise it will be written to the created header files).
  Possible values: "header", "source"
- implemented GWEN_NetLayerSsl (will replace GWEN_NetTransportSSL)
  Tested the following chains:
  - NetLayerSocket
  - NetLayerHttp->NetLayerSocket
  - NetLayerSsl->NetLayerSocket
  - NetLayerHttp->NetLayerSsl->NetLayerSocket
- src/crypt/*: added definition for structs which deal with SSL certificates
  and SSL ciphers. No longer use GWEN_DB_NODE for those things, because
  the tool typemaker makes it too easy to create real classes instead of the
  ugly hack with GWEN_DB_NODEs :-)
  - GWEN_SslCipher    : Cipher description (name, bits, description etc)
  - GWEN_SslCertDescr : representation of an SSL certificate


2005/10/27: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- started rewriting network code
- db.{h,c}:
  - when writing a db with GWEN_DB_FLAGS_USE_COLON then insert a space
    after the colon
  - added functions:
    - GWEN_DB_ReadFromString()
    - GWEN_DB_WriteToBuffer()
  - added flag GWEN_DB_FLAGS_DOSMODE
  - modified GWEN_DB_FLAGS_HTTP:
    - include GWEN_DB_FLAGS_OMIT_TYPES
    - include GWEN_DB_FLAGS_DOSMODE


2005/10/25: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- worked on GWEN_HttpSession: Now requesting a document works (including
  diversion and authorization)
- added description and example for GWEN_INHERIT code


2005-10-25   Christian Stimming <stimming@tuhh.de>

	* configure.ac, plugins/*/Makefile.am: Clean up linker arguments
	by specifying one libname in configure.ac and reusing this
	throughout the project.


2005-10-24   Christian Stimming <stimming@tuhh.de>

	* gwenpp/Makefile.am, plugins/dbio/olddb/Makefile.am,
	plugins/dbio/csv/Makefile.am,
	plugins/crypttoken/ohbci/Makefile.am: Fix broken win32 linker
	arguments in last LIBADD change.


===========================================================================
MARK: released gwenhywfar-1.19.0 (2005/10/22)
===========================================================================


2005/10/19: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed some bugs in typemaker (regarding "volatile" property)
- applied and extended a patch by Stanislav Brabec (SuSE) which fixes 
  the LIBADDs of the libraries/tools/plugins
- added property "takeOver" to typemaker


2005/10/12: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- worked on typemaker:
  - write_code_fromdbArg_c() no longer handles volatile elements
  - now defining virtual functions is allowed. Typemaker declares the
    type and getter/setter/exec functions (see src/ipc/request/request.xml)
- worked on IPC:
  - undid the latest changes (do not export the internal GWEN_IPCREQUEST
    class)
  - added a new request wrapper class (GWEN_IPC_REQUEST) which uses the
    normal GWEN_IPCMANAGER function calls


2005/10/04: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- worked on a timing problem in network code


2005/09/30: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed GWEN_IPCManager_GetNextInRequest: Was not taking the argument "mark"
  into account
- added Request-API to IPC code, which gives the caller more access to the
  IPC requests. Therefore the following functions have been added:
  - GWEN_IPCManager_CreateRequestR()
  - GWEN_IPCManager_DestroyRequestR()
  - GWEN_IPCManager_AttachRequestR()
  - GWEN_IPCManager_SendRequestR()
  - GWEN_IPCManager_SendResponseR()
  - GWEN_IPCManager_TakeRequestR()
  - GWEN_IPCManager_GetNextInRequestR()
  - GWEN_IPCManager_GetInRequestDataR()
  - GWEN_IPCManager_GetResponseDataR()
  - GWEN_IPCManager_PeekResponseDataR()
  - GWEN_IPCManager_GetInRequestSenderR()
- make GWEN_IPCREQUESTs inheritable
- added functions
  - GWEN_PluginDescription_GetPath()
  - GWEN_PluginDescription_SetPath()


2005/09/29: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed ohbci-crypttoken: Can now work even if the key length is smaller than
  96 bytes: Uses the result of GWEN_CryptKey_GetChunkSize() instead of the
  fixed size given in the CryptToken-Context.


2005/09/28: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added function GWEN_IPCManager_GetClientForConnection()
- added some more debugging to cryptssl_rsa.c


2005/09/10: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added function GWEN_List_Remove() (and a corresponding list2 macro)


2005/09/09: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added usage counters to GWEN_CryptKey and GWEN_CryptToken (to detect the
  case when an already freed object is still used)
- GWEN_Logger_ModuleInit() now uses the envrionment variable "GWEN_LOGLEVEL"
  to determine the initial loglevel for Gwen


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

	* gwenhywfar.pc.in: Add configuration file for pkg-config, let
	this also be installed.


2005/09/07: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added functions
  - GWEN_DB_FindFirstVar()
  - GWEN_DB_FindNextVar()
- started working on HTTP session stuff
- added debug code to spot the problem with "size 96!=xx"


2005/09/06: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added property "chunkSize" to crypt keys
- fixed a memory leak in typemaker constructed code (_fromDb functions)


2005/09/05: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- OpenHBCI crypttoken: Reset password upon close()


2005-08-27  Christian Stimming  <stimming@tuhh.de>

	* src/crypt2/crypttoken.c, ct_file.c: Decrease verbosity in
	non-critical messages; increased verbosity in some error messages.


2005/08/27: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug (GWEN_DB_Node_Unlink was not setting parent to 0)


===========================================================================
MARK: released gwenhywfar-1.18.0 (2005/08/24)
===========================================================================


2005/08/24: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added function GWEN_CryptToken_TransformPin()
- added encoding type FPIN2
- added an argument to GWEN_CryptToken_ChangePin: Pin type
  This is an API change, but so far only Gwen itself and Libchipcard2
  use this function.
- gct-tool has now an improved help screen and is less verbous otherwise


===========================================================================
MARK: released gwenhywfar-1.17.0 (2005/08/23)
===========================================================================


2005/08/23: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added functions
  - GWEN_DB_VariableRename()
  - GWEN_DB_GetCharValueFromNode()
  - GWEN_DB_SetCharValueInNode()
  - GWEN_DB_GetIntValueFromNode()
  - GWEN_DB_GetBinValueFromNode()


2005/08/22: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- no longer define gct-tool as experimental (disables warning)
- GWEN_Time_fromString now accepts constructs like "*D.*M.YYYY" (i.e.
  day and month may consist of multiple digits. This is needed to support
  old AqMoney1's export format)


2005-08-19   Christian Stimming <stimming@tuhh.de>

	* configure.ac, plugins/crypttoken/ohbci/ohbci.xml.in: Add version
	string OHBCI_VERSION_STRING for the xml plugin file.


===========================================================================
MARK: released gwenhywfar-1.16.0 (2005/08/19)
===========================================================================


2005/08/18: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed some bugs in crypttoken (especially in OpenHBCI crypttoken)


2005-08-18   Christian Stimming <stimming@tuhh.de>

	* src/crypt2/crypttoken.c (GWEN_CryptManager_GetPluginDescrs): Fix
	returning an accidentally free'd object -- this error caused the
	aqhbci-qt-wizard to crash.


2005/08/17: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_DBIO now finally uses the plugin mechanism
- removed functions 
  - GWEN_DBIO_Find 
  - GWEN_DBIO_GetPluginPath
  - GWEN_DBIO_GetLibLoader
  - GWEN_DBIO_SetLibLoader
  - GWEN_DBIO_Register
  - GWEN_DBIO_LoadPluginFile
  - GWEN_DBIO_LoadPlugin
  Normally these changes should lead to an increased major version number,
  but until now only AqBanking uses GWEN_DBIOs so we just increment the minor
  version number and hope to get away with it (which we will if nobody else
  is using GWEN_DBIOs. Most of the removed functions were used internally
  only, anyway)
- added functions 
  - GWEN_PluginManager_InsertPath()
  - GWEN_PluginManager_RemovePath()
  - GWEN_Directory_FindFileInPaths()
  - GWEN_DB_RemoveCharValue()
  - GWEN_PathManager_AddPath()
  - GWEN_PathManager_InsertPath()
  - GWEN_PathManager_RemovePath()
  - GWEN_PathManager_RemovePaths()
  - GWEN_PathManager_PathChanged()
  - GWEN_PathManager_GetPaths()
  - GWEN_Directory_FindPathForFile()
- added flag GWEN_DB_FLAGS_INSERT (this allows inserting groups/vars/values
  rather than appending them upon creation)


===========================================================================
MARK: released gwenhywfar-1.15.0 (2005/08/11)
  WATCH OUT: The new ohbci keyfiles of this version CANNOT BE READ by older
  ohbci-crypttoken versions!
===========================================================================


2005/08/10: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- msgengine now honours the attribute "size" in generic types
- fixed a bug in GWEN_Time_fromString (error when using only two digits for
  the year)


2005/08/09: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added definition GWEN_WAITCALLBACK_PROGRESS_ONE
- waitcallback flags are now stored within the waitcallback upon enter


2005/08/05: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added extern "C" to crypttoken header files


2005-08-04  Christian Stimming <stimming@tuhh.de>

	* src/os/windows/fslock.c: Update windows code to latest changes.


2005/08/04: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- more work on crypttoken
- removed some crypttoken flags
- added crypttoken flag GWEN_CRYPTTOKEN_FLAGS_FORCE_PIN_ENTRY
- added getpin flag GWEN_CRYPTTOKEN_GETPIN_FLAGS_ALLOW_DEFAULT


2005/08/01: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added function GWEN_KeySpec_toDb()
- added function GWEN_KeySpec_fromDb()
- fixed a bug in PluginDescr loading code
- fixed a bug in GWEN_Buffer_dup()
- added GWEN_CryptManager_CheckToken()
- added the command "checktoken" to gct-tool (checks whether a given token
  is supported by any plugin)
- added virtual function GWEN_CryptToken_GetTokenIdData()


2005-07-31  Christian Stimming  <stimming@tuhh.de>

	* gwenhywfar.spec.in: Move /etc/*.crt from -devel rpm to binary
	rpm. While missing, Pin/Tan connections were impossible.


2005/07/29: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_WAITCALLBACK:
  - added text field to waitcallback
  - added function/macro GWEN_WaitCallback_EnterWithText
  - fixed GWEN_WaitCallback: If any previously activated callback returns
    GWEN_WaitCallbackResult_Abort then all following callbacks will return
    this code as well. Also the condition of returning this code is stored.
  - introduced GWEN_WAITCALLBACK_ID_SIMPLE_PROGRESS
  - introduced GWEN_WAITCALLBACK_ID_FAST
  - introduced flags:
    - defined flag GWEN_WAITCALLBACK_FLAGS_NO_REUSE
  - defined depth level GWEN_WAITCALLBACK_LEVEL_REUSED
- replaced GWEN_BUFFEREDIO_CBID_IO with GWEN_WAITCALLBACK_ID_FAST
- replaced GWEN_NETCONNECTION_CBID_IO with GWEN_WAITCALLBACK_ID_FAST
- replaced GWEN_FSLOCK_CBID_IO with GWEN_WAITCALLBACK_ID_FAST
- README: Added listing of waitcallback ids
- added "LL" to GWEN_WAITCALLBACK_PROGRESS_NONE. 
  FIXME: We should better define a MAXVALUE, like GWEN_MAXVAL_UINT64 and
  let configure determine this type (like the other stuff), because the
  suffix "LL" tells the compiler that this is a "long long" value, which isn't
  necessarily the case for 64 bit architectures...
- redefined GWEN_WAITCALLBACK_PROGRESS_NONE as "-1". FIXME: Does this result
  in 0xffffffffffffffff ??
- no longer enter or leave waitcallbacks in netconnection.c (because we are
  working with milliseconds here)


2005-07-28   Christian Stimming <stimming@tuhh.de>

	* configure.ac: Fix AC_CHECK_LIB usage -- it *must* have a
	ACTION_IF_FOUND or otherwise the -lLIB command is added to LIBS
	automatically.


2005/07/27: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_BufferedIO_ReadRawForced() now returns an error (not a warning) when
  only partial data has been read
- GWEN_MsgEngine: removed '"' from list of default delimiters
- GWEN_MsgEngine: removed '"' from list of characters to escape
- improved structure of new OHBCI keyfiles:
   c3 xx xx 16 00 05 "OHBCI" VMAJOR VMINOR CRYPT
   -> new tags:
     GWEN_CRYPTTOKEN_OHBCI_TAG_MEDIUM            0xc3
       GWEN_CRYPTTOKEN_OHBCI_TAG_CRYPT_OLD       0xc1 (was old DES)
      (GWEN_CRYPTTOKEN_OHBCI_TAG_CRYPT)          0xc2 (DES)
       GWEN_CRYPTTOKEN_OHBCI_TAG_CRYPT_BF        0xc3
  The plugin should still read old files and write them as they have been
  read, but new files will be in the new format. 
  WATCH OUT: THIS MEANS that new ohbci-keyfiles CANNOT BE READ by older
  ohbci-crypttoken versions!


2005-07-27   Christian Stimming <stimming@tuhh.de>

	* plugins/crypttoken/ohbci/ohbci.c: Fix more signedness warnings:
	When using GWEN_CryptManager_GetPin, the password is returned in a
	'unsigned char*' buffer but has to be used in a 'char*' buffer
	afterwards. Added temporary buffer and copying so that the correct
	signedness is used where needed.

	* gwenui/tablewidget.c, textwidget.c, widget.c: Fix gcc4 warnings
	about different pointer signedness by adapting char* and unsigned
	char* pointers to the actual function prototypes.


2005/07/26: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added function GWEN_CryptKey_SetKeySpec()
- added gct-tool command "readkey"
- added blowfish encryption/decryption when using OpenSSL
- function GWEN_PluginDescription_GetLongDescrByFormat() now tries to find
  the localized version of the long description
- added gct-tool command "changepin"
- bufferedio: Now uses severity "error" instead of "warn" in some places
- fixed a bug in error.c
- GWEN_Error_GetSimpleCode() now reacts on warnings, too


2005/07/24: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added type GWEN_CRYPTTOKEN_CONTEXTTYPE


2005/07/21: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added function GWEN_TLV_create()
- added function GWEN_TLV_toBuffer()
- added function GWEN_TLV_DirectlyToBuffer()
- added function GWEN_PluginDescription_dup()
- added function GWEN_PluginManager_GetPluginDescr()
- csv-plugin: Now returns GWEN_DBIO_CheckFileResultUnknown instead of
  GWEN_DBIO_CheckFileResultOk. This will allow AqBanking to also present
  other plugins when searching for importers
- added crypttoken plugin for OpenHBCI key files
- added tool "gct-tool" for administration of ctypt tokens


2005/07/19: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- continued work on crypt token
- added function GWEN_GetInstallPath()
- added function GWEN_GetPluginPath()
- stuff from crypt2 is now included into the main lib


2005/07/11: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in XML writing code (don't write "/>" for header tags)
- XML parser flag GWEN_XML_FLAGS_HANDLE_OPEN_HTMLTAGS is now
  honoured again


===========================================================================
MARK: released gwenhywfar-1.14.0 (2005/07/10)
===========================================================================


2005/07/09: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- introduced sortMode param (GWEN_STRINGLIST_SORT_MODE) for stringlist sort
  function


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

	* src/base/stringlist.c: Use qsort(3) in
	GWEN_StringList_Sort(). Improved documentation.


2005/07/08: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added function GWEN_StringList_Sort()
- added function GWEN_Time_DiffSeconds()


2005/06/27: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added configure-switch "--enable-gwenui" (defaults to yes)
  This is needed for OpenZaurus (will disable GWENUI there).


2005/06/21: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed order for typemaker tool: define struct before including headers


===========================================================================
MARK: released gwenhywfar-1.13.3 (2005/06/14)
===========================================================================


2005/06/04: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- replaced "&>" by "2>" in configure.ac (should fix problems with BSD shell
  reported by Sam Lawrance)
- args.c: Removed use of flag GWEN_PATH_FLAGS_CREATE_VAR


2005/06/03: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in GWEN_Buffer_InsertRoom: Was not adjusting usedBytes field
- fixed a bug in GWEN_Buffer_AllocRoom: Was not adding +1 for trailing NULL
  byte


===========================================================================
MARK: released gwenhywfar-1.13.2 (2005/05/25)
===========================================================================


2005/05/25: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed GWEN_DB_VariableExists(): Now works with paths as well


===========================================================================
MARK: released gwenhywfar-1.13.1 (2005/05/24)
===========================================================================


2005/05/24: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in CSV-exporter: Had problems with INT variables (was always
  expecting CHAR values)


===========================================================================
MARK: released gwenhywfar-1.13.0 (2005/05/20)
===========================================================================


2005/05/17: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added function GWEN_XMLNode_GetLocalizedCharValue()
- GWEN_PluginDescription_new() now uses localized version of elements in
  XML file


2005/05/13: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_Buffer_Crop() now adjusts the pos pointer if it is left behind the end
  of the buffer by truncating


2005/05/06: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- decreased verbosity in HTTP code


2005/05/01: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- typemaker is now able to create enums (including _toString and _fromString
  functions, reading and writing values as strings from/to GWEN_DBs)


===========================================================================
MARK: released gwenhywfar-1.12.1 (2005/04/30)
===========================================================================


2005/04/30: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_NetConnectionHTTP:
  - added state GWEN_NETCONNHTTP_STATE_IGNOREMSG which is used to ignore
    intermediate HTTP responses (like 100)
  - added mode GWEN_NETCONN_MODE_RAW. If this is on then all messages received
    are forwarded to the application. If it is off (default) then intermediate
    messages (like 100) are ignored. This should make the OFX plugin of
    AqBanking work.
  - fixed a bug in this new code (now works)


2005/04/27: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added function GWEN_CryptToken_fromXml()
  Since the CryptToken stuff is not yet officially part of the API SO_CURRENT
  doesn't have to be incremented.
- added definition GWEN_WAITCALLBACK_PROGRESS_NONE to GWEN_WaitCallback


2005-04-26   Christian Stimming <stimming@tuhh.de>

	* src/crypt/crypt.c, src/crypt/md.c,
	src/crypt/ossl/nettransportssl.c, src/ipc/ipc.c,
	src/parser/xsd_write.c: Add casts from and to unsigned char to fix
	gcc4 warnings about "pointer differ in signedness". Since those
	casts are accepted implicitly in earlier gccs, we expect that this
	doesn't change the behaviour. The casts are clearly marked with
	"GCC4".


2005-04-22   Christian Stimming <stimming@tuhh.de>

	* src/base/buffer.c, src/crypt/padd.c, src/parser/text.c,
	src/parser/xml.c, test/gwentest.c: Change the signedness of
	variables to fix gcc4 warnings about "pointer differ in
	signedness".


===========================================================================
MARK: released gwenhywfar-1.12.0 (2005/04/21)
===========================================================================


2005/04/21: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed some more bugs in netconnection code (now also works with my 
  OFX direct connect backend for AqBanking)
  This results in an extreme speedup !!!
  

2005/04/14: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_PluginManager_LoadPlugin() now uses lowercased module names when
  loading


2005/04/13: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added flags for GWEN_Directory_GetPath()
  - GWEN_DIR_FLAGS_PUBLIC_PATH
  - GWEN_DIR_FLAGS_PUBLIC_NAME
- added function GWEN_Directory_CreatePublic()


2005/04/11: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added "/sw" prefix when searching for Gwen (used by Fink on MacOSX)


2005/04/06: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- merged in Herbert's InetSocket corrections for Gwen (thanks a lot!!)


===========================================================================
MARK: released gwenhywfar-1.11.0 (2005/04/08)
===========================================================================


2005/04/06: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a copy'n paste bug in netconnectionssl.c (only effected WIN32)


2005/04/05: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added variable "ignoreLines" to CSV plugin. This can be used to skip
  garbage at the beginning of a CSV file


2005-04-04   Christian Stimming <stimming@tuhh.de>

	* src/base/plugin.h: Add PluginManager_GetPaths to enable access
	to the search paths from the outside. Necessary for aqhbci's
	mediumprovider.


2005/04/04: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a memory leak in typemaker generated code (spotted by Andreas Degert)


2005/03/29: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in WaitCallback (type mismatch)


2005-03-29   Christian Stimming <stimming@tuhh.de>

	* src/base/plugin.h: Add PluginManager_AddPathFromWinReg() which
	reads a path from the windows registry.

	* src/crypt/crypt.c: Add function GWEN_Random() which uses an
	internal RNG state. This was, the application's RNG state is left
	untouched.

	* configure.ac, src/crypt/padd.c, crypt.c: If random()/srandom()
	is not available, use rand()/srand(). Necessary for
	e.g. windows/mingw32.


===========================================================================
MARK: released gwenhywfar-1.10.0 (2005/03/28)

Please note: The CryptToken framework in src/crypt2/ is not considered part
of the API yet, so changes there will not change the SO version !
Please do not use the stuff from src/crypts2 until the next release.
===========================================================================


2005/03/29: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- typemaker: function for stringlists "*_Has*" now expects a const rather
  than a non-const pointer as first argument


2005/03/28: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added option "--header" to tool xmlmerge. With this given the resulting
  file will contain some XML headers (like ?xml)


2005/03/26: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added environment variable "GWEN_SSL_DEBUG"
- reworked parts of GWEN_NetConnectionHTTP, GWEN_NetConnection and 
  GWEN_NetTransportSSL. This should work now with more banks.


2005/03/25: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added message digest SHA1
- simplified GWEN_Buffer functions for inserting bytes
- added functions
  - GWEN_Buffer_InsertRoom()
  - GWEN_Buffer_FillLeftWithBytes()
  - GWEN_MD_HashToBuffer()
  - GWEN_Padd_PaddWithPkcs1Bt1()
  - GWEN_Padd_UnpaddWithPkcs1Bt1()
  - GWEN_Padd_PaddWithPkcs1Bt2()
  - GWEN_Padd_UnpaddWithPkcs1Bt2()
- added GWEN_CryptToken framework (generic interface to cryptographic tokens,
  like keyfiles or chipcards)
- added much debugging to SSL code (I'm going to hunt this bug down now ;-)
- added functions to retrieve CryptToken data from XML (needed by 
  Libchipcard2)


2005/03/22: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in MsgEngine (was not taking all delimiters and terminators
  into account)


2005/03/15: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_Netconnection_Walk() now returns a timeout rather than an error when 
  select() has been interrupted by a signal.


2005/03/14: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_NetTransportSSL_StartConnect() now returns 
  GWEN_NetTransportResultWantRead instead of GWEN_NetTransportResultOk when
  the connect is in progress.
- same with GWEN_NetTransportSocket_StartConnect()
- GWEN_WaitCallback() now checks all currently entered callbacks


2005/03/09: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added flag GWEN_DB_FLAGS_LOCKFILE to GWEN_DB. This is used when reading
  or writing a GWEN_DB file. If the flag is given the file is locked
  before opening and unlocked after closing.


2005/03/08: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added flags to GWEN_CRYPTKEY which will be used to influence the behaviour
  of some functions (namely the sign function of RSA keys)
- introduced flag GWEN_CRYPT_FLAG_DISABLE_SMALLER_SIGNATURE which will disable
  selecting the smaller signature when signing data (might help solve a 
  special bug in AqHBCI which has not yet been fixed).

2005-03-07   Christian Stimming <stimming@tuhh.de>

	* src/parser/xml.c (GWEN_XML__ReadWordBuf): Rearrange some checks
	to improve performance. I tried to improve some flags-checks by
	introducing extra variables, but that gave no improvements.

	* src/io/bufferedio.c (GWEN_BufferedIO_ReadChar): Because this
	function is called for every character read, we skip the assert
	check in this function.

	
2005/03/04: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- partially reverted cs' changes to base/buffer.c: Please dicuss *before*
  making changes to this important class, it is widely used (especially
  GWEN_Buffer_AppendByte).
- took back my latest change (not completely, though)
  (argh, we *need* to discuss those changes)
- started optimisations of my own:
  - GWEN_Buffer: 
    - ReadChar() no longer calls PeekChar()
    - _new(): Now allocate size+1 (less reallocs, in a test from over 
       700 to 4)
  - GWEN_BufferedIO: same here
  - GWEN_XML: 
    - ReadWordBuf now doesn't call CheckEOF, since the return value
      of GWEN_BufferedIO_ReadChar() has an error code for this case
    - ReadWordBuf no longer uses GWEN_Buffer_AppendByte
    - ReadBIO no longer calls GWEN_BufferedIO_CheckEOF
  - GWEN_Text: 
    GWEN_Text_UnescapeXmlToBuffer() no longer uses GWEN_Buffer_AppendByte
- added function GWEN_Buffer_GetMaxUnsegmentedWrite()
These changes will require to increment SO_CURRENT.


2005-03-04   Christian Stimming <stimming@tuhh.de>

	* src/parser/text.c: Also some small performance improvements.

	* src/base/buffer.c, src/io/bufferedio.c: Add some small
	performance improvements; add comments about further potential
	performance improvements.


===========================================================================
MARK: released gwenhywfar-1.9.0 (2005/02/19)
===========================================================================


2005/02/22: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a stupid design flaw in CONSTLIST2: The only difference between
  a GWEN_LIST and GWEN_CONSTLIST was the type of the stored data.
  So instead of creating a new type (GWEN_CONSTLIST) we now basically use
  a GWEN_LIST and modify the return value if necessary. This change is
  completely transparent, no API change involved.
- added function GWEN_IdList_dup()


2005/02/21: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in GWEN_Time_Diff()


2005-02-20  Christian Stimming  <stimming@tuhh.de>

	* gwenhywfar.spec.in: Add *.crt files to rpm.


===========================================================================
MARK: released gwenhywfar-1.8.0 (2005/02/19)
===========================================================================



2005/02/19: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- when setting the new function type pointer for AskAddCert then set the
  old pointer to 0 and vice versa.
- now when a certificate has been received the user is always asked
- fixed link order in tools


2005/02/18: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in GWEN_LIST code (could crash the program)
- fixed a bug in XML code (iscntrl() also returns true for some characters
  above 0x80 which makes this function useless for UTF-8)


2005/02/15: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- now the fingerprint of a certificate is written to the DB when converting a
  certificate
- added known public CA certificates which are now used by Gwens SSL code


2005/02/14: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added function GWEN_DBIO_GetPluginPath() which looksup the DBIO path from
  the Windows registry (or returns the compile-time value on non-win32
  platforms)
- added function GWEN_Directory_OsifyPath() which is needed on Win32 platforms
  to transform a path (possibly containing a drive letter like in "/c/") into
  a system-usable path.
- create DLLs for plugins
- fixed DLL creation targets (don't create DLL from inside dlldir)


2005-02-14   Christian Stimming <stimming@tuhh.de>

	* gwenhywfar.iss.in: Add Pascal scripting program that will adapt
	the gwenhywfar-config at *installation time* according to the
	local paths.


2005/02/14: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in GWEN_Directory_HandlePathElement() on WIN32 platforms
- decreased verbosity of directory_all.c and in nettransportssl.c
- added a note about regexp.dll to README
- now always break SSL connection if the user does not trust the cert (not
  even temporarily)
- fixed a newly introduced bug in mklistdoc/Makefile.am: GWEN_HEADERS must be
  quoted.


2005-02-14   Christian Stimming <stimming@tuhh.de>

	* configure.ac, */Makefile.am: Clean up and unify installation
	variables so that the gwenhywfar-config script is prepared to be
	adapted by the windows setup program. Adapt Makefile.am's
	accordingly.


2005/02/11: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- this lib now uses $libdir instead of $prefix/lib


===========================================================================
MARK: released gwenhywfar-1.7.2 (2005/01/30)
===========================================================================


2005/01/30: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- now save all certificates again, but: Only create different extension if
  certificate is new (otherwise older certificates are overwritten)


2005/01/29: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- only save cert if it is new
- decreased verbosity


===========================================================================
MARK: released gwenhywfar-1.7.1 (2005/01/27)
===========================================================================


2005/01/27: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added a timeout catcher on SSL connections waiting to be shut down
- added eror checking for SSL_shutdown
-> finally fixes the nasty SSL bug I was hunting ;-)
  Thanks to Thomas Baumgart for his help with this ;-)


===========================================================================
MARK: released gwenhywfar-1.7.0 (2005/01/26)
===========================================================================


2005/01/26: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- decreased verbosity


2005/01/25: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added function GWEN_IPCManager_CheckConnection()
- added NetTransport flag GWEN_NETTRANSPORT_FLAGS_RESTARTABLE which is
  used by IPC code to restart a connection if it is down
- GWEN_IPCManager_Disconnect() now does clean up an IPC node
- added function GWEN_RingBuffer_Reset()
- added function GWEN_NetTransport_AddFlags()
- added function GWEN_NetTransport_SubFlags()


2005/01/23: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added missing translations
- decreased verbosity of IPC code


===========================================================================
MARK: released gwenhywfar-1.6.0 (2005/01/22)
===========================================================================


2005/01/22: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed some bugs in network code
- added some fields to certificate DB to make it more informative
- fixed a bug: SSL code was not storing the SSL certificate


2005/01/19: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added GWEN_NetTransportSSL_SetAskAddCertFn2() which allows setting a
  callback function which takes a user data pointer.
- fixed a bug which caused HTTP connections not to return the last message
  received
- now the HTTP protocol version plus the HTTP header "connection:" is
  inspected to find out whether a connection is to be auto-terminated after
  a message has been received


===========================================================================
MARK: released gwenhywfar-1.5.0 (2005/01/14)
===========================================================================


2005/01/14: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added function GWEN_Path_HandleWithIdx(), make GWEN_DB use this instead of
  the old function.
  This results in GWEN_DB_ being able to handle indices, like in
  "root/group[2]/var[1]"
- now version numbers always use three digits (except for CVS packages).
  @Christian: You won ;-)
- added function GWEN_StringList_FirstString()


2005/01/13: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- valgrind session, fixed memory leaks in:
  - GWEN_NetTransport_free()
  - GWEN_WaitCallback_free()
- added memtrace code to debug*.{c,h}
- improved function GWEN_NetConnectionHTTP_Work(): It now only calls the 
  WorkIO function if necessary, otherwise it doesn't: This might fix the
  problem with AqHBCI and banks which terminate the connection before all
  messages have been read. This way this function only returns an error if
  no there are no more messages in the queues.


2005/01/12: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a minor bug in typemaker tool (was not honouring "const" property
  for lists)


===========================================================================
MARK: released gwenhywfar-1.4.1 (2005/01/12)
===========================================================================


2005/01/12: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in msgengine.c: Was using hardcoded escape character in call to
  typeRead function


2005/01/11: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- lightened up SSL connection code: Now all errors will be presented to the
  user
- added var to certificate DB in GWEN_NetTransportSSL__AskAddCert():
  - statusText: explanation of the reason why the user is asked


2005-01-11   Christian Stimming <stimming@tuhh.de>

	* gwenhywfar.spec.in: Add BuildRequires to ensure a sane rpm
	building environment.


===========================================================================
MARK: released gwenhywfar-1.4 (2004/12/30)
===========================================================================


2004/12/29: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_IPC:
  - added function GWEN_IPCManager_RemoveClient(). This function does what its
    name implies, so it is now safe to write IPC servers (like the Libchipcard2
    server) without the server process getting bigger and bigger...
  - fixed a bug (GWEN_IPC_ERROR_CODES had a bad value)


2004/12/28: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- undid a change by Christian from 2004-12-20: keep buffer in function
  GWEN_MsgEngine__TransformValue() static, since it's content is returned.
  Removing the "static" attribute will return a pointer to data which has been
  already freed.


2004/12/22: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_STRINGLIST2:
  - fixed some bugs
- GWEN_XSD:
  - added function to adapt an XML file to the namespaces in an XSD profile
    (to simplify comparison to XML schema)


2004-12-22   Christian Stimming <stimming@tuhh.de>

	* tools/typemaker/code_c.c: Commented out generation of List2_dup
	function because that one is now generated by the list macro. This
	is necessary so that aqbanking actually compiles with current gwen
	CVS, or did I misunderstand something?


2004-12-20   Christian Stimming <stimming@tuhh.de>

	* src/parser/msgengine.c: Make local character buffer non-static
	so that there will not be any thread-related problems.

	* src/parser/text.c: Make static conversion structure const so
	that it is absolutely clear that this has read-only access. To
	avoid potential thread-related problems.


2004/12/16: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_XML: Fixed a problem: Now data (between XML elements) can contain any
  character except "<". Quotation marks and apostrophs are now only parsed
  within element definitions.


2004/12/15: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added new class GWEN_REFPTR (a type of smart pointer with reference counter)
- GWEN_LIST: 
  - now internally uses GWEN_REFPTR to store objects. This allows
    for shallow copies of lists (as needed for the read-code of GWEN_XSD).
  - fixed a severe bug (list became nearly unusable after PopFront/PopBack)
  - added function GWEN_List_dup() which makes a shallow copy of a list.
    When either of the referencing lists wants to modify the list (adding or
    removing entries) the list really gets copied (but still the elements are
    shared as long as possible)
  - added function GWEN_List_PushBackRefPtr()
  - added function GWEN_List_PushFrontRefPtr()
  - added function GWEN_List_GetFrontRefPtr()
  - added function GWEN_List_GetBackRefPtr()
  - added function GWEN_List_GetRefPtrInfo()
  - added function GWEN_List_SetRefPtrInfo()
    The two latter functions can be used to inform the list code about
    _free() and _dup() functions of the elements stored in the list. This
    is used when copying lists. It can also be used to set the list into
    AUTODELETE mode (which is off by default to maintain compatibility with
    existing code).
  - added function GWEN_List_Unshare()
  - re-armed function GWEN_List_Erase()
  - GWEN_LISTs can now be inherited
  - fixed some bugs
- added new class GWEN_STRINGLIST2. This one internally uses GWEN_LIST with 
  caching.


2004/12/14: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_XSD:
  - added support for precompiled profiles
    - added function GWEN_XSD_ProfileToXml()
    - added function GWEN_XSD_ProfileFromXml()
  - fixed some functions to not modify the profile once it is complete
- GWEN_XML:
  - added function GWEN_XMLNode_SetCharValue()
  - added function GWEN_XMLNode_SetIntValue()
  - added optional handling of header tags (such as <?xml?> or <!DOCTYPE>).
    These tags can now be extracted and stored as headers (instead of normal
    tags) with the root node of a file. When using the flag 
    GWEN_XML_FLAGS_HANDLE_HEADERS on both reading and writing of a file it
    still looks the same as it did before. 
    Since this new flag is off by default this new feature is completely
    optional.
    - added flag GWEN_XML_FLAGS_HANDLE_HEADERS
    - added function GWEN_XMLNode_GetHeader()
    - added function GWEN_XMLNode_AddHeader()
    - added function GWEN_XMLNode_DelHeader()
    - added function GWEN_XMLNode_ClearHeaders()
- GWEN_TEXT:
  - fixed a bug in GWEN_Text_CountUtf8Chars()
- added a test profile which can be used with "gwentest xsd3"
- Christian established that the current CVS compiles under MinGW32.
- changed format of plugin description files (are now valid XML files)
- added schema for plugin description files and an example file


2004/12/13: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
Please note: The changes below are not checked on WIN32 !!
I sometimes used the function strncasecmp(), maybe we have to find a way
around this for WIN32 (or does MinGW already support it?)

- GWEN_XSD:
  - started working on XSD module (not complete !!!)

- GWEN_XML:
  - fixed some bugs in XML code:
    - now "[" and "]" are accepted within XML files (mostly used within 
      <!DOCTYPE> tags), so we can now also read valid XML files (like the
      various XSD files I'm currently dealing with)
    - fixed the bug concerning simple quote characters ('): These characters
      are now valid, too.
  - added function GWEN_XML_GetXPath which returns the XPath from one
    XML node to another one
  - added flag GWEN_XML_FLAGS_INLINE_DATA (used to inline data tags directly
    between start and end tag without any linefeed
  - now indention is only done if the line position pointer in the BIO is 0
    (which means: no unnecessary indention)
  - added function GWEN_XMLNode_NormalizeNameSpaces() to remove unnecessary
    namespaces from an XML tree
  - special characters (like "&<>" etc) are now escaped and unescaped in
    tagnames, property names and values and data.
  - added function GWEN_XML_fromString() which creates an XML tree from
    a string

- GWEN_BUFFER:
  - fixed a "bug": When reserving bytes in an empty buffer
    the first character is set to 0 (to keep the buffer usable for C string
    functions)

- GWEN_DB:
  - fixed a bug: Remove the newline when omitting variables in 
    GWEN_DB_WriteGroupToStream.
  - added a mechanism to assign hash mechanisms to DB groups. This might be
    used to speedup lookups of group members in GWEN_DBs.

- GWEN_TEXT:
  - added function GWEN_Text_CountUtf8Chars()
  - added function GWEN_Text_EscapeXmlToBuffer()
  - added function GWEN_Text_UnescapeXmlToBuffer()

- GWEN_BUFFEREDIO:
  - added function GWEN_BufferedIO_GetLinePos()

- GWEN_BIO_BUFFER:
  - added function GWEN_BufferedIO_Buffer_fromString()


2004-12-06   Christian Stimming <stimming@tuhh.de>

	* src/os/windows/fslock.c: Finish file lock support on
	Win32/MinGW; unfortunately link() is unavailable there.


2004/12/05: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added I18N module (just a simple helper for some I18N issues)
  When setting a locale the given locale is also stored in its generalized
  forms, e.g.:
    de_DE@euro is stored as:
    - de_DE@euro
    - de_DE
    - de
- added I18N to plugin descriptions (uses the property "lang" in "plugin"
  tags). Every current locale is tried. If there is no plugin description
  in the current language the default description is used.
- added generic plugin management. This will be used by new plugins
  (in AqBanking and AqHBCI) and maybe in Gwen 2.x for DBIO plugins.
- StringList: Added reference counter to StringListEntry.
  When adding or inserting a string via GWEN_StringList_AppendString or
  GWEN_StringList_InsertString and double checking is enabled then the
  reference counter of a string is incremented if the string to be added or
  inserted is already in the list.
  The default behaviour of GWEN_StringList_RemoveString is the same as before:
  It removes a matching string regardless of its reference counter.
  However, if GWEN_StringList_SetIgnoreRefCount() is called with a null
  argument only those strings are removed whose reference counter reaches
  zero.
- fslock.c: added fallback mechanism for file systems which do not support the
  link() function. Use open() with O_EXCL flag on those systems instead.
  This should also work with FAT or other file systems which do not support
  link().


2004/12/04: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- implemented FSLock at least for POSIX the way "man 2 open" suggests.
  This should now also work on NFS shares.


2004/12/03: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added simple file/folder locking mechanism
- started working on filters for GWEN_BUFFEREDIO. I used these kind of filters
  in AqBackup, but they weren't as sophisticated as the current ones are ;-)
  Fortunately I can now use the GWEN_RINGBUFFER functions...


2004/11/26: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added DBIO plugin for old OpenHBCI1-style config files


2004/11/25: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- csv plugin: 
  - implemented checkFile function
  - fixed a bug (now importing AqMoney2 CSV files works ;-)


2004/11/21: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- typemaker:
  - added property "volatile": if set then the element is not written to or
    read from a db
  - fixed some bugs: DOMAIN name was not prepended to function definitions 
    in header files
  - now _LIST2_dup() functions are created if LIST2 is enabled
  - now adds apidocs for automatically generated functions
- list(2): First() and Last() use const arguments now


===========================================================================
MARK: released gwenhywfar-1.3 (2004/11/19)
===========================================================================


2004/11/19: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added functions:
  - GWEN_Time_toString
  - GWEN_Time_toUtcString
  ------------------------------------------------------------------------
  !     remember to do SO_CURRENT++ and SO_AGE++ before next release     !
  ------------------------------------------------------------------------
- armed CSV plugins import function
- fixed a bug in CSV-importer: now title lines are skipped if "title=0" in
  parameters
- added defines for printf-templates for GWEN_TYPEs
- fixed some 64bit-warnings
- current version also compiles (with few warnings) on 
  - alpha (Debian)                  [few warnings]
  - amd64 (suse)                    [few warnings]
  - SunOS (5.9, SUNW,Ultra-60)      [without warning]
  - Mac OSX (Darwin 6.8, PowerPC)
  - FreeBSD 4.10 (i386)
  - NetBSD 1.6.1 (i386)
- added support for NetBSD to automake script os.m4
- fixed some bugs in Makefiles:
  - when ncurses is not available (was assuming if
    ncurses is not there it must be Windoze. Well, that's not the case ;-)
  - there must be no blank between "-D" and the macro to define via 
    "-DSOMETHING", otherwise some MacOSX bails out...


2004/11/11: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a build-problem (tools did not link against all needed libraries)


2004/11/02: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- src/os/directory_all.c: Improved path handling for WIN32


===========================================================================
MARK: released gwenhywfar-1.2.1 (2004/10/02)
===========================================================================


2004/09/30: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- db: GWEN_GetIntValue: When converting a char value to int we now use
  "%i" instead of "%d". This will allow the code to read hex values as well


===========================================================================
MARK: released gwenhywfar-1.2 (2004/09/26)
===========================================================================


2004-09-25  Christian Stimming  <stimming@tuhh.de>

	* src/parser/text.c, src/os/posix/libloader.c: When changing the
	locale, immediately copy the previous locale to a new
	buffer. Otherwise often enough the returned string which was
	static storage was no longer valid.


2004/09/25: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- db: ReadFromStream now uses a GWEN_BUFFER instead of a fixed char buffer.
  This removes unnecessary limits (and allows libchipcard to work)


2004-09-24   Christian Stimming <stimming@tuhh.de>

	* gwenpp/Makefile.am, tools/*/Makefile.am: Fix LIBADD flags so
	that all libraries and tools are forced to link against the
	currently compiled libgwen instead of the potentially installed
	one. Necessary for e.g. building new rpms.


2004/09/24: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- xml: added flag GWEN_XML_FLAGS_IGNORE_DESCR. This flag makes the XML code
  ignore <DESCR> tags when reading a file.
- args: fixed a silly bug (flags are binary, and flag help falsely contained
  two other flags). Normally this change would mean to break conmpatibility.
  However, since I'm the only one currently using GWEN_ARGS I will still
  increment SO_AGE for the next release.


2004/09/23: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- GWEN_KeySpec_Dump now prints the status as well
- fixed a bug introduced yesterday
- msgengine: Now values can be given directly within an ELEM tag
  (like in <ELEM name="xyz" type="bytes">DirectValue</ELEM>).
  Before this change this only worked with unnamed elements.
- added status field to cryptkey


2004-09-22   Christian Stimming <stimming@tuhh.de>

	* src/os/posix/libloader.c: Fix problem with evaluation of
	dlerror() return value when translations are turned
	on. Effectively, the error evaluation during loading of libraries
	was totally broken since 2004-08-20, but is now fixed again.


2004/09/22: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- waitcallback.c: now reuses templates which are currently entered if
  they match the requested one
- msgengine.c: 
  - now looks for groups not only at the XML root but at every
    XML node along the current path
  - now looks for groups under their "id" and (if not found) "name"
- crypt, keyspec: added inherit- and list2 macros to both objects
- added status field to keyspec
  ------------------------------------------------------------------------
  !     remember to do SO_CURRENT++ and SO_AGE++ before next release     !
  ------------------------------------------------------------------------


===========================================================================
MARK: released gwenhywfar-1.1 (2004/09/15)
===========================================================================


2004/09/15: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in XML code


2004/09/14: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added a function to GWEN_DBIO which allows to check whether a given file
  is supported by a given plugin
- plugin descriptions now have a field for the filename
- added flags for XML file reading


===========================================================================
MARK: released gwenhywfar-1.0.1 (2004/09/10)
===========================================================================


2004-09-09   Christian Stimming <stimming@tuhh.de>

	* src/base/logger.h: Enclose __attribute__deprecated into ifdefs
	to hide it for non-gcc compilers.


2004/09/08: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- fixed a bug in typemaker
- fixed a bug in nettransportssl.c


2004-09-03   Christian Stimming <stimming@tuhh.de>

	* tools/typemaker/code_c.c: Add include config.h in the
	output. Make the auto-generation warning in the output more clear.


===========================================================================
MARK: released gwenhywfar-1.0.0 (2004/09/02)
===========================================================================


2004/09/01: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added a tool which allows me to create simple data containers more easily


2004-09-01   Christian Stimming <stimming@tuhh.de>

	* src/gwenhywfar.c: Replace fprintf with DBG_DEBUG.


2004/08/31: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- waitcallback: added nesting level information


2004/08/30: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- valgrind session: 
  - the system is now asked for the home dir only the first
    time a program issues such a request. It is then copied to an internal
    buffer.
  - fixed some other memory leaks
- replaced fprintf with DBG_INFO in posix/libloader.c


2004/08/29: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- adapted mklistdoc to new macro names
- Valgrind-Session:
  - added GWEN_WaitCallback_free() to public headers


2004/08/27: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- BufferedIO: Added function GWEN_BufferedIO_WriteRawForced


2004-08-24   Christian Stimming <stimming@tuhh.de>

	* gwenhywfar.iss.in: Add spec file for the Inno Setup Compiler
	which will create a Windows Setup.exe program for the whole
	package, see http://www.jrsoftware.org/isdl.php. Added "make
	setup" for this target.


2004-08-23   Christian Stimming <stimming@tuhh.de>

	* src/os/gwentime.h: Include time.h.
	
	* src/base/debug.h: Adapted the non-variadic-macro function
	declarations to the change from GWEN_LOGGER to const char*
	logdomain.
	
	* src/base/stringlist.h: Add GWEN_StringList_ForEach function.


2004/08/23: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added statistical functions to GWEN_BufferedIo
- changed GWEN_Time_To_time_t -> GWEN_Time_toTime_t 
  and GWEN_Time_To_tm -> GWEN_Time_toTm to adhere (that's how the other
  converter functions are called throughout the library)


2004-08-21  Christian Stimming  <stimming@tuhh.de>

	* src/os/gwentime.h: Add conversion functions GWEN_Time_To_tm and
	GWEN_Time_To_time_t.


2004/08/20: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- introduced logdomains: Now every library can have its own log domain,
  making it much easier to debug a single library out of multiple libs
  NOTE: This is an incompatible API change, therefore SO_VERSION++.
  The first argument of all GWEN_Logger functions has been changed.
  However, in most cases a NULL was given, so you should simply need to
  recompile your sources with no (or at most few) changes.
- prepared gwen for gettext
- added simplified error codes to GWEN_Error, will get away from that
  complicated GWEN_ERRORCODE stuff, since that isn't needed anyway.
- added GWEN_Logger_IsOpen()


2004-08-18   Christian Stimming <stimming@tuhh.de>

	* src/base/misc.h, list2.h, inherit.h: Add extra macro for an
	empty string because in the definition of GWEN_LIST_FUNCTION_DEFS,
	the MSVC compiler does not accept an empty macro argument.


2004/08/17: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- very much simplified GWEN_TIME: It now mostly uses <time.h> functions
  and a local version of mktime (to make the time from UTC time instead
  of local time). This leaves only one function which the OS layer has to 
  provide.
- decreased debugging level in GWEN_DB_ReadFromStream


2004/08/16: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added GWEN_Time_fromUtcString()


2004-08-16   Christian Stimming <stimming@tuhh.de>

	* src/os/windows/gwentime.c (GWEN_Time_new): Remove errornous
	extra variable declaration.


2004/08/14: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added functions to get the time/date as UTC time
- added functions to set/get a GWEN_TIME from/to a GWEN_DB
- moved common code from various os-dependant gwentime.c files to 
  gwentime_all.c.


===========================================================================
MARK: released gwenhywfar-0.9.14 (2004/08/11)
===========================================================================


2004/08/10: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- removed "-lpanel -lncurses" from all_libraries
- fixed network code (netconnection, nettransportssl etc)
- base/plugindescr: added function 
   GWEN_PluginDescription_GetLongDescrByFormat() to retrieve HTML and other
   formats of descriptions.


2004/08/09: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- did the same with the list templates...


2004-08-09   Christian Stimming <stimming@tuhh.de>

	* src/base/list2.h, list.h: Modify the ForEach function
	declaration so that is takes an additional void* argument that can
	be used to pass data into the callback.

	* src/base/misc.h, list2.h: Introduce GWEN_LIST_FUNCTION_LIB_DEFS
	macros that accept a third argument to specify the
	__declspec(dllimport) function declarations where necessary. These
	are necessary for all libraries that use these macros in their
	public headers.


2004/08/06: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- base/inherit: added a macro which allows unlinking a type from a base type


2004-08-06   Christian Stimming <stimming@tuhh.de>

	* configure.ac: Fix header links for gwenui directory.

	* src/crypt/ossl/cryptssl.c (GWEN_CryptKey_FromPasswordSSL): Fix
	wrong buffer size variable.


2004/08/06: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- base/plugindescription: added functions to retrieve the XML node of
  the plugin. This may contain more usefull information for the caller.
- separated the ncurses based UI stuff from the rest: There is now
  libgwenui.so which contains the UI functionality. Therefore gwen itself
  no longer needs to be linked against ncurses. This also makes gwen lean
  again ;-)
  -> SO_VERSION incremented, SO_AGE=0 (makes it effectively .so.16)
- install an XML file for the CSV plugin
- added TVL handling code to parser module
- crypt: added a function which allows creating key data from a password using
  the SSL method. However, this is only to be used for old, existing code and
  data. New code is required to use the other function 
  (GWEN_CryptKey_FromPassword()). This allows removing OpenSSL dependencies
  from other projects (like AqHBCI's OpenHBCI medium plugin)
- base/inherit: added a macro which allows unlinking a type from a base type


2004/08/05: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- base/waitcallback: fixed a severe bug
- os/gwentime: changed some arguments to const
- base/idlist: fixed a severe bug
- io/bufferedio: fixed a bug (was never closing streams)


2004/08/02: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- added a tool which can automatically create header files appropriate for
  doxygen (this is because normally a list defined by GWEN_LIST_FUNCTION_DEFS
  is not documented): mklistdoc.
  Gwen now uses this tool to include API doc for all list functions defined
  this way.


2004-08-02   Christian Stimming <stimming@tuhh.de>

	* src/base/list2.h: Remove GWENHYWFAR_API from function
	definitions in the macro because the implementations will not be
	imported from the DLL but instead be generated locally through the
	other macro.

	* src/base/Makefile.am: Remove -I$(top_srcdir)/src/os because its
	process.h conflicts with <process.h> on gcc3.2 and mingw32.
	
	* src/base/waitcallback.c: Fix potential problem with
	uninitialized pointer.

	* configure.ac: Fix error in symlinking headers -- xml.h was
	missed.


2004/08/02: Martin Preuss<martin@libchipcard.de>
-------------------------------------------------
- very much improved generation of API doc. In combination with the
  changes in my other projects the new target "install-srcdoc" now
  creates combined API docs (e.g. API doc for AqBanking now links to
  that of Gwenhywfar etc)


2004/08/01: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- base/waitcallback: 
  - fixed a bug (was unable to find callbacks by id).
  - API change !!
    Now all callbacks are kept in a flat list. You also now need to unregister
    callbacks you once registered !
  - GWEN_WaitCallback_Enter() is now a macro. This allows me track down the
    origin of a Callback (i.e. from where is has been entered).
  -> SO_VERSION incremented, SO_AGE=0 (makes it effectively .so.15)


2004/07/31: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- gwenhywfar.m4: fixed a buf (was always using libgwen_pp instead of 
  libgwenhywfar)
- base/stringlist: Added GWEN_StringList_SetSenseCase() which allows
  changing the behaviour regarding cases. The default behaviour has now
  changed to ignore cases.
- base/plugindescr: Added field "isActive", this can be set by applications


2004-07-30   Christian Stimming <stimming@tuhh.de>

	* all header files: Removed GWENHYWFAR_API from all typedefs since
	this will break compilation of Win32 applications as soon as those
	use any gwen typedef as function return type.


2004/07/30: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- base: added module PluginDescription. This module loads all XML files
  from a directory and tries to extract plugin informations from them.
  In future all my plugins will be shipped with such an XML file to allow
  scanning for available plugins without the need to actually load the
  plugins (with all the rat's tail that implies).
- fixed a bug in POSIX libloader


2004/07/29: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- parser/text: added GWEN_Text_CheckSimilarity() which checks how equal
  two strings are (untested)


2004/07/28: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- base/misc.h: fixed a bug (concerning C++)
- base: added misc2.h
  This file now contains wrappers around a GWEN_LIST which allow typesafe
  use of a GWEN_LIST.
- base/misc2.h: added *List2_ForEach functions
- base/misc2.h: is now only a logical link to list2.h


2004/07/27: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- parser/base64: fixed a bug in GWEN_Base64_Decode
- crypt/ossl/nettransportssl.c: fixed some bugs, added verbosity while
  testing AqHBCI's PIN/TAN support which extensively uses it


2004/07/22: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ipc/netconnectionhttp: added defaultUrl. This is used when no URL is given
  in a request. This very much simplifies using this class.


2004-07-20   Christian Stimming <stimming@tuhh.de>

	* Makefile.am: Fix win32-cs target with wrong .lib filename.


2004/07/20: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- reverted latest changes to toplevel Makefile.am (contained ugly CR 
  characters. To Christian: Could you please reintroduce your  changes ? 
  Sorry for being rude but I needed Gwen to work and since I did not find a 
  ChangeLog entry I was unable to figure out the difference at a first
  glance...).
- started working on a C++ binding. This will only include function groups
  which are a bit complicated to use from C++ (like GWEN_WaitCallback).


===========================================================================
MARK: released gwenhywfar-0.9.13 (2004/07/05)
===========================================================================


2004/07/04: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- base/args: GWEN_Args_Check is now able to return a new code which flags
  that the user wanted help. This circumstance is detected by a new flag
  (GWEN_ARGS_FLAGS_HELP).
- crypt/padd: removed usage of a deprecated function (so that the annoying
  warning in OpenHBCI2/AqHBCI vanishes)
- os/gwentime: 
  - added a function that allows to generically parse date and time from a 
    string (guided by a template string)
  - added GWEN_Time_dup()
  - added GWEN_Time_fromSeconds()
- parser/text:
  - added function GWEN_Text_DoubleToBuffer()
  - GWEN_Text_StringToDouble()
- event_l.h was missing, but someone seems to have added in meanwhile.


===========================================================================
MARK: released gwenhywfar-0.9.12 (2004/07/03)
===========================================================================


2004/07/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- some more fixes, prepared release


2004/07/02: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- tools: added "dlgtest", a tool which allows testing a dialog.
- ui: fixed a bug in MessageBox


2004/07/01: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ui:
  - added a new widget type: "HLine". This widget simply draws a horizontal
    line or serves as a placeholder (to be used with the DialogLoader).
  - finished GWEN_UILoader. It is now able to automatically arrange widgets,
    to populate created widgets with user data and to retrieve the data
    modified by the user. It is now usable with Libchipcard2 ;-)
    See doc/testdialog.xml for an example. You can try this with the
    following gwentest-command (from within the "test" folder):
    "#> gwentest u20 ../doc/testdialog.xml"
    

2004/06/30: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ui:
  - widget loader can now setup a complete dialog (including HTML help
    texts etc).
  - started working on a function whcih populates the dialog widgets with
    values. The next step will be to retrieve and validate data entered by
    the user.


2004/06/29: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ui:
  - finished widget-loader, I will now have to think of a way to
    automatically run a dialog and fill in form dar from a DB and to
    store the user input into it. This will very much simplify creating
    of dialogs.


2004/06/29: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ui:
  - started working on a widget-loader (loads and creates widgets from an
    XML file)
- parser:
  - xml: introduced a file-load flag which allows selecting whether some
    unclosed HTML tags are accepted (like <br>) or not.
    The default still is not to.
  - db: introduced new value type PTR (allows portable storage of 
    void* pointers)


2004/06/28: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- configure.ac: fixed a bug (the headers from src/parser where not
  symlinked)
- parser/xml:
  - CONSTified some parameters of some functions
  - added functions which simplify access to tags as variables


2004/06/27: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ui: 
  - started working on FileDialog
  - more work/fixes in TableWidget and TextWidget
  - even more work/fixes
  - fixed more bugs in EditBox, more work on FileDialog (can now at least 
    be used to select a file. Otherwise not very usefull for now)
  - TableWidget now sends an event when activating a table field
- gwenhywfar.m4: fixed a bug
- parser/xml.c: fixed a newly introduced bug


2004/06/26: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ui: 
  - introduced MODAL flag for widgets (focus will never go beyond a MODAL
    widget)
  - completed MessageBox, which is now able to calculate the necessary width
    and height by itself
  - added EditBox
  - added CheckBox
  - fixed some bugs
  - added a help string which can be assigned to a widget. Whenever F1 is
    pressed the current widget will popup a message box and show that help
    text in it. If the widget which currently possesses the focus does not
    have a help string the parents will be consulted.
  - added a subscription model: Widgets can now subscribe to any event
    received by any other widget. This is similiar to the signal/slot
    mechanism used in *graphical* user interfaces
  - added DropDownBox (basically an edit widget with a list of choices to
    drop down)
  - TextWidget: Now sends a "Chosen" event when ENTER is pressed in line mode.
    This is interpreted e.g. by the DropDownBox.
  - UI headers are now expected in "${prefix}/include/gwenhywfar/ui"
  - focus can now be changed to the nex *AND* to the previously active
    widget ;-)
- parser/xml: now accepts simple tags (like "<br>" or "<hr>") without
  ending tags (e.g. there is no more need for "<br/>").
  This allows to use simple HTML for texts in TextWidget and derived classes.
- configure.ac, gwenhywfar-config.in.in:
  - added checks and switches to determine whether UI or crypto support is
    compiled into Gwenhywfar
  - UI headers are installed to ${prefix}/include/gwenhywfar/ui
- base/misc.h:
  - added functions which allow traversing a list backwards.
    However, these functions aren't very fast since the lists are only
    simple-linked. But using these new functions allows to silently use
    optimized versions later


2004/06/25: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ui:
  - nearly completed MessageBox
  - reworked XML->text parsing of TextWidget
  - close events do now work
  - provide more control over event handling for applications


2004-06-24   Christian Stimming <stimming@tuhh.de>

	* configure.ac, src/Makefile.am: Make the compilation of the UI
	module conditional on whether ncurses is available. If it is not
	there, then the whole GWEN_UI module will neither be compiled nor
	installed.


2004/06/24: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ui: 
  - added Close-events
  - added ScrollWidget (which basically is a widget with optional vertical
    and horizontal scroll bars)
  - started working on GWEN_MessageBox


2004/06/23: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ui: added Button and a command event emitted by buttons (or menus later)
  This will allow me to create a Message class and a TextBrowser module
  tomorrow (hopefully).


2004/06/22: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ui: added VSlider, fixed many bugs in UI code etc. It is still slow
  but now it works ;-) I will have to optimize later...


2004/06/20: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- started working on a ncurses GUI which will be used by Libchipcard's setup
  tools and maybe by AqMoney2...


2004/06/17: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- crypt/nettransportssl, net/netransportsock: be more verbous about the reason
  why a connection could not be established
- crypt/nettransportssl: added function GWEN_NetTransportSSL_GenerateDhFile
  So now there finally is no need to access OpenSSL from outside Gwen just
  to make parts of Gwen (namely the SSL stuff) work.


2004/06/16: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- parser/db: added function GWEN_DB_InsertGroup
- m4/os.m4: Define OS_POSIX if running on a POSIX system
- os/posix/libloader: 
  improved library loading. Now the following order is used when loading
  a library:
  1) the name given
  2) the name given plus ".so"
  3) the name given with prefix "lib"
  4) the name given with prefix "lib" and ".so"
  This now allows for files without ".so" to be loaded.
  

2004/06/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ipc/ipc.c: added GWEN_IPCManager_Attach() and usage counter


2004/06/08: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- parser/db: increased size of the word buffer used (I'm still looking
  for a better solution. Maybe I will write a DBIO which reads/writes DB as
  XML files...)


2004-06-07  Christian Stimming <stimming@tuhh.de>

	* src/crypt/none/cryptnone.c: Fix function prototype SSL_new.


2004/06/06: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ipc/ipc: fixed a bug (did not take node id into account when assigning a
  response to a request)


===========================================================================
MARK: released gwenhywfar-0.9.11 (2004/06/06)
===========================================================================


2004/06/04: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- base/idlist.c: fixed another stupid bug


2004/06/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- os/gwentime: added function to retrieve the time in milliseconds
- base/idlist: fixed two severe bugs
- crypt/ossl/nettransportssl: added functions to retrieve the peer certificate
- parser/text: improved BCD reading


2004/06/02: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- parser/msgengine: added getter/setter for delimiters
- crypt/ossl/cryptssl_rsa: fixed a severe bug which caused signing to fail


2004/05/30: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- parser/text: GWEN_Text_FromHexBuffer now ignores blanks
- parser/msgengine: added property "storedAs" which indicates the storage
    type when reading bin-values from within the data of a tag


2004/05/29: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- net/*: major speedup of IPC routines ;-)


2004/05/28: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- parser/msgengine.c:
  - added ELEM property "size" which indicates that an element should have a
    fixed size (as needed for Libchipcard)
  - added ELEM property "filler" which is used to fill an fixed-size element
    with a given byte
- parser/text: 
  - added functions for BCD reading and writing
  - added function GWEN_Text_CondenseBuffer which removes unnecessary blanks


===========================================================================
MARK: released gwenhywfar-0.9.10 (2004/05/27)
===========================================================================


2004/05/26: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed a bug in MsgEngine (strchr doens't like if the character
  searched for is \0, which is a valid character when reading binary
  data such as bytes, words, dwords etc which are used by 
  Libchipcard2)
- fixed a bug in NetTransportSSL
- Gwen now compiles on Solaris (tested with SunOS 5.9)
- fixed some M4 macros (e.g. "find" on Solaris is not as powerfull as it is
  on Linux)


2004/05/25: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- parser/msgengine.c: fixed a bug which occurred if "maxnum" was
  zero in XML files


2004/05/24: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- parser/text: added function GWEN_Text_FromHexBuffer


2004/05/21: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- base/logger.c: fixed a severe bug (trapped into endless loop when
  log level was "debug")


2004/05/20: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- parser/xml: added a usage counter and some functions around it to be
  used by an application (not used internally, but they allow marking
  and detection of unused nodes)


2004/05/18: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- parser/msgengine: switched inherit code to new gwenhywfar/inherit 
  type
- parser/text: added function GWEN_Text_ToHexBuffer


2004/05/17: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ipc/ipc: more fixes
- removed some debug messages


2004/05/16: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- base/logger.c: fixed a buffer overflow bug
- ipc/ipc.c: more fixes and minor modifications
- parser/text: added functions to log a string
- base/logger: improved logging, fixed some bugs


2004/05/14: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ipc/ipc.{c,h}: fixed some bugs


2004/05/13: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ipc/ipc.{c,h}: 
  - added functions GWEN_IPCManager_SetUpFn and
    GWEN_IPCManager_SetDownFn to allow keeping track of connection states
  - added function GWEN_IPCManager_Disconnect to actively disconnect a given
    client/server


2004/05/10: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- ipc/*.h: prepared for use by C++ code
- ipc/ipc: minor additions


2004/05/09: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- completed IPC stuff (still untested), added documentation to ipc/ipc.h


2004/05/08: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added module ipc/ipc. This is a very simple IPC model based on
  GWEN_DBs send over HTTP (which in turn may be sent over any supported
  transport layer, such as TCP/UDP sockets and SSL).
  This allows for maximum flexibility while maintaining a very simple API.
  Even with this simple API you can implement any security depth you like:
  - unencrypted using HTTP over UDP sockets
  - unencrypted using HTTP via TCP sockets
  - encrypted using HTTP via SSL
  - encrypted using HTTP via SSL while checking certificates
- SSL server code works !!! ;-)


2004/05/07: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- parser/db: added function GWEN_DB_VariableName (I couldn't believe that
  this function did not exist ;-)
- started working on IPC stuff again, this time based on HTTPS, therefore
  added ipc/netconnectionhttp (implements the HTTP protocol, together with
  the transport layer NetTransportSSL we have HTTPS ;-)
- io/bio_buffer: added constructor which does NOT take over ownership


2004-05-07   Christian Stimming <stimming@tuhh.de>

	* src/Makefile.am: For windows DLLs, create the def and lib files
	with the filename including the SO_EFFECTIVE number as well,
	because otherwise linking against it doesn't work.


2004/05/06: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- more strict usage of *_p.h files. These files should nly be included by
  their matching code file (and by no other file).
  Therefore: created some *_l.h files for prototypes of functions private
  to the library.
- crypt/ossl/nettransportssl.{c,h}: improved this module a lot. It can now at
  least be used for client connections.
- ssl module is now able to save certificates if demanded by the user
- added parser/base64. This is not an elegant implementation but it
  works ;-) (Currently I don't have the time for a more elaborated version)
- tried some Darwin fixes (still minimun success, that system is quite 
  different in some aspects. However, the configure script runs).


2004-05-05   Christian Stimming <stimming@tuhh.de>

	* src/*: Remove trailing semicolons from macro calls where
	"-pedantic" complains about them.
	
	* src/base/misc.h: Remove trailing semicolons from the function
	definitions in the GWEN_LIST_FUNCTIONS macro since ISO C89 does
	not allow these (-pedantic i.e. --enable-warnings=all will give
	warnings about that). Admittantly all modern compilers have no
	problems with them and ISO C99 allows these, but we never know
	whether our source code might get compiled with something
	different. In other words, since it doesn't hurt us to comply with
	the older standard, we try to do it here.

	* src/types.h.in: Add __extension__ specifier to "long long"
	definition in order to avoid warnings when compiling with
	gcc and "-pedantic".


2004/05/05: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- fixed some bugs in args.c
- modified the prototype of GWEN_WaitCallback_Log
- fixed GWEN_TYPE_UINT64 for MSVC
- removed some trailing semicolons from macros in inherit.h and misc.h
- renamed DLL to gwenhywfar32_EFFECTIVE_SO_VERSION to imitate the very
  useful SO features of the GNU linker on windows
- started working on a NetTransport module for SSL connections
- removed sslconnection, it is now replaced by nettransportssl.
  This now fits into the network framework. As soon as this is better
  tested I will be able to release Gwenhywfar 1.0.


2004/05/04: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added type GWEN_TYPE_UINT64
- rewrote GWEN_WAITCALLBACK stuff (will have to modify some dependant
  projects in order to use this new infrastructure)


2004/05/02: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added new functions to GWEN_Time:
  - GWEN_Time_GetBrokenDownTime
  - GWEN_Time_GetBrokenDownDate
- fixed a bug in base/buffer (did not abort when mode
  GWEN_BUFFER_MODE_ABORT_ON_MEMFULL was given)
- fixed another bug in base/buffer (could not set a position outside
  buffer boundaries even if in USE_BIO mode)
- fixed yet another bug in base/buffer (did not crop if pos was 0)


2004/05/01: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- io/bufferedio: 
  - added function GWEN_BufferedIO_ReadRawForced
- base/buffer:
  - added GWEN_Buffer_SetSourceBIO and a mechanism, which reads missing
    data from a GWEN_BUFFEREDIO (if the buffer is in mode 
    GWEN_BUFFER_MODE_ABORT_USE_BIO).


2004-04-28  Christian Stimming <stimming@tuhh.de>

	* gwenhywfar.m4: For automake-1.8, add extra quotation in the
	macro name.


2004-04-26  Christian Stimming <stimming@tuhh.de>

	* m4/acx_compile_warn.m4: For gcc3.4, add the new warning switch
	-Wdeclaration-after-statement in order to preserve source code
	compatibility with gcc2.95 and other compilers.


2004/04/25: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- renamed acx_windoze_paths.m4 to windoze.m4 thus overwriting the latter
  file, since it basically contains the stuff which is in windoze.m4 plus
  some minor additions.
  This should take care of some autotool complaints...


2004/04/24: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added base module "args" which transforms command line arguments to
  a GWEN_DB. It performs some checks on the arguments given and makes it
  easier to create help screens.
- debugged module "args" (it now works as intended)
- GWEN_Args_Usage() is now able to produce an ASCII help screen using
  GWEN_ARGS
- changed GWEN_ARGS so that it can now be used as const. All functions
  now accept "const GWEN_ARGS*" pointers.


2004-04-16  Christian Stimming <stimming@tuhh.de>

	* src/base/debug.c: Fix DBG_* functions that are the replacements
	for their variadic-macros counterpart. Unfortunately this error
	caused every gwen version built with --disable-variadic-macros to
	crash -- sorry. But it is fixed now.


2004-04-08  Christian Stimming <stimming@tuhh.de>

	* m4/ssl.m4: For openssl on windows, check more than one directory
	for the location of the DLLs.


===========================================================================
MARK: released gwenhywfar-0.9.9 (2004/04/08)
===========================================================================


2004/04/08: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- io/bufferedio: 
  - added flag functions to set/get flags which control the behaviour of a 
    BufferedIO
  - split into multiple object files for the different supported BufferedIOs
  - now the GWEN_BUFFEREDIO type is opaque, its strcuture is no longer
    exported to the supported BufferedIOs
  - now uses the inherit module
  The changes above now allow for new BufferedIOs to be created outside Gwen.


2004/04/06: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- os/process:
  - added functions to set/retrieve flags to modify the behaviour of the 
    GWEN_PROCESS code.
    The most important (and for now the only) flags are:
    - GWEN_PROCESS_FLAGS_REDIR_STDIN
    - GWEN_PROCESS_FLAGS_REDIR_STDOUT
    - GWEN_PROCESS_FLAGS_REDIR_STDERR
    These flags make Gwen redirect the corresponding std stream so that the
    calling process may intercept the input/output of the started process.
  - added functions which return a GWEN_BUFFEREDIO which can be used to
    read/write from/to redirected child streams.


2004/04/05: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added base/idlist: This is basically a list for GWEN_TYPE_UINT32 objects,
  but since it uses tables instead of those list objects normally used
  throughout Gwen it is less memory consuming. I used it in the current
  development version of Libchipcard and found it usefull in another project
  so I decided to move it to Gwen.
- parser/db:
  - added functions GWEN_DB_FindFirstGroup and GWEN_DB_FindFirstGroup which
    simplify searching for groups by name.
- base/idlist:
  - added function GWEN_IdList_Clean() to clean a list
  - added function GWEN_IdList_Sort() to sort an id list in ascending order
- base/inherit.h:
  - added macro GWEN_INHERIT_ISOFTYPE which checks whether a given pointer
    refers to an object of a given type


2004/04/04: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- bufferedio: GWEN_BufferedIO_File__Close() no longer closes one of the
  console files (like stdin, stdout, stderr).
- base/buffer:
  - when creating a new buffer with a NULL pointer the first character of the
    allocated memory is preset with a 0
- parser/text:
  - added new functions GWEN_Text_EscapeToBufferTolerant and
    GWEN_Text_UnescapeToBufferTolerant which are more tolerant when escaping/
    unescaping strings
- parser/db:
  - added parenthesis around composed flag definitions
  - added flags GWEN_DB_FLAGS_ESCAPE_CHARVALUES and 
    GWEN_DB_FLAGS_UNESCAPE_CHARVALUES. These are now used to escape/unescape
    char values when reading/writing a DB. These flags are now on by default,
    so newly compiled programs will automatically use these flags while
    not recompiled programs still use the old default flags. This allows
    easy migration from the old behaviour to the new one.
    This should now allow AqMoney to handled any institute message received
    from a bank (whatever control character they might include).
- parser/xml:
  - added functions for writing an XML tree to a bufferedio
- added new "tools" folder which contains as the first tool "xmlmerge".
  This tool allows merging multiple XML files into one. This will be used
  by my new project AqHBCI to create job definitions in single files per
  supported job. All job-XML files are then merged into one working file
  before installation.


2004/04/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- moved plugins to toplevel (grr, didn't think about the fact that the
  plugins need libgwenhywfar which hasn't been compiled when compiling
  the plugins...)
  Please remember to CVS update using
  "cvs up -d"


2004/04/02: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- plugin/dbio/csv: fixed factory function
- base/buffer: changed hardlimit from 64kb to 2mb
- base/waitcallback: 
  - callback function is now able to monitor the progress
    of an action (typedef has changed !)
  - added GWEN_WaitCallbackProgress() which should be called instead of
    GWEN_WaitCallback() (the latter function internally now calls 
    GWEN_WaitCallbackProgress() anyway).
- base/buffer: increased hard limit even more (now 8 mb to be safe)


2004-04-01  Christian Stimming <stimming@tuhh.de>

	* src/parser/db.c: Fix errornous function argument to
	GWEN_DBIO_GetPlugin.


2004/04/01: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added plugin loading functions to GWEN_DBIO
- added functions GWEN_DB_WriteFileAs and GWEN_DB_ReadFileAs which allow
  using GWEN_DBIO plugins fro importing/exporting any format of files
  supported by plugins.
- added plugin "csv" which replaces the now deprecated CSV parser module
- changed install location of plugins from "share" to "lib"


2004/03/31: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added import/export framework for GWEN_DBs. This makes parser plugins
  based on GWEN_DBs much easier.


2004/03/25: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- reintroduced my old win32 target, since the one of Christian doesn't work
  the way I need it: It needs to build all objects/libraries again, and that
  simply takes too much time. Another problem is that my configure options
  are not used when creating the windows binaries (i.e. that makes using the
  same target in the project simthetic useless for my local system).
  So I now use my old approach which is simple, ugly but it works ;-)
  Christian may still use his target (which is now called "win32-cs") ;-)
- updated README.W32 to reflect the changes below


2004/03/25: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- changed the way a DLL is created:
    Now the libXXX.a library is taken (which - thanks to libtool - already
    contains all object files needed for building the DLL) and all the
    object files in the ".libs" folder of the toplevel library (because
    for any strange reasons they are not included with the toplevel library).
    This removes the need of enlisting all object files in the toplevel
    library Makefile.am (and because compiling under Windoze takes a veeery
    veeeery long time this is quite a helper ;-)
  
  Oh, just a quick note: At least my version of automake is quite buggy when
  it comes to "DIST_SUBDIRS" variables inside a toplevel source folder.
  I tried to put the test folder into such a variable but then "make dist"
  only includes about the half of the project into the resulting tarball :-/
  Hmm, quite strange... in lower leveled folders (like src/os) this works...

  So for now the test program is even compiled under Windoze (sorry Christian,
  but I have to make some tests right now with Windoze).
  
  It can of course be disabled again prior to the next release.

- added some search paths for GWEN and SSL (just for my own conveniance)
- fixed a WIN32 related problem: The reason why sometimes linking did not work
  (e.g. if specifying "-L/c/windows/system" like someone did in OpenSSL.m4 ;-)
  was, that in that case the windows dlls (like KERNEL32.DLL etc) are used
  when linking. However, we need to use the mingw-wrapper version instead,
  and so we have to prepend their path. After that you may specify whatever
  other paths you like, but now we can be sure that the system libraries are
  searched for in the mingw folder first.
- fixed a bug in gwentest.c
- GWEN-DLL is now again installed to the windows folder instead of the 
  windows system folder. I think it is more appropriate that way, since the
  windows system folder is very special, wheras the normal windows folder can
  be used by any user to store libraries etc.

NOTE: When linking programs using MinGW please make sure to always insert
      "-L/mingw/lib" before all other "-L" specifications !
      Otherwise linking is quite a horror, even for quite experienced users.


2004-03-24   Christian Stimming <stimming@tuhh.de>

	* test/gwentest.c: Finalize test code for Microsoft Visual Studio
	C compiler. Necessary steps are described in README.MSVC (really
	not difficult).

2004/03/24: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added new module GWEN_TIME (does not contain much for now, but I need a
  higher granularity then time() offers)

VERSIONINFO: For next release: SO_VERSION++, SO_AGE++


2004-03-24  Christian Stimming <stimming@tuhh.de>

	* configure.ac, src/base/debug.h, src/base/debug.c: Variadic
	macros are not supported by Microsoft Visual Studio
	compiler. Therefore the macro NO_VARIADIC_MACROS disables them,
	and also the configure switch --enable-variadic-macros=no (default
	is yes) lets gwen be compiled with replacement functions instead
	of these macros. In other words the source code should still work
	totally unchanged.

2004-03-22  Christian Stimming <stimming@tuhh.de>

	* src/gwenhywfarapi.h: Add macro declarations that are unavailable
	on mingw systems.

	* src/os/windows/inetsocket.c: Add missing function argument.

	* src/net/netmsg.c: Add include config.h.


===========================================================================
MARK: released gwenhywfar-0.9.8 (2004/03/22)
===========================================================================


2004/03/19: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- waitcallback:
  - added function GWEN_WaitCallback_LastEntered which returns the
    time the callback context was last entered. This can be used by the
    callback function to decide whether a window is to be opened (for
    short operations it might be smoother to wait for one or two seconds
    before opening a window. This way a window would only be opened if
    the operation takes longer)
- msgengine:
  - is now ignoring <DESCR> tags when encoding/decoding a message. This
    allows for descriptions inside the segment/group/job definitions
- db:
  - only insert a newline after writing groups if there is another node
    following on the same level or if the last node before a group was
    a variable. This improves readability.
- cryptkey:
  - removed an "assert": If the key could not be created simply return
    "0" (that function did exactly that a few lines later ;-)
- inherit: 
  - fixed a bug in MakeId code (result wasn't too unique)
- text:
  - added functions GWEN_Text_EscapeToBuffer and GWEN_Text_UnescapeToBuffer
    which use GWEN_BUFFERs to store the result instead of char arrays (like
    the equivalent non-buffer-functions GWEN_Text_Escape and 
    GWEN_Text_Unescape do)
- path:
  - added flag "GWEN_PATH_FLAGS_CHECKROOT" which allows special treatment
    of root entries. For now this only affects the function 
    GWEN_Directory_GetPath. This allows especially for this function to
    work with absolute paths.


2004/03/18: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- xml:
  - documented some still undocumented functions
- netconnection:
  - fixed some minor bugs


2004/03/17: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- netconnection, nettransport:
  - introduced idle time counter
  - introduced backlog (see "man 2 listen")
- ipc:
  - removed this module since it is replaced by the net module
- Make system:
  - fixed the warning about LDD_LDFLAGS not being used
  - changed SO version and library version


2004/03/12: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- xml:
  - moved usage of static buffers to GWEN_BUFFERs. This removes any limit
    on the size of an XML data element since a GWEN_BUFFER allocates the
    memory space needed dynamically (unless told otherwise).
    This should improve the probability of correctly reading a valid XML 
    document. Even the size of a comment is now unlimited.
    Well, not exactly unlimited, the hard limit of a GWEN_BUFFER is per 
    default about 64 KB.
    Even with the knowledge that Bill Gates once crashed with the
    statement "640 kb oughta be enough"  I boldly guess this will suffice ;-)
    
    However, if it doesn't we can simply adjust the hard limit of the 
    GWEN_BUFFERs used inside the XML code (those limits are not static, they
    are assigned on a per object basis).
    
    About the 640 KB note: That was the base of the 640 KB barrier the older
    ones amongst us had to deal with some years ago ;-)
    Who wouldn't remember the times when we had to sqeeze out every single
    byte below 640 KB by loading drivers into higher memory space (himem) ;-)
    just to play Doom with proper graphics and sound ;-)
    
    Hmm, on the other hand I also worked well with 64 KB CP/M computers back 
    in the 90ies ;-)
    
    Ok, enough history for today ;-)
  - removed dead code
- buffer:
  - added mode flag ABORT_ON_MEMFULL
    This takes into account the fact that most AppendByte/AppendString etc
    functions of the GWEN_Buffer module are called without checking for the 
    result.
    Well, that's ok, because normally a GWEN_BUFFER is in dynamic mode (as
    described above), and in that mode such a call SHOULD never fail.
    However, if it does anyway there might be an error later in the program's
    run which would not necessarily point to the real cause: The full buffer.
    An error due to a full buffer clearly is a design/development problem
    which is now handled as such: abort() is called which leaves the user
    with a core dump for detailed debugging.
    This flag is turned on by default, but if you want the old behaviour you
    can still turn if off on a per object basis.
- inherit:
  - added this module which facilitates inheritance (as known in C++).
    The implementation of inheritance models isn't as elegant as it is in
    C++ but it is type safe and it works just fine.
    One base class can be inherited by one or more other "classes".
    Each inheriting class has it's own data associated with the base object.
    You only need to use some macros in the inherited class and only two
    macros in inheriting classes for a complete implementation of inheritance.

    As I stated before (and I'm quite sure Christian will assist with this
    statement): Macros are very, very bad. Seriously.
    But they are the only alternative as long as templates are not implemented
    in C. And BTW: If the macros are properly designed and well tested they
    cause more problems to their developers since developing a macro is very,
    very difficulty.
    However, once they work they are quite usefull.

    Please refer to the modules net/netconnection and net/nettransport
    for an example of LIST and INHERIT macro usage.
- net/*
  - added multiple files which implement a networking framework which can be
    used with different network protocols and transport layer types.
    This will replace the old IPC stuff which wasn't too well designed ;-)
    The new modules have prooven to be very usefull while developing a
    C implementation of the HBCI protocol (and HTTP for that matter).
    These implementations will soon be released as a new GWEN module (like
    the old GWEN-IPC module which is now discontinued).


2004/03/11: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- db:
  - added function GWEN_DB_ValueExists which checks for the existence of a 
    value of a variable by index
  - added function GWEN_DB_GetValueTypeByPath which does the same as
    GWEN_DB_GetValueType does but this function takes the value's index
    number into account
- msgengine:
  - now uses the functions mentioned above. Now if multiple elements are
    allowed the names of the elements are not transformed anymore.
    Example: Before this change when using multiple elements you had to give
    the names as (e.g. for the supported HBCI versions)
      version=201
      version1=210
      version2=220
    etc. Now you simply give them as
      version=201, 210, 220


2004/03/09: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- msgengine: 
  - added attach-mechanism (this module now uses a usage counter which is
    honoured upon GWEN_MsgEngine_free().


2004/03/08: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- misc: added macros to typesafely work with lists (since there is no
    "list<xyz>" template stuff in C I decided to create these macros).
    This makes it much easier to work with lists in C...
    I know, macros are very bad, but the code in GWEN_List is not typesafe,
    and that could lead to problems which are difficult to detect.


2004/03/07: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- msgengine: added function "freeData", now inheriting a message engine
  works as inheriting other "classes" does


2004-03-06  Christian Stimming  <stimming@tuhh.de>

	* src/os/posix/process.c: Try to fix SIGCHLD problem some
	more. Still doesn't work with gnucash, though.


2004-03-05  Christian Stimming <stimming@tuhh.de>

	* src/os/posix/process.c: Remember old SIGCHLD handler and call it
	if there was one. This is vital for gnucash, where guile installs
    its own SIGCHLD handler.


2004/03/05: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- configure.ac/gwenhywfar.m4: 
  - added "gwenhywfar_plugins"
  - added "gwenhywfar_headers"
- path: 
  - added flag GWEN_PATH_FLAGS_ESCAPE
  - added flag GWEN_PATH_FLAGS_UNESCAPE
  - added function GWEN_Path_Convert


2004/03/03: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- keyspec: added functions to read/write a keyspec from/to a DB


2004-02-28  Ronny Buchmann <ronny-vlug@vlugnet.org>

	* src/parser/db.c: don't stop reading values on space

	* src/parser/msgengine.c: fix offset for anonymizing unknown segments

2004-02-24  Christian Stimming <stimming@tuhh.de>

	* src/os/windows/libloader.c: Improve error message output.

	* src/os/windows/libloader.c: Append paths by backslash -- this is
	windows.


2004/02/20: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- Logger: 
  - added log level "verbous"
  - added functions for conversion from some enum types to ASCII and back


2004/02/15: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- InetAddress: added a dup function
- InetSocket: added function GWEN_SocketSet_GetSocketCount and a counter
  for the number of sockets in a socket set
- RingBuffer: added functions for direct buffer manipulation in order to
  avoid unnecessary copying
- BufferedIO: fixed a bug


===========================================================================
MARK: released gwenhywfar-0.9.7 (2004/02/18)
===========================================================================

2004-02-17  Christian Stimming <stimming@tuhh.de>

	* src/parser/xml_p.h (GWEN_XML_MAX_VARNAMELEN): Increased static
	buffer sizes a *lot* since they already exceeded for perfectly
	valid XML documents.

===========================================================================
MARK: released gwenhywfar-0.9.6 (2004/02/15)
===========================================================================

2004-02-13  Christian Stimming <stimming@tuhh.de>

	* src/parser/xml.h: Improved documentation: Clarified the
	comparison to XML notation/naming scheme, which is different from
	Gwen's notation.

2004-02-04  Christian Stimming <stimming@tuhh.de>

	* src/os/windows/libloader.c, src/os/posix/libloader.c: Fix
	errornous query for .so/.dll suffix.


2004/02/02: Ronny Buchmann <ronny-hbci@vlugnet.org>
---------------------------------------------------
- Makefile.cvs: make /usr/local in local: a variable

2004-01-28  Christian Stimming <stimming@tuhh.de>

	* test/gwentest.c, configure.ac: Add define to remove dependency
	on openssl in test program (for --disable-ssl).
	
	* Makefile.am: Add target "make quick" that generates the
	auto-generated headers first. This saves duplicated compilation.

	* m4/acx_windows_paths.m4: Renamed windoze.m4 to this file. Added
	caching of the directory values because this saves a lot of time.
	
	* README.W32: Add explanation of helpful configure options.

	* src/Makefile.am: Add LDFLAGS to DLLFLAGS since this is needed on
	some windows configurations.

2004-01-27  Christian Stimming <stimming@tuhh.de>

	* m4/ssl.m4: Use WIN_PATH_SYSTEM_MINGW for windows.
	* configure.ac: Also allow version autoconf-2.56. If this breaks
	anything, then of course the change should be reverted.
	Also use WIN_PATH_SYSTEM_MINGW for gwenhyfar_libraries.
	
	
2004/01/26: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added a note about CVS usability to STYLE file


2004/01/25: Ronny Buchmann <ronny-hbci@vlugnet.org>
---------------------------------------------------
- remove autogenerated files


2004/01/25: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- added new base module: GWEN_RingBuffer; this module introduces a
  circular read/write buffer.
- started cleaning up function names
- added statistical functions to GWEN_RingBuffer


2004/01/22: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- msgengine: added properties "readbin" and "writebin" to <ELEM> tags.
  If "type" is "bin" then these properties are checked (defaults to "1").
  If "0" then the binary data will not be parsed (this is needed to fix a
  problem in OpenHBCI with banks, which send partial SWIFT MT942 which
  have to be combined AFTER receiving all parts. So this parsing clearly can
  not be done from within the message engine)


===========================================================================
MARK: released gwenhywfar-0.9.5 (2004/01/21)
===========================================================================


2004/01/21: Martin Preuss<martin@libchipcard.de>
------------------------------------------------
- applied a build patch submitted by Ronny Buchmann
- fixed a severe bug in signature code
- changed version string determination:
  if TAG is "cvs" then the full version string (including major, minor,
  patchlevel, build and tag) are used.
  Otherwise all traling "0" in a version number are removed.


2004/01/18 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed windoze macros
- worked on SSL code
- MsgEngine: 
  - added a getCharValue callback to retrieve <VALUE>s with leading '?'
  - added checkType callback which lets inheritors return the base type
    instead of assuming "char".


2004/01/17 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added GWEN_WaitCallback:
  This allows for nesting callback contexts. This is now a generic way
  to inform the application about long term actions.
- started working on SSL connections (needed for OpenHBCI in PIN/TAN mode)
  Note: An abstraction is not that badly needed, but it would help when
        porting to a platform which does not use OpenSSL for this purpose.
        Well, my thoughts about porting Gwen to PalmOS (which has its own
        SSL functions) is not completely dead as you can see ;-)
        Anyway, the functions here will make it easier at least for me to
        use SSL without the need of digging into the OpenSSL docs everytime,
        so here it comes...
- added conveniance functions for socket operations (needed for SSL functions)


2004/01/15 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- DB: 
    - added "nodeflags" (intended to be used for flagging "dirty" nodes etc)
    - every modification of a node (except modifying nodeflags) will mark that
      node and all its parents as dirty.


2004-01-14  Christian Stimming <stimming@tuhh.de>

	* configure.ac: Fix typo -- $() is a variable in a Makefile, but
	in configure it's a subshell.


2004/01/14 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added windoze.m4 to get some windows paths
- fixed types.m4 (was not removing conf.uint32 when finished)
- msgengine: GetHighestTrustLevel now also takes the parents of the given
  node into account (instead of only the parent of the refererring node)
- os/inetaddr: added GWEN_InetAddr_GetCapabilities to check whether a given
  Address Family (or feature) exists)


2004/01/12 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- posix/process.c: increased needed log level for error messages


2004/01/11 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed a bug in gwenhywfar.m4
- applied a patch submitted by Ronny Buchmann which turns the specfile into a 
  multi-distribution spec file.
- applied another patch submitted by Ronny Buchmann which allows for building
  distribution-specific RPMs (in conjunction with the patch above)


2004/01/10 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- logger: added function GWEN_Logger_AddLogger. This functions allows to
  log to multiple loggers in parallel. This is interesting for debugging
  purposes when you still want to log to syslog (or whatever service you
  like) but want to additionally log to a log file or stderr.
- Makefile.cvs: added my own target, since somebody always comments out my
  "./configure" ;-) And I really think I know who does ;-)
- posix/init.c: removed debugging output upon startup/shutdown of Gwen. I am
  convinced now that __attribute__((constructor)) really works


===========================================================================
MARK: released gwenhywfar-0.9.4rc3 (2004/01/07)
===========================================================================


2004/01/07 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- cleanup of Makefiles
- prepared next release


2004/01/05 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added "system.h", which defines some system dependant macros on some
  platforms
- process.c: less verbous signal handler
- aborted PalmOS port
- reverted debug.h macros to use snprintf again, since all architectures
  except PalmOS have it, and PalmOS is no longer supported
- added padding submodule to crypt module. This includes some commonly used
  padding algorithms (like ISO 9796 and ANSIX9_23). Those are taken from the
  GWEN_IPC package (and they originated from Fabian Kaiser's C++-code for 
  OpenHBCI in rsakey.cpp, with modifications and translation to C).


2004/01/04 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added GWEN_TYPE_UINT32 (this is needed for crossplatform compilation,
  e.g. for PalmOS in short-mode)
- file "types.h" now gets installed
- macros in "debug.h" now use the builtin function GWEN_Debug_Snprintf.
  This is a limited function imitating "snprintf" with a very very limited
  set of conversions (for now only "s", "c", "d" and "c" are supported.
  But this already is enough for debugging purposes). This is needed on
  PalmOS since there is no snprintf.


===========================================================================
MARK: released gwenhywfar-0.9.4rc2 (2004/01/03)
===========================================================================


2004/01/03 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- prepared next release


2003/12/29 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- started working on PalmOS port (just a small start, there still is very
  much to do... well, actually more than I anticipated. However, it still
  seems possible ;-)


2003/12/28 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- renamed Christian's new "GWEN_DB_isSomething" functions to
  "GWEN_DB_IsSomething" (it is handled this way in GWEN_Error_IsOk, so we
  have to keep it uniform)
- added "process" to OS module. This allows for portably starting programs
  (as needed by the upcoming version of Libchipcard)
- added a graph to the documentation of the DB module to demonstrate the
  internal structure
- module XML: Added new flag which allows to ignore an <include> tag
- added doc/STYLE
- changed some function definition to comply to the STYLE odcument
- changed name of function GWEN_Md_Hash and GWEN_Md_UnregisterAllProviders
  to GWEN_MD_Hash and GWEN_MD_UnregisterAllProviders, according to
  my own style guid :-}
  

2003-12-28  Christian Stimming  <stimming@tuhh.de>

	* src/parser/db.h: Add foreach function for Groups, Variables, and
	Values. Added a lot of explaining comments.

	* src/parser/db.h: Add predicates for testing the type of a node.


2003/12/20 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- module XML: Added new flag which allows to always include files to the
  toplevel.


===========================================================================
MARK: released gwenhywfar-0.9.4rc1 (2003/12/20)
===========================================================================


2003/12/20 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- module XML: Added function that takes a search path (for <include> tags).
- module XML: Added new flag which allows to share toplevel tags across
  multiple files
- prepared release of 0.9.5rc1 (Release Candidate)


2003-12-20  Christian Stimming  <stimming@tuhh.de>

	* gwenhywfar.m4: Make version error message more verbose.


2003/12/20 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed a bug in XML code


2003/12/18 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added MD algorithm: MD5
- GWEN_CryptKey_{G,S}etKeyData: These are now only defined if the macro
  "GWEN_EXTEND_CRYPTKEY" is defined. This prevents an application from
  carelessly using these functions.
- added a conveniance function for hashing
- added a function that creates keydata from a password by hashing it
- improved XML parser: It can now read the XML files of Simthetic
- improved XML parser: Added some functions for tree navigation and for
  locating tags inside the XML tree (GWEN_XMLNode_FindFirstTag() etc)


===========================================================================
MARK: released gwenhywfar-0.9beta9 (2003/12/15)
===========================================================================


2003/12/13 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added string functions to base/buffer module
- improved library loader
- added code for DLL init
- Gwen now initializes itself upon loading
- added README.W32 for people who want to compile Gwenhywfar on Windoze


===========================================================================
MARK: released gwenhywfar-0.9beta8 (2003/12/10)
===========================================================================


2003/12/10 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- started porting Gwen to Windoze


===========================================================================
MARK: released gwenhywfar-0.9beta7 (2003/12/06)
===========================================================================


2003/12/06 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- prepared next release


2003/12/04 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- removed IPC stuff from Gwenhywfar. You can find the IPC stuff in
  the same CVS repository as Gwenhywfar. The module name is "gwenipc".
- finally fixed last typos regarding Gwen's name ;-)
  Now I addresses GWENHYFWAR (written in all-capitals).


2003/12/02 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- removed usage of libefence from test program


2003/12/01 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed some serious bugs in list code (this class seemed to be so simple,
  but it is in fact quite complicated ;-)
- nearly completed IPC code:
  - added session management
  - keys are no longer stored inside context files
  - added AnonymousOpen function


2003/11/30 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed a bug in list
- IPC is now ready for deeper testing
- added some new test files


2003/11/29 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- XML module: added special handling for tags named "include": If such
  a tag is encountered it will be replaced by the content of the file
  pointed to by the tag's data


===========================================================================
MARK: released gwenhywfar-0.9beta6 (2003/11/29)
===========================================================================


2003/11/29 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed a bug in msgengine.c: Did not correctly iterate through multiple
  groups when writing a group multiple times to a message (like in group
  "result" in HBCI segment "SegResult": The group "result" may appear up
  to 99 times, and for each appearance msgengine should use the next group,
  but it always took the first one).
- IPCXMLCmd: added "OpenSession" command


2003/11/28 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- more work on IPC stuff


2003-11-26  Christian Stimming <stimming@tuhh.de>

	* src/crypt/ossl/cryptssl_des.c: Fix compatibility code to
	openssl-0.9.6i which had a different declaration of the type
	des_key_schedule. The respective change is mentioned in OpenSSL's
	CHANGES file under the heading Changes between 0.9.6h and 0.9.7
	[31 Dec 2002].


2003/11/26 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- more work on IPC:
  - added some basic IPC requests/responses (such as segment results)
  - added a test which sends a getkey request and shows the reply
  - fixed some bugs


2003/11/25 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed a bug in DB: Could not write longer binary values because of
  the size of static buffers. I will have to think about storing binary
  data anyway, because a 1024 bytes big binary is not easy to store within
  a single line ;-)
- added a module with handlers for some often needed IPC requests


2003/11/24 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added some testdata to continuously check IPC stuff ("test/testdata")
- IPC: added some callbacks for applications to keep track of
  connections
- replaced COPYING file with one that includes the LGPL instead of the GPL
- added license exception to satisfy Debian needs (the old OpenSSL problem)
- removed unnecessary files, improved APIDOC


2003/11/23 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- more work on IPC. I think I now have found the best method ;-)
- IPC: added check for the correct key version when decrypting or verifying
  a signature
- removed some of Christian's FIXMEs in README, since he got it all
  perfectly right ;-)
- added Doxyfile.in, started working on API documentation
- added "src/os/directory_all.c" which contains some usefull functions (well,
  ONE at this moment)
- improved APIDOC of some "classes"


2003/11/22 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed a bug in DB concerning loading of binary data
- added a warning to DB when an unknown type specifier is found (which
  defaults to "char")
- fixed a bug in RSA code concerning loading of keys from a DB
- first successful test of client/server IPC ;-)
  Now it basically works. I also fixed many bugs in the code which is not
  used by programs, since it is under heavy development.
- reading keys from a file and writing then to a file now works
- fixed a severe bug in "list"
- finally corrected spelling of Gwenhywfar ;-)
  Thanks to Thomas Viehmann for providing a nice conversion script ;-)


2003-11-21  Christian Stimming <stimming@tuhh.de>

	* README: Add some explanation of this package. Martin's
	proofreading still needed.

	* configure.ac: Add variables for rpm version. Changed name in
	AC_INIT_AUTOMAKE to conform to the package name and have the right
	spelling gwenhyWFar.

	* Makefile.am: Add targets for rpm packages.

	* gwenhywfar.spec.in: Add rpm spec file.


===========================================================================
MARK: released gwenhywfar-0.9beta5 (2003/11/21)
===========================================================================


2003/11/21 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed some compiler warnings
- more work on IPC


2003-11-19  Christian Stimming <stimming@tuhh.de>

	* configure.ac: Add compilation debug argument macro.


2003/11/18 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- should now work with OpenSSL 0.9.6 as well...
- again more work on IPC
- fixed some bugs


2003/11/17 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- module "db" can now read/write binary values from/to streams
- added KeyManager
- added IPCXMLKeyManager, adapted IPCXMLDialog to use it
- fixed a bug in LIST code


2003/11/16 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed several bugs
- continued work on IPC
- module "crypt": added DES


2003/11/15 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- further work on IPC part
- added module "list" (base)


2003/11/13 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed a severe bug in GWEN_Buffer (error in dynamic mode)
- added rmd160 to crypt module
- added padding with ISO 9796-1 (taken from OpenHBCI, the functions introduced
  have originally been written by Fabian Kaiser and adapted for Gwen by me)
- worked on Christian's FIXMEs


2003-11-12  Christian Stimming  <stimming@tuhh.de>

	* configure.ac: Fix -L argument in gwenhywfar_libs; it was missing
	the /lib suffix.

2003/11/12 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- CVS version now compiles again ;-}


2003/11/11 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- started working on IPC stuff


2003/11/07 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- started working on crypto stuff


2003/11/05 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed a bug in MsgEngine (ReadMessage was not taking segment version into
  account)
- fixed a bug in CSV code (was taking "quote" for "title")


===========================================================================
MARK: released gwenhywfar-0.9beta4 (2003/11/05)
===========================================================================


2003/11/03 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed a bug in MsgEngine (did not add a trailing 0 to values read)
- MsgEngine is now able to share definitons with other MsgEngines


===========================================================================
MARK: released gwenhywfar-0.9beta3 (2003/11/02)
===========================================================================


2003/11/01 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- changed behaviour of GWEN_GetHomeDirectory: It now uses the effective
  user id instead of the real user id.


===========================================================================
MARK: released gwenhywfar-0.9beta2 (2003/11/01)
===========================================================================


2003/10/31 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added function GWEN_Version
- added parser module CSV


2003/10/30 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed memory leaks


===========================================================================
MARK: released gwenhywfar-0.9beta1 (2003/10/27)
===========================================================================


2003/10/27 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- improved API documentation


2003/10/25 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added call to binTypeWrite function in MessageEngine code
- improved trustlevel handling in msgengine


2003/10/24 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added dynamic mode to GWEN_BUFFER (in this mode more memeory is allocated
  as needed when writing to it)
- added new BufferedIO type which uses a GWEN_BUFFER for reading/writing


2003-10-20  Christian Stimming <stimming@tuhh.de>

	* src/parser/msgengine.c: Improve some signed/unsigned compiler
	warnings.


2003/10/20 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed a problem in MessageEngine: It now uses the correct path when
  looking up a predefined value (it finally works even with the special
  HBCI jobs containing <MESSAGE> tags)
- XML: Added type "GWEN_XMLNODE_PATH". This type stores a XML node path. It
  is used now by MessageEngine for <VALUE> lookups when creating a message
- MessageEngine: fixed a bug in value lookup code
- minor fixes


2003/10/19 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- minor fixes
- added function to XML module which allows copying properties from one
  node to another one
- this new function is now used by GWEN_MsgEngine__ListGroup when adding
  a node to the list of used nodes


2003-10-18  Christian Stimming  <stimming@tuhh.de>

	* Makefile.cvs: Add calling libtoolize.


2003/10/18 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- MsgEngine:
  - fixed a bug concerning escaping
  - MsgEngine now searches for the highest trustLevel


2003/10/12 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- fixed a whole bunch of bugs
- MessageEngine is now able to list all GROUPS and ELEMents which belong to
  a given message. This allows for tools that show the variables needed/set
  by different messages (as needed by OpenHBCI).


2003/10/07 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- db module is now able to write a configuration (except binary data)
- fixed some bugs


2003/09/24 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- many, many fixes, improved DB module etc
- added gwenhywfar-config and gwenhywfar.m4


2003/09/23 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- completed simple IPC protocol. Now a client can connect to a server
  using a simple greeting exchange. Later the exchange of public and
  session keys will be implemented as well.
  For now I will not use encryption, this will be implemented as soon as
  the rest works.
- added a test routine to gwentest which allows connecting to another
  gwentest which works as a server.
- added a version header file


2003/09/22 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- more work on IPC: Receiving messages and parsing them using msgEngine
  works ;-) I will have to concentrate on creating a test function for
  opening a connection to test writing of messages.


2003/09/21 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- worked on MsgEngine, IPC-CmdLayer
- will start to combine both of them tomorrow


2003/09/20 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- started debugging several modules (mostly IPC and msgEngine)


2003/09/19 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added cmdlayer to impl/ipc


2003/09/18 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added servicelayer to ipc
- added impl folder for implementations (starting with IPC)


2003/09/17 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- worked on IPC stuff (still untested)
- added serviceLayer


2003/09/14 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added transport layers (socket: TCP and Unix) to IPC module
- started using Sourceforge's cvs_acl script
- started using Sourceforge's syncmail script


2003/09/13 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added "test" folder, started debugging
- fixed some bugs in MsgEngine, Buffer
- added some functions to Db


2003/09/12 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added module "buffer" to base
- added some methods to db module
- MsgEngine now uses the new "buffer" module


2003/09/11 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- created libgwenhywfar
- added test tool
- fixed db module


2003/09/10 Martin Preuss <martin@libchipcard.de>
------------------------------------------------
- added module db, worked on xml and msgengine modules, fixed some bugs
  in os code



-----------------------------------------------------------------------------
Below are some templates to be copied to the top of this file when needed.

- API version modifications

  -------------- REMINDER PLEASE KEEP ON TOP UNTIL RELEASE----------------
  !     remember to do SO_CURRENT++ and SO_AGE++ before next release     !
  ------------------------------------------------------------------------

