-
Notifications
You must be signed in to change notification settings - Fork 5
/
README
189 lines (124 loc) · 5.07 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
This is Gwenhywfar, a multi-platform helper library for networking and
security applications and libraries.
It is used by
- Libchipcard (http://www.libchipcard.de),
- OpenHBCI2 (http://www.openhbci.de),
- Simthetic, the simulation tool (http://simthetic.sourceforge.net)
- AqBanking/AqHBCI (http://www.aqbanking.de/).
- and others by using one of the projects above
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/)
It is able to process valid XML files, too.
- 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, with or without certificates for clients and/or servers)
- A tool to generate simple data containers from XML files. It automatically
generates getters, setters, constructor, destructor, deep-copy function,
usage counter handling, modification tracking, functions for reading from
and writing to GWEN_DBs (used by AqBanking to create the transaction class)
Requirements
============
- GnuTLS >= 1.4 (>=2.0.1 recommended)
- libgcrypt (>=1.2.0)
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
- Linux (i386, amd64, alpha)
- Mac OS-X
- NetBSD (untested, but most likely to work)
- OpenBSD (untested, but most likely to work)
- SunOS 5.9 (compiles, untested, but most likely to work)
On Windows, an .exe setup program is provided, created with the Inno
Setup Compiler http://www.jrsoftware.org/isdl.php .
Architectures
=============
According to Debian Gwen runs on the following platforms:
- alpha
- amd64
- arm
- hppa
- i386
- ia64
- m68k
- mips
- mipsel
- powerpc
- s390
- sparc
Environment Variables
=====================
"GWEN_MEMORY_DEBUG"
-------------------
This integer variable tells gwen whether (and how) to print the memory
debugger statistic. This only works for sources compiled with the defined
macro GWEN_MEMORY_DEBUG.
- "0" shows ALL listed objects
- "1" only shows those objects whose count is not 0
"GWEN_SSL_DEBUG"
----------------
If this environment variable exists the SSL code will append data received
via an SSL connection to "/tmp/read.bin" and append data sent via an SSL
connection to /tmp/written.bin".
"GWEN_TLS_CIPHER_PRIORITIES"
--------------------------
If this environment variable is set, the SSL code will initialize the GnuTLS
library with the provided cipher priority list. If this environment variable
is unset, the default cipher priority list of the GnuTLS library is being used.
For the exact format of the cipher priority list and its default, please
consult the GnuTLS documentation, section "Priority strings":
http://gnutls.org/manual/html_node/Priority-Strings.html
Registry Keys
=============
On Windows platforms Gwen uses some keys below HKEY_CURRENT_USER
to store information about file/folder locations. The keys are set
in the Inno Setup file gwenhywfar.iss, so please check the
[Registry] section in gwenyhwfar.iss.in for the authoritative
source of available registry keys.
"Software\\Gwenhywfar\\Paths\\dbio-plugins"
-------------------------------------------
Complete path to the folder containing GWENs DBIO plugins.
(and some more keys. See gwenhywfar.iss.in)
Documentation
=============
The documentation can 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
AqBanking project aqbanking-devel (subscriber-only, please subscribe
on http://lists.sourceforge.net/lists/listinfo/aqbanking-devel),
since this is where the author(s) hang out.
Authors
=======
This library is being written by and is being maintained by Martin
Preuss <[email protected]>.
I also wish to thank Christian Stimming <[email protected]> for his
contributions and for adding MSVC support to Gwen (thus making Gwen completely
available on Windows).
Name
====
The name of this library was chosen to honour a very special person ;-)
(that should suffice as an explanation)
Hamburg, Germany 2021/09/30