Commit Graph
511 Commits
Author SHA1 Message Date
Tobias Brunner dd7b0283ef plugin-loader: Add option to change log message if plugin is not found
Distributions like Debian/Ubuntu ship the plugins in multiple packages
that are not all installed by default.  When running tools like pki or
swanctl, which don't use modular loading with config snippets by default,
there are errors in the output if these packages and plugins are
currently not available.  In order to not alarm users, this change adds
a configure option that package maintainers can use.  It causes the log
level of the message to increase and also adds a note that mentions that
plugins are potentially available in other packages (which should be the
case unless the user tried to load a plugin, e.g. via load statement,
that is not actually built and shipped by the package maintainers).
2026-02-06 11:21:34 +01:00
Tobias Brunner 5fe1d71204 swanctl: Use a custom default plugin list
Loading all libstrongswan plugins isn't necessary as the tool only uses
the plugins to parse/decrypt credentials.  So it's similar to pki, but
it doesn't do (online) certificate validation, access tokens, or need
access to databases.

While it's usually not an issue to load unnecessary plugins, one thing
that came up recently are the new capabilities required by the agent
plugin.  Since Debian's AppArmor policy for swanctl doesn't grant them,
this produces an error message that might confuse users.
2026-02-06 11:21:34 +01:00
Tobias Brunner c649774141 configure: Load ldap plugin in pki
It's a fetcher plugin used for online certificate validation.
2026-02-06 11:21:34 +01:00
Andreas Steffen d1c259f44b Version bump to 6.0.4 2025-12-12 15:32:29 +01:00
Tobias Brunner a768f57286 nm: Create safe copies of files for user-specific connections
This ensures that only certificates/private keys accessible by the
configured user are accessed and prevents attackers from misusing
other user's credentials.

Also removed setting NM_VERSION_MIN_REQUIRED, which suppresses deprecation
warnings that were added with newer API versions, and
NM_VERSION_MAX_ALLOWED, which warns if using functions added in newer
API versions, so we always build against the latest API available.

But we check explicitly for the required function so this works with
older NM versions and automatically will use it if the function is
backported.

Note that we can't use BUILD_FROM_FILE to read the temporary files as that
uses mmap() which SELinux policies prevent us from using at the location
these files are stored ([/var]/run/NetworkManager/cert/).

Fixes: CVE-2025-9615
2025-12-10 17:12:31 +01:00
Andreas Steffen 909f52875e Version bump to 6.0.4rc1 2025-12-08 08:22:18 +01:00
Andreas Steffen 472dcd8bb5 Version bump to 6.0.3 2025-10-27 14:02:59 +01:00
Andreas Steffen 4cf88da4d7 Version bump 6.0.3rc1 2025-10-24 15:21:52 +02:00
Andreas Steffen 2b13873c0f Version bump to 6.0.3dr1 2025-09-22 18:57:54 +02:00
Andreas Steffen 23eb1e0945 Version bump to 6.0.2 2025-07-13 09:56:49 +02:00
Andreas Steffen bd65a21ce0 Version bump to 6.0.2rc1 2025-07-07 18:25:37 +02:00
Andreas Steffen 1f42640c43 Version bump to 6.0.2dr3 2025-07-03 11:43:53 +02:00
Andreas Steffen faf7ad2331 Version bump to 6.0.2dr2 2025-06-05 13:43:21 +02:00
Andreas Steffen 2fa8f4a90f Version bump to 6.0.2dr1 2025-06-04 19:58:23 +02:00
Mike Gorse 6ddabf52d5 soup: Port to libsoup 3 2025-06-04 19:08:07 +02:00
Tobias Brunner a7a3c4a22a conf: Document global IP-TFS settings 2025-05-28 16:37:46 +02:00
Tobias Brunner 7de05b918c identification: Add support for POSIX regular expressions
When cross-compiling for Windows on Ubuntu, we don't have POSIX regular
expressions available (there does not seem to be any alternative libraries
either), but since the tests are not executed that's OK.  On AppVeyor,
MSYS2 has libgnurx installed, which works fine but requires explicit
linking with `-lregex`.

This is loosely based on a patch by Thomas Egerer.
2025-05-28 09:58:17 +02:00
Tobias Brunner 94cc07cab4 uci: Remove obsolete and broken plugin
The plugin was apparently broken for years because it uses functions that
don't exist anymore.  It was quite limited anyway, so it was never really
used in OpenWrt to begin with (instead they generate configs in a custom
init script).
2025-05-19 17:17:45 +02:00
Tobias Brunner e8e5e2d441 configure: Simplify inclusion of M4 macros 2025-05-13 18:45:45 +02:00
Tobias Brunner 7ec0101250 Include lib-prefix.m4 directly and remove gettext dependency
A recent gettext release (0.25 via Homebrew) installs the M4 macros in a
different location (<prefix>/share/gettext/m4 instead of
<prefix>/share/aclocal). According to the commit messages to avoid "bad
interactions between autoreconf and autopoint".  Since we only depend
on gettext for that macro and this move makes it complicated, we can also
just integrate the macro from gnulib directly (which gettext 0.18+ relies
on anyway).
2025-05-13 17:15:23 +02:00
Tobias Brunner 6cbd93838b Add configure option to disable testing key exchange methods
If this is used, the functionality to set a private key/value/seed for
key exchange methods is removed (including from the interface to avoid
accidentally forgetting to wrap implementations and uses of set_seed()).

