Contributions
Contributions to the strongSwan project are very welcome. Before you start your development, please get in contact with our developers via one of our support channels. We might already have some plans for such a feature or are even working on it. We can also give you some useful hints on how to integrate your work into the strongSwan architecture.
For non-trivial submissions we’ll require that you sign a Contributor License Agreement (see below for details).
Patches may be submitted as pull requests on GitHub.
strongSwan License
strongSwan is an open source project distributed under the GPLv2 license. We think the open source model has several advantages over a proprietary product:
-
You can review the code, which is of utmost importance in security software.
-
You can contribute to fix or improve the software.
-
You can use the software for free. This allows more users to try and use it, giving feedback and further improve its quality.
We strongly believe in open source and will always distribute strongSwan under a GPL license.
Commercial License
A commercial, non-GPL license is available for most of the components of the strongSwan project (see below for a list of GPL-only components).
Please refer to our website for details if you are interested.
Copyright
The IKE charon
daemon and its libraries have
originally been developed at the HSR University of Applied Sciences Rapperswil
in Switzerland. Writing an IKE daemon from scratch is not something you do as a
hobby over the weekend. We have invested several full-time man years of development.
While we are open to contributions, they have been rather rare so far. We think
this is mainly due to the complexity of the topic and the software.
The intellectual property rights of the charon
daemon and its related libraries now belong to the German company
secunet Security Networks AG.
The old IKEv1 pluto
daemon (until strongSwan version 5.0.0) and related parts
have been inherited from the FreeS/WAN project. The copyright belongs
to several people.
Contributing
Depending on the strongSwan components of your contribution, a signed Contributor License Agreement (CLA) will usually be required:
Core Libraries, Front Ends and Tools
If your (non-trivial) contributions are targeting
-
the core libraries:
-
libcharon
daemon core (src/libcharon
) and its plugins (src/libcharon/plugins
) -
libstrongswan
(src/libstrongswan
) and other related libraries and their plugins -
any new plugins created by a contribution
-
-
the front ends:
-
charon-cmd
command line utility (src/charon-cmd
) -
the Android app, etc.
-
the tools, e.g.:
we will require that contributors have signed a Contributor License Agreement (CLA).
When submitting a pull request, a bot will automatically check if all authors have signed the CLA and otherwise provide instructions on how to proceed. |
This allows us to:
-
Integrate your work in our GPLed strongSwan project
-
To switch the project’s license to GPLv3 if required
-
Offer partners alternative licensing schemes for these parts
Providing alternative licensing will give us additional revenue to keep the project rolling. We cannot improve strongSwan without a constant income.
If you submit non-trivial patches:
-
if you extend existing files in a non-trivial way, you may add your own copyright to the existing header
-
for new files, add the following header
/* * Copyright (C) <year> <copyright holders> * * Copyright (C) secunet Security Networks AG * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. */
Legacy and Other GPL-only Components
If your contributions are targeting any of the following components we will not require contributors to have signed a Contributor License Agreement (CLA).
The files in these components use regular GPLv2-headers, if any.
-
legacy components:
-
starter
(src/starter
) -
ipsec
(src/ipsec
) -
_updown
(src/_updown
)
-
-
the GPL-only NetworkManager front- and backend:
-
NM plugin
(src/frontends/gnome
) -
charon-nm
(src/charon-nm
)
-
-
the GPL-only plugins:
-
tnccs_11
(src/libtnccs/plugins/tnccs_11
) -
eap_sim_pcsc
(src/libcharon/plugins/eap_sim_pcsc
)
-
-
legacy crypto plugins:
-
aes
(src/libstrongswan/aes
) -
blowfish
(src/libstrongswan/blowfish
) -
des
(src/libstrongswan/des
) -
gmp
(src/libstrongswan/gmp
) -
md4
(src/libstrongswan/md4
) -
md5
(src/libstrongswan/md5
) -
sha2
(src/libstrongswan/sha2
)
-
-
the testing framework:
-
testing
(testing
)
-