|
|
|
This is Gwenhywfar, a multi-platform helper library for networking and
|
|
security applications and libraries. It is heavily used by libchipcard
|
|
http://www.libchipcard.de, OpenHBCI2 http://www.openhbci.de, and the
|
|
simulation tool Simthetic http://simthetic.sourceforge.net .
|
|
|
|
|
|
Features
|
|
--------
|
|
|
|
This library is written in C, and it follows the object-oriented
|
|
programming paradigm for most of its parts. The header files can
|
|
directly be used from C++, too.
|
|
|
|
Gwenhywfar includes the following features:
|
|
|
|
- Basic Data types for binary buffers, ring buffers, linked lists,
|
|
error objects, string lists (src/base/), buffered IO operations (src/io/)
|
|
|
|
- Macros for typesafe list management
|
|
|
|
- OS abstraction functions for directory and Internet address handling
|
|
and library loading (src/os/)
|
|
|
|
- Networking functions which allow to manage many connections to be used
|
|
economically even in single threaded applications
|
|
|
|
- High-level functions for parsing files with a simplified "XML-like"
|
|
format and accessing them like a hierarchical database (src/parser/)
|
|
|
|
- High-level cryptographic functions on top of OpenSSL functionality
|
|
(src/crypt/)
|
|
|
|
- Support for interprocess communication (HTTP on top of SSL or plain
|
|
TCP/UDP sockets)
|
|
|
|
|
|
Requirements
|
|
------------
|
|
|
|
- OpenSSL >= 0.9.6x (0.9.7x recommended); this can optionally be
|
|
disabled by the configure switch --disable-ssl
|
|
|
|
|
|
Platforms
|
|
---------
|
|
|
|
Gwenhywfar is being developed on Linux. But the following platforms are also
|
|
supported:
|
|
|
|
- Windows (98, NT and newer; for using this library from Microsoft
|
|
Visual Studio C please see the explanations in test/README.MSVC)
|
|
|
|
- FreeBSD (untested, but most likely to work)
|
|
- NetBSD (untested, but most likely to work)
|
|
- OpenBSD (untested, but most likely to work)
|
|
- Mac OS-X (untested)
|
|
|
|
|
|
|
|
Documentation
|
|
-------------
|
|
|
|
Currently the documentation can only be found in the header
|
|
files. Many header files already include extensive comments in
|
|
doxygen-format (however some don't).
|
|
For a more or less complete API documentation use the command
|
|
"make srcdoc"
|
|
You will need the tool doxygen for this command to run.
|
|
|
|
|
|
Contact
|
|
-------
|
|
|
|
For questions about this library please ask on the mailing list of the
|
|
OpenHBCI project openhbci-general (subscriber-only, please subscribe
|
|
on http://lists.sourceforge.net/lists/listinfo/openhbci-general),
|
|
since this is where the author(s) hang out.
|
|
|
|
|
|
Authors
|
|
-------
|
|
|
|
This library is being written by and is being maintained by Martin
|
|
Preuss <martin@libchipcard.de>. Some minor work has been contributed
|
|
by others including Christian Stimming <stimming@tuhh.de>.
|
|
|
|
|
|
Name
|
|
----
|
|
|
|
The name of this library was chosen to honour a very special person ;-)
|
|
(that should suffice as an explanation)
|
|
|