The set_seed() method is assigned outside the INIT() macro to avoid
potentially undefined behavior (preprocessing directives in macro
arguments).

The test done by the crypto tester is a simple functionality test.
2025-04-10 08:31:09 +02:00
Andreas Steffen 1e8cca4004 Version bump to 6.0.1 2025-03-10 19:19:37 +01:00
Andreas Steffen 61c0006002 Version bump to 6.0.1rc1 2025-03-03 10:10:03 +01:00
Tobias Brunner 7205d02360 conf: Add missing modules to install config snippets
In particular the one for charon-nm was missing.

References strongswan/strongswan#2683
2025-02-28 16:45:33 +01:00
Nathan TranandTobias Brunner 1d5c5a1d72 openssl: Require min version 3.0.0 for HKDF to support larger MODP groups and nonces
Also enables the `kdf` plugin automatically if building against an older
version of OpenSSL.

Closes strongswan/strongswan#2602

Co-authored-by: Tobias Brunner <tobias@strongswan.org>
2025-01-15 18:11:18 +01:00
Tobias Brunner 71f4c3dc4e coverage: Use atomic profiling updates to avoid issues with multi-threaded test cases 2025-01-10 18:53:39 +01:00
Tobias Brunner 3babf1f710 vici: Update Python build
Directly calling setup.py is deprecated (apparently has been for a while,
but now we get large warnings).  Direct installation is also discouraged.
So this removes that option.  The built wheel (the old egg format is not
used/built anymore) can be installed manually in a venv or the like.
2024-12-11 15:18:09 +01:00
Andreas Steffen c86f709b4b Version bump to 6.0.0 2024-12-02 14:21:53 +01:00
Andreas Steffen 4de6bb3feb Version bump to 6.0.0rc2 2024-11-26 08:21:20 +01:00
Andreas Steffen af28aac85f Version bump to 6.0.0rc1 2024-11-25 11:11:17 +01:00
Andreas Steffen 6735c3d7ca Define new default plugins 2024-11-22 14:14:53 +01:00
Tobias Brunner 89f4b345e3 ml: Add software implementation of ML-KEM
This follows FIPS 203 relatively closely but takes some ideas from the
reference implementation.  In particular, how to avoid potential
side-channels via direct C division/modulo operations.  However, it just
uses Barrett reduction (no Montgomery reduction) and no negative
coefficients to avoid number format conversions and keep the
implementation clearer.
2024-11-22 14:14:08 +01:00
Andreas Steffen 1265d78cac ntru: Remove legacy NTRU key exchange method 2024-11-22 14:05:36 +01:00
Andreas Steffen 8e3a373e18 newhope: Remove legacy Newhope key exchange method 2024-11-22 14:05:36 +01:00
Andreas Steffen 4833f29b15 bliss: Remove legacy BLISS signatures 2024-11-22 14:05:36 +01:00
Thomas Egerer 3d7d527ad9 streams: Add support for AF_VSOCK sockets on Linux
These allow, for instance, a vici client on a host to communicate with
an IKE daemon running in a VM.

Signed-off-by: Thomas Egerer <thomas.egerer@secunet.com>
2024-05-17 14:00:12 +02:00
Tobias Brunner 059249bae7 configure: Enable counters plugin also if vici is enabled but stroke is disabled 2024-04-18 08:59:18 +02:00
Andreas Steffen dea8493f3a Version bump to 5.9.14 2024-03-19 11:56:44 +01:00
Andreas Steffen 91f209b878 Version bump to 5.9.14rc1 2024-03-13 20:24:54 +01:00
Tobias Brunner bb67838c53 configure: Load constraints plugin in pki
This allows --verify to check e.g. name constraints.
2024-03-08 11:16:48 +01:00
Andreas Steffen f566a85fcf Version bump to 5.9.14dr1 2024-02-22 15:51:24 +01:00
Dan JamesandTobias Brunner 187c72d1af dhcp: Port the plugin to FreeBSD/macOS
This also refactors the BPF handling so it can be shared between the
dhcp and farp plugins.  The latter is adapted accordingly.

Closes strongswan/strongswan#2047

Co-authored-by: Tobias Brunner <tobias@strongswan.org>
2024-02-19 09:17:53 +01:00
Andreas Steffen c8ef91c786 Version bump to 5.9.13 2023-12-01 07:26:22 +01:00
Andreas Steffen 04794e703d Version bump to 5.9.13rc1 2023-11-25 17:16:59 +01:00
Andreas Steffen 11dbc8e7f2 Version bumpt to 5.9.12 2023-11-20 12:10:34 +01:00
Andreas Steffen 02a4c8cfa9 Version bump to 5.9.12rc1 2023-11-14 08:12:00 +01:00
Andreas Steffen 821d7784a3 man: Extended pki man page and added pki --ocsp man page 2023-11-13 12:40:58 +01:00
Andreas Steffen 199c7083e1 openxpki: OCSP responder plugin accessing OpenXPKI
The openxpki plugin directly access the certificates table in
the OpenXPKI's MariaDB in order to retrieve the status of an
issued X.509 certificate based on its serial number.
2023-11-13 12:40:55 +01:00
Andreas Steffen 51872a0a0c Version bump to 5.9.12dr2 2023-10-30 22:42:55 +01:00
Tobias Brunner 0b989c7b20 botan: Reject EC keys with explicitly encoded parameters
This requires a function that will be added in the upcoming Botan 3.2
release.
2023-10-13 09:10:46 +02:00