strongSwan Developer Documentation » History » Version 25

« Previous - Version 25/56 (diff) - Next » - Current version
Martin Willi, 18.02.2009 14:56

<abbr title="charon, pluto, libstrongswan, [[DynamicUmlMeshModeler, libfast, Manager, heading=Developer Documentation">TOC]]

strongSwan Developer Documentation

Getting the Source Code

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

svn checkout strongswan

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.

Code style

For new code (charon, libstrongswan, ...) we heavily use an object oriented programming style for C.


Before starting development, please read our contribution requirements.


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

charon The IKEv2 keying daemon.
pluto The IKEv1 keying daemon.
libstrongswan The new strongSwan library on which charon is built.
[browser:trunk/src/libfreeswan libfreeswan] The deprecated library used by pluto.
dumm An new and experimental UML testing framework in developement.
ipsec The ipsec command line tool wrapping commands and other tools.
[browser:trunk/src/libcrypto libcrypto] The deprecated crypto routines used in pluto.
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.
scepclient Utility to enroll certificates using the SCEP protocol.
starter Reads ipsec.conf and controls the keying daemons pluto and charon.
stroke Command line utility to control charon via the stroke protocol.
whack Command line utility to control pluto via the whack protocol.