DeveloperDocumentation
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.| |