Projekt

Allgemein

Profil

Herunterladen (132 KB) Statistiken
| Zweig: | Markierung: | Revision:

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 !
------------------------------------------------------------------------

(4-4/23)