7 months agotravis: Trigger code review on
Tobias Brunner [Tue, 28 Jan 2020 15:15:45 +0000 (16:15 +0100)]
travis: Trigger code review on

Only the master (daily) and pull requests are scanned automatically.

7 months agoconf: Complete ordering functions for ConfigOption class
Tobias Brunner [Wed, 29 Jan 2020 12:23:57 +0000 (13:23 +0100)]
conf: Complete ordering functions for ConfigOption class

7 months agopkcs11: Avoid naming conflict with method parameter
Tobias Brunner [Tue, 28 Jan 2020 13:58:27 +0000 (14:58 +0100)]
pkcs11: Avoid naming conflict with method parameter

7 months agosystime-fix: Replace asctime() with thread-safe asctime_r()
Tobias Brunner [Tue, 28 Jan 2020 13:55:25 +0000 (14:55 +0100)]
systime-fix: Replace asctime() with thread-safe asctime_r()

According to the man page, the buffer should have room for at least
26 characters.

7 months agoload-tester: Avoid naming conflict with local certificate variables
Tobias Brunner [Tue, 28 Jan 2020 13:41:15 +0000 (14:41 +0100)]
load-tester: Avoid naming conflict with local certificate variables

7 months agosw-collector: Avoid naming conflicts with local count variables
Tobias Brunner [Tue, 28 Jan 2020 13:38:27 +0000 (14:38 +0100)]
sw-collector: Avoid naming conflicts with local count variables

7 months agoeap-aka-3gpp2: Fix a bunch of typos
Tobias Brunner [Tue, 28 Jan 2020 13:32:52 +0000 (14:32 +0100)]
eap-aka-3gpp2: Fix a bunch of typos

7 months agoeap-aka-3gpp2: Avoid naming conflict with parameters of crypto functions
Tobias Brunner [Tue, 28 Jan 2020 13:32:38 +0000 (14:32 +0100)]
eap-aka-3gpp2: Avoid naming conflict with parameters of crypto functions

7 months agoeap-aka-3gpp2: Avoid naming conflict with local AMF variable
Tobias Brunner [Tue, 28 Jan 2020 13:45:36 +0000 (14:45 +0100)]
eap-aka-3gpp2: Avoid naming conflict with local AMF variable

7 months agopool: Avoid conflict with start/end variables used in many commands
Tobias Brunner [Tue, 28 Jan 2020 13:26:11 +0000 (14:26 +0100)]
pool: Avoid conflict with start/end variables used in many commands

7 months agoaesni: Namespace include guard for AES-CMAC
Tobias Brunner [Tue, 28 Jan 2020 12:56:58 +0000 (13:56 +0100)]
aesni: Namespace include guard for AES-CMAC

Was the same as in the cmac plugin.

7 months agotls-prf: Remove unused/undeclared argument in TLS 1.0/1.1 PRF constructor
Tobias Brunner [Tue, 28 Jan 2020 12:55:24 +0000 (13:55 +0100)]
tls-prf: Remove unused/undeclared argument in TLS 1.0/1.1 PRF constructor

7 months agopki: Avoid naming conflict with global variables for passed arguments
Tobias Brunner [Tue, 28 Jan 2020 10:36:11 +0000 (11:36 +0100)]
pki: Avoid naming conflict with global variables for passed arguments

7 months agoscepclient: Avoid name conflict with global PKCS#7 chunk
Tobias Brunner [Tue, 28 Jan 2020 10:33:31 +0000 (11:33 +0100)]
scepclient: Avoid name conflict with global PKCS#7 chunk

Use the same name as further down below in the file.

Fixes: 04ff78aa33b1 ("scepclient: Store received RA certificates, using CA cert name as base.")

7 months agostarter: Avoid hiding global variable when checking PID file
Tobias Brunner [Tue, 28 Jan 2020 10:30:23 +0000 (11:30 +0100)]
starter: Avoid hiding global variable when checking PID file

