Project

General

Profile

strongSwan Developer Documentation » History » Version 37

Tobias Brunner, 03.08.2011 14:23

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 37 Tobias Brunner
</pre>The _master_ branch is also mirrored to "GitHub":https://github.com/strongswan/strongswan.
9 1 Martin Willi
10 35 Tobias Brunner
h2. Browsing the Source Code
11 35 Tobias Brunner
12 35 Tobias Brunner
The Git repository can be browsed online using either "Gitweb":http://git.strongswan.org/?p=strongswan.git or the integrated "repository browser":http://wiki.strongswan.org/projects/strongswan/repository (slower).
13 35 Tobias Brunner
14 1 Martin Willi
h2. Source Code Documentation
15 1 Martin Willi
16 35 Tobias Brunner
The newer parts of strongSwan use extractable inline documentation extensively. This documentation is extracted with [[doxygen]] for the latest release
17 35 Tobias Brunner
and uploaded to "strongswan.org/apidoc":http://www.strongswan.org/apidoc, but can also be browsed here using the "Developer Documentation":http://wiki.strongswan.org/embedded/strongswan button above.
18 1 Martin Willi
19 25 Martin Willi
h2. Code style
20 25 Martin Willi
21 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.
22 25 Martin Willi
23 25 Martin Willi
h2. Contributions
24 1 Martin Willi
25 1 Martin Willi
Before starting development, please read our [[Contributions|contribution requirements]].
26 1 Martin Willi
27 36 Martin Willi
h2. Components
28 1 Martin Willi
29 1 Martin Willi
The _src_ directory in the strongSwan distribution contains a set of compoments:
30 1 Martin Willi
31 26 Martin Willi
|[[charon]]|The IKEv2 keying daemon.|
32 26 Martin Willi
|[[pluto]]|The IKEv1 keying daemon.|
33 33 Andreas Steffen
|[[libstrongswan]]|The strongSwan library with basic functions used by the daemons and utilities |
34 34 Andreas Steffen
|[[libcharon]]|Contains most of the code and the plugins of the charon daemon |
35 33 Andreas Steffen
|[[libhydra]]|Contains daemon-specific code and plugins used by both the charon und pluto daemons |
36 26 Martin Willi
|libfreeswan|The deprecated library used by pluto.|
37 33 Andreas Steffen
|[[DynamicUmlMeshModeler|dumm]]|An new and experimental UML testing framework in development.|
38 28 Martin Willi
|[[IpsecCommand|ipsec]]|The ipsec command line tool wrapping commands and other tools.|
39 1 Martin Willi
|[[libfast]]|A lightweight framework to build native web applications using ClearSilver and FastCGI.|
40 26 Martin Willi
|[[Manager|manager]]|A graphical management application for charon based on libfast.|
41 1 Martin Willi
|[[OpenAc|openac]]|Utility to build attribute certificates on the command line.|
42 33 Andreas Steffen
|[[IpsecPKI|pki]]|Public Key Infrastructure utility.|
43 26 Martin Willi
|[[ScepClient|scepclient]]|Utility to enroll certificates using the SCEP protocol.|
44 26 Martin Willi
|[[IpsecStarter|starter]]|Reads _ipsec.conf_ and controls the keying daemons pluto and charon.|
45 26 Martin Willi
|[[IpsecStroke|stroke]]|Command line utility to control charon via the stroke protocol.|
46 26 Martin Willi
|[[IpsecWhack|whack]]|Command line utility to control pluto via the whack protocol.|