strongSwan Developer Documentation » History » Version 32

Version 31 (Martin Willi, 04.09.2009 16:25) → Version 32/58 (Martin Willi, 21.09.2009 14:01)

h1. strongSwan Developer Documentation

h2. Getting the Source Code

The easiest way to get the source code is checking it out from our "Git": repository:
git clone git://

h2. Source Code Documentation

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": folder.

h2. Code style

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.

h2. Contributions

Before starting development, please read our [[Contributions|contribution requirements]].

h2. Compoments

The _src_ directory in the strongSwan distribution contains a set of compoments:

|[[charon]]|The IKEv2 keying daemon.|
|[[pluto]]|The IKEv1 keying daemon.|
|[[libstrongswan]]|The strongSwan library with basic functions used by the charon and pluto daemons |
|libfreeswan|The deprecated library used by pluto.|
|[[DynamicUmlMeshModeler|dumm]]|An new and experimental UML testing framework in developement.|
|[[IpsecCommand|ipsec]]|The ipsec command line tool wrapping commands and other tools.|
|[[libfast]]|A lightweight framework to build native web applications using ClearSilver and FastCGI.|
|[[Manager|manager]]|A graphical management application for charon based on libfast.|
|[[OpenAc|openac]]|Utility to build attribute certificates on the command line.|
|[[IpsecPKI|pki]]|Public Key Infrastructury utility.|

|[[ScepClient|scepclient]]|Utility to enroll certificates using the SCEP protocol.|
|[[IpsecStarter|starter]]|Reads _ipsec.conf_ and controls the keying daemons pluto and charon.|
|[[IpsecStroke|stroke]]|Command line utility to control charon via the stroke protocol.|
|[[IpsecWhack|whack]]|Command line utility to control pluto via the whack protocol.|