7 months agocopyright: Make strings static const
Tobias Brunner [Tue, 28 Jan 2020 10:17:22 +0000 (11:17 +0100)]
copyright: Make strings static const

They are not used anywhere else.

7 months agoplugin-constructors: Remove unused import for `sys`
Tobias Brunner [Tue, 28 Jan 2020 10:18:28 +0000 (11:18 +0100)]
plugin-constructors: Remove unused import for `sys`

7 months agovici: Remove unused import in Python bindings
Tobias Brunner [Tue, 28 Jan 2020 10:20:48 +0000 (11:20 +0100)]
vici: Remove unused import in Python bindings

7 months agovici: Remove unnecessary `pass` statement
Tobias Brunner [Tue, 28 Jan 2020 10:12:45 +0000 (11:12 +0100)]
vici: Remove unnecessary `pass` statement

7 months agoarray: Avoid overflow in size calculation
Tobias Brunner [Tue, 28 Jan 2020 10:06:59 +0000 (11:06 +0100)]
array: Avoid overflow in size calculation

While it's unlikely that so many (large) items are allocated, this is
technically more correct.  The result previously could overflow an
unsigned int (the conversion to size_t happened afterwards).

7 months agoswanctl: Add missing header guards for load commands
Tobias Brunner [Tue, 28 Jan 2020 09:55:46 +0000 (10:55 +0100)]
swanctl: Add missing header guards for load commands

7 months agoswanctl: Add missing `extern` for `swanctl_dir` variable in header
Tobias Brunner [Tue, 28 Jan 2020 09:33:55 +0000 (10:33 +0100)]
swanctl: Add missing `extern` for `swanctl_dir` variable in header

