Project

General

Profile

strongSwan Developer Documentation » History » Version 38

Tobias Brunner, 29.10.2012 10:28

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 38 Tobias Brunner
The _src_ directory in the strongSwan distribution contains a set of components:
30 26 Martin Willi
31 38 Tobias Brunner
|[[charon]]|The IKE keying daemon.|
32 33 Andreas Steffen
|[[libstrongswan]]|The strongSwan library with basic functions used by the daemons and utilities |
33 33 Andreas Steffen
|[[libcharon]]|Contains most of the code and the plugins of the charon daemon |
34 26 Martin Willi
|[[libhydra]]|Contains daemon-specific code and plugins used by both the charon und pluto daemons |
35 33 Andreas Steffen
|[[DynamicUmlMeshModeler|dumm]]|An new and experimental UML testing framework in development.|
36 28 Martin Willi
|[[IpsecCommand|ipsec]]|The ipsec command line tool wrapping commands and other tools.|
37 1 Martin Willi
|[[libfast]]|A lightweight framework to build native web applications using ClearSilver and FastCGI.|
38 1 Martin Willi
|[[Manager|manager]]|A graphical management application for charon based on libfast.|
39 26 Martin Willi
|[[OpenAc|openac]]|Utility to build attribute certificates on the command line.|
40 1 Martin Willi
|[[IpsecPKI|pki]]|Public Key Infrastructure utility.|
41 1 Martin Willi
|[[ScepClient|scepclient]]|Utility to enroll certificates using the SCEP protocol.|
42 38 Tobias Brunner
|[[IpsecStarter|starter]]|Reads _ipsec.conf_ and controls the keying daemon.|
43 1 Martin Willi
|[[IpsecStroke|stroke]]|Command line utility to control charon via the stroke protocol.|
44 38 Tobias Brunner
45 38 Tobias Brunner
h2. Removed since [[5.0.0]]
46 38 Tobias Brunner
47 38 Tobias Brunner
|[[pluto]]|The old IKEv1 keying daemon.|
48 38 Tobias Brunner
|libfreeswan|The deprecated library used by pluto.|
49 26 Martin Willi
|[[IpsecWhack|whack]]|Command line utility to control pluto via the whack protocol.|