strongSwan Developer Documentation » History » Version 42
strongSwan Developer Documentation¶
Before starting development, please read our contribution requirements.
Getting the Source Code¶
The easiest way to get the source code is checking it out from our Git repository:
git clone git://git.strongswan.org/strongswan.gitThe repository is also mirrored to GitHub.
Browsing the Source Code¶
Source Code Documentation¶
Our libraries are tested with an increasing number of unit tests. To run them use
The following environment variables change the behavior of the test runner:
|TESTS_REDUCED_KEYLENGTHS||If this is set test cases that generate keys will do so only for reduced key lengths to avoid blocking on hosts with low entropy.|
|TESTS_STRONGSWAN_CONF||Path to a custom strongswan.conf file used for the tests. Since 5.2.0.|
|TESTS_SUITES||A comma-separated list of test suites to run (all suites are run if this is not specified).|
|TESTS_VERBOSITY||The log level used when running the tests (-1 to 4, see LoggerConfiguration), defaults to -1.|
|LEAK_DETECTIVE_DISABLE||If our custom memory allocator is enabled with --enable-leak-detective it can be disabled temporarily by setting this variable in order to speed up running the tests.|
Coverage reports can be generated with
make coverage (requires configuring with --enable-coverage, which is not recommended for production builds as it disables all optimizations).
The unit tests also run automatically on Travis CI:
Our integration and regression testing environment helps us ensure the quality of future releases.
The results for the latest release are published online.
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.|
|pluto||The old IKEv1 keying daemon.|
|libfreeswan||The deprecated library used by pluto.|
|whack||Command line utility to control pluto via the whack protocol.|