This clearly never was correct, but didn't cause problems so far.
However, GCC 10 will default to `-fno-common` instead of
`-fcommon` (, so compilation there fails
with something like:

libtool: link: gcc ... -o .libs/swanctl ...
ld: commands/load_authorities.o:strongswan/src/swanctl/./swanctl.h:33:
  multiple definition of `swanctl_dir'; commands/load_all.o:strongswan/src/swanctl/./swanctl.h:33: first defined here

Fixes: 501bd53a6cce ("swanctl: Make credential directories relative to swanctl.conf")
Closes strongswan/strongswan#163.

7 months agolgtm: Add query to detect problematic uses of chunk_from_chars()
Tobias Brunner [Mon, 27 Jan 2020 14:16:51 +0000 (15:16 +0100)]
lgtm: Add query to detect problematic uses of chunk_from_chars()

GCC 9+ and clang 4+ (partially) optimize out usages of
chunk_from_chars() if the value is read outside of the block where the
macro is used.  For instance:

chunk_t chunk = chunk_empty;
if (...)
chunk = chunk_from_chars(0x01, 0x06);
/* do something with chunk */

The chunk_from_chars() macro expands to a chunk_t declaration, which is
technically only defined inside that block.

Still, with older GCC versions the fourth line was compiled to something
like this:

mov     WORD PTR [rsp+14], 1537 # 0x0106 in little-endian
lea     rdx, [rsp+14]
mov     ecx, 2

However, with GCC 9.1 and -O2 the first instruction might be omitted
(strangely the others usually were not, so the chunk pointed to whatever
was stored on the stack).  It's not easily reproducible, so there are
situations where the seemingly identical code is not optimized in this

This query should detect such problematic uses of the macro (definition
and usage in different blocks).

References #3249.

7 months agolgtm: Add config for a more complete build on
Tobias Brunner [Mon, 27 Jan 2020 14:03:58 +0000 (15:03 +0100)]
lgtm: Add config for a more complete build on

8 months agotravis: Build on ARM64, IBM Power and IBM Z architectures
Tobias Brunner [Wed, 15 Jan 2020 13:57:56 +0000 (14:57 +0100)]
travis: Build on ARM64, IBM Power and IBM Z architectures

IBM Z is big-endian, IBM Power runs in little-endian mode.

Botan requires a fix for issues with GCC and amalgamation enabled (target
pragma ‘*’ is invalid) on ARM64 and IBM Power, while wolfSSL can't be
compiled successfully on IBM Z without an additional patch.

libunwind is not available for x390x, but since we explicitly disable
such backtraces it's not necessary anyway.

8 months agosha3: Fix readLane() macro on big-endian platforms
Tobias Brunner [Thu, 16 Jan 2020 15:06:27 +0000 (16:06 +0100)]
sha3: Fix readLane() macro on big-endian platforms

8 months agoUse Botan 2.13.0 for tests
Tobias Brunner [Wed, 15 Jan 2020 09:23:35 +0000 (10:23 +0100)]
Use Botan 2.13.0 for tests

8 months agoscepclient: Add missing short options (-i, -T)
Tobias Brunner [Wed, 15 Jan 2020 11:00:28 +0000 (12:00 +0100)]
scepclient: Add missing short options (-i, -T)

8 months agoMerge branch 'vici-pytest'
Tobias Brunner [Tue, 14 Jan 2020 15:53:53 +0000 (16:53 +0100)]
Merge branch 'vici-pytest'

Adds tox.ini to test with tox (which is now used on Travis) and includes
the tests in the source distribution.

8 months agovici: Move Python test dir and include it in sdist
Tobias Brunner [Tue, 14 Jan 2020 13:58:01 +0000 (14:58 +0100)]
vici: Move Python test dir and include it in sdist

This is the recommended location and import config as it allows running the
tests against installed versions of the package.  And while the test file
itself is automatically included in the source distribution this way, the file is not, so we still have to update

8 months agotravis: Run python tests with tox
Tobias Brunner [Tue, 14 Jan 2020 10:02:07 +0000 (11:02 +0100)]
travis: Run python tests with tox

8 months agovici: Run Python tests via tox if available
Tobias Brunner [Tue, 14 Jan 2020 10:00:56 +0000 (11:00 +0100)]
vici: Run Python tests via tox if available

Since we use the serial test harness we can't use AM_TESTS_ENVIRONMENT.
The script is necessary for out-of-tree builds.

8 months agovici: Fix several PEP8 issues
Tobias Brunner [Tue, 14 Jan 2020 10:03:07 +0000 (11:03 +0100)]
vici: Fix several PEP8 issues

8 months agovici: Add tox.ini to run tests with tox
Tobias Brunner [Tue, 14 Jan 2020 09:49:47 +0000 (10:49 +0100)]
vici: Add tox.ini to run tests with tox

Some of the interpreters might not be available on the host system, use
--skip-missing-interpreters to not fail in that case.

8 months agovici: List newer Python versions in
Tobias Brunner [Tue, 14 Jan 2020 09:48:53 +0000 (10:48 +0100)]
vici: List newer Python versions in

8 months agotravis: Bump wolfSSL to 4.3.0
Tobias Brunner [Mon, 13 Jan 2020 13:39:21 +0000 (14:39 +0100)]
travis: Bump wolfSSL to 4.3.0

8 months agowolfssl: Undef RSA_PSS_SALT_LEN_DEFAULT as wolfSSL 4.3.0 defines it as enum
Tobias Brunner [Mon, 13 Jan 2020 14:48:47 +0000 (15:48 +0100)]
wolfssl: Undef RSA_PSS_SALT_LEN_DEFAULT as wolfSSL 4.3.0 defines it as enum

9 months agoRevert "travis: Add a workaround for a bug regarding libtool installed via Homebrew"
Tobias Brunner [Thu, 19 Dec 2019 10:41:59 +0000 (11:41 +0100)]
Revert "travis: Add a workaround for a bug regarding libtool installed via Homebrew"

This reverts commit 1806ba0890bc503df3dacf01992ec1bca2b0fbb0 as the
workaround is not required anymore and now actually fails because
pre-installed tools have a dependency on libtool.

9 months agoVersion bump to 5.8.2 5.8.2
Andreas Steffen [Tue, 17 Dec 2019 13:30:41 +0000 (14:30 +0100)]
Version bump to 5.8.2

9 months agoVersion bump to 5.8.2rc2 5.8.2rc2
Andreas Steffen [Mon, 16 Dec 2019 21:11:43 +0000 (22:11 +0100)]
Version bump to 5.8.2rc2

9 months agokernel-netlink: Use correct config option name for HW offloading check
Tobias Brunner [Fri, 13 Dec 2019 16:19:03 +0000 (17:19 +0100)]
kernel-netlink: Use correct config option name for HW offloading check

Fixes: a605452c038e ("kernel-netlink: Check for offloading support in constructor")

9 months agodrbg: Fix Doxygen group in headers
Tobias Brunner [Tue, 10 Dec 2019 16:12:32 +0000 (17:12 +0100)]
drbg: Fix Doxygen group in headers

9 months agoFixed some typos, courtesy of codespell
Tobias Brunner [Tue, 10 Dec 2019 16:06:53 +0000 (17:06 +0100)]
Fixed some typos, courtesy of codespell

9 months agoNEWS: Added some news for 5.8.2
Tobias Brunner [Tue, 10 Dec 2019 14:52:05 +0000 (15:52 +0100)]
NEWS: Added some news for 5.8.2

9 months agoopenssl: Make some additional arguments const
Thomas Egerer [Fri, 29 Nov 2019 18:05:37 +0000 (19:05 +0100)]
openssl: Make some additional arguments const

Related to openssl 1.1.x changes.

Signed-off-by: Thomas Egerer <>
9 months agolibtpmtss: Convert RSA exponent to big-endian when provided by a TPM 2.0
Tobias Brunner [Tue, 10 Dec 2019 09:12:48 +0000 (10:12 +0100)]
libtpmtss: Convert RSA exponent to big-endian when provided by a TPM 2.0

While the TPM expects and returns the data in big-endian, the SAPI
implementation converts it to native-endianness.  As stated in the
SAPI specification (section 3.2):

  8. All SAPI data SHALL be in native-endian format.  This means that
     the SAPI implementation will do any endian conversion required for
     both inputs and outputs.

So to use the exponent in a chunk we have to convert it to big-endian again.

Fixes: 7533cedb9a8a ("libtpmtss: Read RSA public key exponent instead of assuming its value")

9 months agoikev2: Destroy IKE_SA if INVALID_SYNTAX notify is received in response
Tobias Brunner [Mon, 25 Nov 2019 14:55:54 +0000 (15:55 +0100)]
ikev2: Destroy IKE_SA if INVALID_SYNTAX notify is received in response

RFC 7296, section 2.21.3:

   If a peer parsing a request notices that it is badly formatted (after
   it has passed the message authentication code checks and window
   checks) and it returns an INVALID_SYNTAX notification, then this
   error notification is considered fatal in both peers, meaning that
   the IKE SA is deleted without needing an explicit Delete payload.

9 months agoikev2: Destroy IKE_SA when receiving invalid authenticated requests
Tobias Brunner [Mon, 25 Nov 2019 13:43:36 +0000 (14:43 +0100)]
ikev2: Destroy IKE_SA when receiving invalid authenticated requests

RFC 7296, section 2.21.3:

   If a peer parsing a request notices that it is badly formatted (after
   it has passed the message authentication code checks and window
   checks) and it returns an INVALID_SYNTAX notification, then this
   error notification is considered fatal in both peers, meaning that
   the IKE SA is deleted without needing an explicit Delete payload.

9 months agoikev2: Send INVALID_MAJOR_VERSION notify using the same exchange type and MID
Tobias Brunner [Mon, 25 Nov 2019 13:00:40 +0000 (14:00 +0100)]
ikev2: Send INVALID_MAJOR_VERSION notify using the same exchange type and MID

This is per RFC 7296, section 1.5.

9 months agosshkey: Rename variables that conflict with function argument
Tobias Brunner [Mon, 9 Dec 2019 10:34:30 +0000 (11:34 +0100)]
sshkey: Rename variables that conflict with function argument

9 months agochunk: Rename hash key variable to avoid conflicts with function arguments
Tobias Brunner [Mon, 9 Dec 2019 10:22:14 +0000 (11:22 +0100)]
chunk: Rename hash key variable to avoid conflicts with function arguments

9 months agoattr: Remove unused/undeclared argument in provider constructor
Tobias Brunner [Mon, 9 Dec 2019 10:05:25 +0000 (11:05 +0100)]
attr: Remove unused/undeclared argument in provider constructor

9 months agoVersion bump to 5.8.2rc1 5.8.2rc1
Andreas Steffen [Sat, 7 Dec 2019 22:06:22 +0000 (23:06 +0100)]
Version bump to 5.8.2rc1

9 months agoconfigure: Drop unnecessary gperf version check
Tobias Brunner [Thu, 5 Dec 2019 14:50:12 +0000 (15:50 +0100)]
configure: Drop unnecessary gperf version check

While the check probably made sense when strongSwan 4.x was started, gperf
version 3.0.1 was released in 2003, so it's very unlikely that version 2.x
is still around anywhere.

9 months agoconfigure: Abort if gperf is not found but generated files don't exist
Tobias Brunner [Thu, 5 Dec 2019 14:46:15 +0000 (15:46 +0100)]
configure: Abort if gperf is not found but generated files don't exist

When building from a tarball gperf is not required as the generated
files already exist, however, when building from the repository that's
not the case, so warn the user if gperf is not found.

9 months agoconfigure: Declare GPERF and PERL as variables
Tobias Brunner [Thu, 5 Dec 2019 14:45:01 +0000 (15:45 +0100)]
configure: Declare GPERF and PERL as variables

These are documented in --help and will be cached.

9 months agokernel-netlink: Properly compare routes for policies without gateway/netxhop
Tobias Brunner [Thu, 5 Dec 2019 15:15:33 +0000 (16:15 +0100)]
kernel-netlink: Properly compare routes for policies without gateway/netxhop

This happened when installing a duplicate bypass policy for a locally
connected subnet.  The destructor and the kernel-net part already
handle this correctly.

9 months agoopenssl: Ensure underlying hash algorithm is available during HMAC init
Tobias Brunner [Tue, 3 Dec 2019 15:11:39 +0000 (16:11 +0100)]
openssl: Ensure underlying hash algorithm is available during HMAC init

Without this we only would learn that the algorithm isn't actually
available (e.g. due to FIPS mode) when set_key() is called later, so there
isn't any automatic fallback to other implementations.

Fixes #3284.

9 months agoMerge branch 'ca-identity-constraint'
Tobias Brunner [Fri, 6 Dec 2019 09:10:39 +0000 (10:10 +0100)]
Merge branch 'ca-identity-constraint'

This adds a new constraint for vici/swanctl.conf that enforces that the
certificate chain of the remote peer contains a CA certificate with a
specific identity.

This is similar to the existing CA constraints, but doesn't require that
the CA certificate is locally installed, for instance, intermediate CA
certificates received by the peers.

Wildcard identity matching (e.g. "..., OU=Research, CN=*") could also be
used for the latter, but requires trust in the intermediate CA to only
issue certificates with legitimate subject DNs (e.g. the "Sales" CA must
not issue certificates with "OU=Research").  With the new constraint
that's not necessary as long as a path length constraint prevents
intermediate CAs from issuing further intermediate CAs.

9 months agovici: Log certificate constraints for loaded configs
Tobias Brunner [Fri, 29 Nov 2019 11:16:43 +0000 (12:16 +0100)]
vici: Log certificate constraints for loaded configs

9 months agotesting: Use identity based CA restrictions in rw-hash-and-url-multi-level
Martin Willi [Thu, 28 Nov 2019 09:25:20 +0000 (10:25 +0100)]
testing: Use identity based CA restrictions in rw-hash-and-url-multi-level

This is a prominent example where the identity based CA constraint is
benefical. While the description of the test claims a strict binding
of the client to the intermediate CA, this is not fully true if CA operators
are not fully trusted: A rogue OU=Sales intermediate may issue certificates
containing a OU=Research.

By binding the connection to the CA, we can avoid this, and using the identity
based constraint still allows moon to receive the intermediate over IKE
or hash-and-url.

9 months agoswanctl: Include ca_id property in list-conns command
Martin Willi [Thu, 28 Nov 2019 16:04:16 +0000 (17:04 +0100)]
swanctl: Include ca_id property in list-conns command

9 months agoswanctl: Document the remote ca_id option for identity based CA constraints
Martin Willi [Thu, 28 Nov 2019 09:20:50 +0000 (10:20 +0100)]
swanctl: Document the remote ca_id option for identity based CA constraints

9 months agovici: Introduce a ca_id option identity based CA certificate constraints
Martin Willi [Thu, 28 Nov 2019 09:09:30 +0000 (10:09 +0100)]
vici: Introduce a ca_id option identity based CA certificate constraints

9 months agoauth-cfg: Add support for identity based CA authentication constraints
Martin Willi [Thu, 28 Nov 2019 07:14:59 +0000 (08:14 +0100)]
auth-cfg: Add support for identity based CA authentication constraints

Enforcing CA based constraints previously required the CA certificate file
to be locally installed. This is problematic from a maintencance perspective
when having many intermediate CAs, and is actually redundant if the client
sends its intermediate cert in the request.

The alternative was to use Distinguished Name matching in the subject
identity to indirectly check for the issuing CA by some RDN field, such as OU.
However, this requires trust in the intermediate CA to issue only certificates
with legitime subject identities.

This new approach checks for an intermediate CA by comparing the issuing
identity. This does not require trust in the intermediate, as long as
a path len constraint prevents that intermediate to issue further
intermediate certificates.

9 months agofarp: Ignore SAs with remote traffic selector
Tobias Brunner [Tue, 26 Nov 2019 16:43:57 +0000 (17:43 +0100)]
farp: Ignore SAs with remote traffic selector

This is mostly to avoid hijacking the local LAN if the farp plugin is
inadvertently active on a roadwarrior.

Fixes #3116.

9 months agofarp: Only cache IPv4 traffic selectors
Tobias Brunner [Tue, 26 Nov 2019 16:55:47 +0000 (17:55 +0100)]
farp: Only cache IPv4 traffic selectors

Since ARP is IPv4 only there is no point caching IPv6 traffic

9 months agoMerge branch 'ocsp-nonce'
Tobias Brunner [Fri, 6 Dec 2019 08:53:26 +0000 (09:53 +0100)]
Merge branch 'ocsp-nonce'

This makes sure the nonce sent in an OCSP request is contained in the
response (it also fixes parsing the nonce, which didn't matter so far
as it was never used)

9 months agorevocation: Check that nonce in OCSP response matches
Tobias Brunner [Fri, 22 Nov 2019 14:09:55 +0000 (15:09 +0100)]
revocation: Check that nonce in OCSP response matches

9 months agox509: Correctly parse nonce in OCSP response
Tobias Brunner [Fri, 22 Nov 2019 15:36:20 +0000 (16:36 +0100)]
x509: Correctly parse nonce in OCSP response

Fixes: d7dc677ee572 ("x509: Correctly encode nonce in OCSP request")

9 months agox509: Add getter for nonce in OCSP request/response implementations
Tobias Brunner [Fri, 22 Nov 2019 14:04:01 +0000 (15:04 +0100)]
x509: Add getter for nonce in OCSP request/response implementations

9 months agocredentials: Add getter for nonce in OCSP request and response interface
Tobias Brunner [Fri, 22 Nov 2019 13:59:49 +0000 (14:59 +0100)]
credentials: Add getter for nonce in OCSP request and response interface

9 months agodrbg: Don't generate more than 2^16 bytes
Andreas Steffen [Thu, 28 Nov 2019 20:29:26 +0000 (21:29 +0100)]
drbg: Don't generate more than 2^16 bytes

9 months agoMerge branch 'aes-ecb'
Tobias Brunner [Thu, 28 Nov 2019 16:16:36 +0000 (17:16 +0100)]
Merge branch 'aes-ecb'

Adds support for AES in ECB mode (where supported by the underlying
library/API) and uses it for the CTR-DRBG implementation.

9 months agodrbg: Use AES_ECB encryption
Andreas Steffen [Thu, 21 Nov 2019 13:57:57 +0000 (14:57 +0100)]
drbg: Use AES_ECB encryption

9 months agogcrypt: Added AES_ECB support
Andreas Steffen [Sun, 24 Nov 2019 13:05:25 +0000 (14:05 +0100)]
gcrypt: Added AES_ECB support

9 months agoaf-alg: Added AES_ECB support
Andreas Steffen [Fri, 22 Nov 2019 14:28:37 +0000 (15:28 +0100)]
af-alg: Added AES_ECB support

9 months agoaes: Added AES_ECB support
Andreas Steffen [Thu, 21 Nov 2019 20:35:07 +0000 (21:35 +0100)]
aes: Added AES_ECB support

9 months agoopenssl: Added AES_ECB support
Andreas Steffen [Thu, 21 Nov 2019 14:27:59 +0000 (15:27 +0100)]
openssl: Added AES_ECB support

9 months agoaesni: Added AES_ECB support
Andreas Steffen [Thu, 21 Nov 2019 11:58:48 +0000 (12:58 +0100)]
aesni: Added AES_ECB support

9 months agovici: Update Python egg if strongSwan version changed
Tobias Brunner [Thu, 28 Nov 2019 15:37:34 +0000 (16:37 +0100)]
vici: Update Python egg if strongSwan version changed

Mainly useful when using the build-strongswan script of the testing

9 months agodrbg: The drbg instance owns the entropy rng
Andreas Steffen [Fri, 8 Nov 2019 12:16:12 +0000 (13:16 +0100)]
drbg: The drbg instance owns the entropy rng

10 months agoVersion bump to 5.8.2dr2 5.8.2dr2
Andreas Steffen [Tue, 26 Nov 2019 21:36:55 +0000 (22:36 +0100)]
Version bump to 5.8.2dr2

10 months agoMerge branch 'hash-url-multi-level'
Tobias Brunner [Tue, 26 Nov 2019 13:47:14 +0000 (14:47 +0100)]
Merge branch 'hash-url-multi-level'

Adds support to send intermediate CA certificates in hash-and-URL
encoding.  For that it moves the generation of URLs from the config
backends to the ike-cert-post task.

Fixes #3234.

10 months agotesting: Add scenario with hash-and-URL encoding for intermediate CA certificates
Tobias Brunner [Thu, 31 Oct 2019 14:18:17 +0000 (15:18 +0100)]
testing: Add scenario with hash-and-URL encoding for intermediate CA certificates

10 months agostroke: Remove obsolete certificate registration for hash-and-URL
Tobias Brunner [Thu, 31 Oct 2019 08:51:07 +0000 (09:51 +0100)]
stroke: Remove obsolete certificate registration for hash-and-URL

10 months agovici: Remove obsolete certificate registration for hash-and-URL
Tobias Brunner [Thu, 31 Oct 2019 08:49:21 +0000 (09:49 +0100)]
vici: Remove obsolete certificate registration for hash-and-URL

10 months agoike-cert-post: Encode intermediate CA certificates as hash-and-URL if possible
Tobias Brunner [Thu, 31 Oct 2019 08:51:42 +0000 (09:51 +0100)]
ike-cert-post: Encode intermediate CA certificates as hash-and-URL if possible

10 months agoike-cert-post: Generate URL for hash-and-URL here
Tobias Brunner [Thu, 31 Oct 2019 08:27:49 +0000 (09:27 +0100)]
ike-cert-post: Generate URL for hash-and-URL here

This avoids having to register certificates with authority/ca backends
beforehand, which is tricky for intermediate CA certificates loaded
themselves via authority/ca sections.  On the other hand, the form of
these URLs can't be determined by config backends anymore (not an issue
for the two current implementations, no idea if custom implementations
ever made use of that possibility).  If that became necessary, we could
perhaps pass the certificate to the CDP enumerator or add a new method
to the credential_set_t interface.

10 months agokernel-netlink: Check for offloading support in constructor
Thomas Egerer [Wed, 9 Oct 2019 15:16:29 +0000 (17:16 +0200)]
kernel-netlink: Check for offloading support in constructor

This avoids races that could potentially occur when doing the check during
SA installation.

Signed-off-by: Thomas Egerer <>
10 months agotesting: Import sys in Python updown script
Tobias Brunner [Thu, 21 Nov 2019 15:57:25 +0000 (16:57 +0100)]
testing: Import sys in Python updown script

10 months agoandroid: New version after fixing fetching via HTTP on Android 9
Tobias Brunner [Tue, 19 Nov 2019 13:43:39 +0000 (14:43 +0100)]
android: New version after fixing fetching via HTTP on Android 9

10 months agoandroid: Add networkSecurityConfig to fetch CLRs/OCSP via HTTP
Tobias Brunner [Tue, 19 Nov 2019 13:41:34 +0000 (14:41 +0100)]
android: Add networkSecurityConfig to fetch CLRs/OCSP via HTTP

Android 9 restricts this to only HTTPS by default.

Fixes #3273.

10 months agoandroid: Update Gradle plugin
Tobias Brunner [Tue, 19 Nov 2019 13:24:08 +0000 (14:24 +0100)]
android: Update Gradle plugin

10 months agoFix for libstrongswan after adding DRBGs
Tobias Brunner [Tue, 19 Nov 2019 13:24:17 +0000 (14:24 +0100)]
Fix for libstrongswan after adding DRBGs

10 months agotesting: Accept LANG and LC_* env variables via SSH on guests
Tobias Brunner [Thu, 14 Nov 2019 15:10:17 +0000 (16:10 +0100)]
testing: Accept LANG and LC_* env variables via SSH on guests

The client config already includes SendEnv for them.  Without that these
variables currently default to POSIX.

10 months agoswanctl: Document wildcard matching for remote identities
Tobias Brunner [Tue, 12 Nov 2019 09:59:38 +0000 (10:59 +0100)]
swanctl: Document wildcard matching for remote identities

10 months agoconf: Replace deprecated OptionParser with ArgumentParser
Tobias Brunner [Tue, 12 Nov 2019 09:57:45 +0000 (10:57 +0100)]
conf: Replace deprecated OptionParser with ArgumentParser

10 months agotesting: Remove unused connection definition in ikev2/force-udp-encaps [Wed, 6 Nov 2019 03:04:00 +0000 (03:04 +0000)]
testing: Remove unused connection definition in ikev2/force-udp-encaps

10 months agotesting: Fix SHA description in ikev*/esp-alg-null scenarios [Wed, 6 Nov 2019 01:45:09 +0000 (01:45 +0000)]
testing: Fix SHA description in ikev*/esp-alg-null scenarios