Project

General

Profile

strongSwan Developer Documentation » History » Version 33

Andreas Steffen, 22.04.2010 10:51
added libcharon and libhydra

1 25 Martin Willi
h1. strongSwan Developer Documentation
2 25 Martin Willi
3 25 Martin Willi
h2. Getting the Source Code
4 25 Martin Willi
5 27 Tobias Brunner
The easiest way to get the source code is checking it out from our "Git":http://git-scm.com/ repository:
6 25 Martin Willi
<pre>
7 32 Martin Willi
git clone git://git.strongswan.org/strongswan.git
8 25 Martin Willi
</pre>
9 1 Martin Willi
10 25 Martin Willi
h2. Source Code Documentation
11 1 Martin Willi
12 25 Martin Willi
The newer parts of strongSwan use extractable inline documentation extensively. This documentation is extracted with [[doxygen]] three times a day and uploaded to the "/apidoc":http://www.strongswan.org/apidoc folder.
13 1 Martin Willi
14 25 Martin Willi
h2. Code style
15 25 Martin Willi
16 31 Martin Willi
For new code (charon, libstrongswan, ...) we heavily use an [[ObjectOrientedC|object oriented programming style]] for C. Also have a look to our basic [[ProgrammingStyle|programming style]] guidelines.
17 25 Martin Willi
18 25 Martin Willi
h2. Contributions
19 1 Martin Willi
20 1 Martin Willi
Before starting development, please read our [[Contributions|contribution requirements]].
21 1 Martin Willi
22 1 Martin Willi
h2. Compoments
23 1 Martin Willi
24 1 Martin Willi
The _src_ directory in the strongSwan distribution contains a set of compoments:
25 1 Martin Willi
26 26 Martin Willi
|[[charon]]|The IKEv2 keying daemon.|
27 26 Martin Willi
|[[pluto]]|The IKEv1 keying daemon.|
28 33 Andreas Steffen
|[[libstrongswan]]|The strongSwan library with basic functions used by the daemons and utilities |
29 33 Andreas Steffen
|[[libcharon]]|Contains most of the code of the charon daemon |
30 33 Andreas Steffen
|[[libhydra]]|Contains daemon-specific code and plugins used by both the charon und pluto daemons |
31 26 Martin Willi
|libfreeswan|The deprecated library used by pluto.|
32 33 Andreas Steffen
|[[DynamicUmlMeshModeler|dumm]]|An new and experimental UML testing framework in development.|
33 28 Martin Willi
|[[IpsecCommand|ipsec]]|The ipsec command line tool wrapping commands and other tools.|
34 1 Martin Willi
|[[libfast]]|A lightweight framework to build native web applications using ClearSilver and FastCGI.|
35 26 Martin Willi
|[[Manager|manager]]|A graphical management application for charon based on libfast.|
36 1 Martin Willi
|[[OpenAc|openac]]|Utility to build attribute certificates on the command line.|
37 33 Andreas Steffen
|[[IpsecPKI|pki]]|Public Key Infrastructure utility.|
38 26 Martin Willi
|[[ScepClient|scepclient]]|Utility to enroll certificates using the SCEP protocol.|
39 26 Martin Willi
|[[IpsecStarter|starter]]|Reads _ipsec.conf_ and controls the keying daemons pluto and charon.|
40 26 Martin Willi
|[[IpsecStroke|stroke]]|Command line utility to control charon via the stroke protocol.|
41 26 Martin Willi
|[[IpsecWhack|whack]]|Command line utility to control pluto via the whack protocol.|