-
A long-standing deadlock in the vici plugin has been fixed that could get triggered when multiple connections were initiated/terminated concurrently and control-log events were raised by the
watcher_tcomponent (#566). -
To potentially improve the performance and reduce the chances of a similar deadlock, the logging calls in the
watcher_tcomponent have been reduced and moved out of its internal mutex (53208b0) and a change that caused the component to busy wait in some situations has also been reverted (30803f9). Also related is a change that avoids verbose log calls duringinitiate/terminate()(d96d15b, also see the developer notes below). -
In compliance with RFC 5280, CRLs now have to be signed by a certificate that either encodes the
cRLSignkeyUsage bit (even if it is a CA certificate), or is a CA certificate without a keyUsage extension. strongSwan encodes a keyUsage extension withcRLSignbit set in all CA certificates since 13 years. And before that it didn't encode the extension, so these certificates would also be accepted as CRL issuer in case they are still valid (7dc82de). -
Support for optional CA labels in EST server URIs (e.g.
https://www.example.org/.well-known/est/arbitraryLabel1/<operation>) was added to thepki --estandpki --estcacommands (#1614). -
The pkcs7 and openssl plugins now support CMS-style signatures in PKCS#7 containers, which allows verifying RSA-PSS and ECDSA signatures (#1615).
-
Fixed a regression in the server implementation of EAP-TLS when using TLS 1.2 or earlier that was introduced with 5.9.10 (#1613, 3d0d3f5).
-
The EAP-TLS client does now enforce that the TLS handshake is complete when using TLS 1.2 or earlier. It was possible to shortcut it by sending an early EAP-Success message. Note that this isn't a security issue as the server is authenticated at that point (db87087).
-
On Linux, the kernel-libipsec plugin can now optionally handle ESP packets without UDP encapsulation (uses RAW sockets, disabled by default, e3cb756). The plugin and libipsec also gained support trap policies (23d20bb).
-
The dhcp plugin uses an alternative method to determine the source address when sending unicast DHCP requests, which is not affected by interface filtering that might be employed for the IKE sockets (#1573).
-
The selection of certificates and trust chains as initiator has been improved if the local trust chain is incomplete (i.e. the root CA certificate for the local certificate is not loaded) while a certificate request for a known but unrelated CA is received, which caused any local intermediate CA certificates not to get sent (efdcbd1).
-
ECDSA and EdDSA public keys are supported by the ipseckey plugin when parsing RFC 4025
IPSECKEYresource records (7be55ad). -
The kernel-wfp plugin installs bypass policies also on the
FWPM_SUBLAYER_IPSEC_TUNNELsublayer, which is necessary to bypass tunnel mode SAs/policies (8c0a67f). -
The revocation plugin suppresses some log messages for cached OCSP responses (9e17a0e).
-
To further improve handling of cached OCSP responses, stale responses are now replaced in-place in the certificate cache (47e8b21).
-
Capabilities of a SCEP server are now correctly parsed by
pki --scepandpki --scepca(#1607). -
When renewing a certificate via SCEP, the
--dnargument is now optional and gets copied from the previous certificate. This is helpful in case the CA added RDNs the user might not be aware of to the issued certificate (5f8eb09, #1689). -
Fixed the fallback to the remote identity for mediated connections if no peer ID is configured (#1569, dd79253).
-
The log messages for the
terminate()andrekey()commands have been improved to clarify what's happening if combined filters are used (e.g. with both--ikeand--childpassed, only matching CHILD_SAs will be affected but previously a separate log message indicated that IKE_SAs would get targeted as well, 5e46e10). -
Fixed a crash when
charon-svcis terminated (8f5c0c9). -
If IKEv1 SAs are reset during a reauthentication because of a timeout, the initiator SPI changes. CHILD_SAs are now correctly migrated to the new SPI (#1663).
-
For developers:
- Support for timeouts in the Python vici bindings has been improved so a default timeout that's configured on the socket won't be reset by
vici.Transport.receive()and doesn't cause partial reads (#1562). - On Windows, the Python vici bindings now create a default TCP socket (00a75e3).
- The
controller_t::initiate()andcontroller_t::terminate()methods now take the maximum log level for messages that are passed to the callback (if any). Ifcontroller_cb_empty()is passed as callback,LEVEL_SILENTshould be used to avoid any useless calls to the callback. - Disabling logging at compile-time via reduced
DEBUG_LEVELshould again be possible (7fa85ff).
- Support for timeouts in the Python vici bindings has been improved so a default timeout that's configured on the socket won't be reset by
Refer to the 5.9.11 milestone for a list of all closed issues and pull requests.