strongSwan Developer Documentation » History » Version 40

« Previous - Version 40/59 (diff) - Next » - Current version
Tobias Brunner, 02.03.2013 10:32

strongSwan Developer Documentation

Getting the Source Code

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

git clone git://
The master branch is also mirrored to GitHub.

Browsing the Source Code

The Git repository can be browsed online using either Gitweb or the integrated repository browser (slower).

Source Code Documentation

The newer parts of strongSwan use extractable inline documentation extensively. This documentation is extracted with doxygen for the latest release
and uploaded to

Code style

For new code (charon, libstrongswan, ...) we heavily use an object oriented programming style for C. Also have a look to our basic programming style guidelines.


Before starting development, please read our contribution requirements.

Testing Environment

Our integration and regression testing environment helps us ensure the quality of future releases.


The src directory in the strongSwan distribution contains a set of components:

charon The IKE keying daemon.
libstrongswan The strongSwan library with basic functions used by the daemons and utilities
libcharon Contains most of the code and the plugins of the charon daemon
libhydra Contains daemon-specific code and plugins used by both the charon und pluto daemons
dumm An new and experimental UML testing framework in development.
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 A graphical management application for charon based on libfast.
openac Utility to build attribute certificates on the command line.
pki Public Key Infrastructure utility.
scepclient Utility to enroll certificates using the SCEP protocol.
starter Reads ipsec.conf and controls the keying daemon.
stroke Command line utility to control charon via the stroke protocol.

Removed since 5.0.0

pluto The old IKEv1 keying daemon.
libfreeswan The deprecated library used by pluto.
whack Command line utility to control pluto via the whack protocol.