Project

General

Profile

Version 5.9.0 » History » Version 3

Tobias Brunner, 24.07.2020 15:52
News for 5.9.0

1 2 Tobias Brunner
h1. Version 5.9.0
2 1 Tobias Brunner
3 3 Tobias Brunner
* We prefer AEAD algorithms for ESP and therefore put AES-GCM in a default AEAD proposal in front
4 3 Tobias Brunner
  of the previous default proposal.
5 3 Tobias Brunner
6 3 Tobias Brunner
* Changes related to the [[NetworkManager|NM frontend]] and backend (charon-nm):
7 3 Tobias Brunner
** Password entry for private keys in the frontend has been fixed, in the backend, cached credentials
8 3 Tobias Brunner
   are now also cleared when the connection is terminated (#3428).
9 3 Tobias Brunner
** The AppStream metadata installed by the frontend has been migrated from _appdata_ to
10 3 Tobias Brunner
   _metainfo_ (commit:73b60338dc).
11 3 Tobias Brunner
** The height of the frontend has been reduced by using tabs for options/proposals (#3448).
12 3 Tobias Brunner
** DPD and close action are now set to _restart_ in the backend (#3300).
13 3 Tobias Brunner
** The backend supports custom remote traffic selectors via @remote-ts@ option (separated by @;@).
14 3 Tobias Brunner
   There is currently no GUI support, so configuration has to be done manually via @nmcli@ or
15 3 Tobias Brunner
   config file.
16 3 Tobias Brunner
17 3 Tobias Brunner
* If a connection fails after getting redirected, we now restart connecting to the original host, not the
18 3 Tobias Brunner
  one redirected to.
19 3 Tobias Brunner
20 3 Tobias Brunner
* The [[pkcs11plugin|pkcs11 plugin]] falls back to hashing data for PKCS#1 v1.5 RSA signatures in software if the
21 3 Tobias Brunner
  smartcard/library doesn't support signature mechanisms with hashing (e.g. @CKM_SHA256_RSA_PKCS@).
22 3 Tobias Brunner
23 3 Tobias Brunner
* The owner/group of the log file opened by the file logger (e.g. via _charon.filelog_) is now set so the
24 3 Tobias Brunner
  daemon can reopen it if the config is reloaded and it doesn't run as root.
25 3 Tobias Brunner
26 3 Tobias Brunner
* The _wolfssl_ plugin (when used with wolfSSL 4.4.0+) supports x448 Diffie-Hellman and Ed448 keys.
27 3 Tobias Brunner
28 3 Tobias Brunner
* Support for high numbers of [[retransmission|retransmits]] has been fixed (commit:72b282cf20).
29 3 Tobias Brunner
30 3 Tobias Brunner
* For peers that don't send the @EAP_ONLY_AUTHENTICATION@ notify but still expect to use EAP-only
31 3 Tobias Brunner
  authentication, the _charon.force_eap_only_authentication_ option can be enabled to force this type
32 3 Tobias Brunner
  of authentication even on non-compliant peers.
33 3 Tobias Brunner
34 3 Tobias Brunner
* DH groups are properly handled during migration of CHILD_SA-creating tasks when reestablishing (may
35 3 Tobias Brunner
  have caused DH groups in the proposal sent during IKE_AUTH).
36 3 Tobias Brunner
37 3 Tobias Brunner
* The [[vici]] plugin stores all CA certificates in one location, which avoids issues with unloading _authority_
38 3 Tobias Brunner
  sections or clearing all credentials ("GH#172":https://github.com/strongswan/strongswan/pull/172).
39 3 Tobias Brunner
40 3 Tobias Brunner
* When unloading a [[vici]] connection with _start_action=start_, any related IKE_SAs without children are now
41 3 Tobias Brunner
  terminated (including those in CONNECTING state).
42 3 Tobias Brunner
43 3 Tobias Brunner
* The hashtable implementation has been changed so it maintains insertion order (the old implementation,
44 3 Tobias Brunner
  including the @get_match()@ method and a new feature to sort keys, has been migrated to the @hashlist_t@
45 3 Tobias Brunner
  class). This was mainly done so the [[vici]] plugin can store its connections in a hashtable, which makes
46 3 Tobias Brunner
  managing high numbers of connections faster.
47 3 Tobias Brunner
48 3 Tobias Brunner
* The default maximum size for [[vici]] messages (512 KiB) can now be changed via @VICI_MESSAGE_SIZE_MAX@
49 3 Tobias Brunner
  compile option.
50 3 Tobias Brunner
51 3 Tobias Brunner
* IPv6 virtual IPs are now always enumerated, ignoring the _charon.prefer_temporary_addrs_ setting, which
52 3 Tobias Brunner
  should fix route installation if the latter is enabled.
53 3 Tobias Brunner
54 3 Tobias Brunner
* The version as obtained from the Git repository (via @git describe@) on which a build is based can now be
55 3 Tobias Brunner
  used in executables (@--enable-git-version@). Tarballs include a text file with that information cached.
56 3 Tobias Brunner
57 3 Tobias Brunner
* Connectivity with the [[AndroidVPNClient|Android client]] got a lot more stable on Android 6+ where the system aggressively
58 3 Tobias Brunner
  suspends apps when the device is idle (Doze mode).  We now use a custom scheduler that uses Android's
59 3 Tobias Brunner
  AlarmManager, which allows waking up the app even if the system put it to sleep. It does require adding
60 3 Tobias Brunner
  the app to the system's battery optimization whitelist, which is requested from the user automatically if
61 3 Tobias Brunner
  necessary. With this, NAT keepalives and rekeyings are now scheduled accurately, with little changes to the
62 3 Tobias Brunner
  battery usage (#3364).
63 3 Tobias Brunner
  There are some related changes that could be useful outside of the Android client:
64 3 Tobias Brunner
** It's possible to use other clocks than @CLOCK_MONOTONIC@ (e.g. @CLOCK_BOOTTIME@) via @TIME_CLOCK_ID@
65 3 Tobias Brunner
   compile option if @clock_gettime()@ is available and @pthread_condattr_setclock()@ supports that
66 3 Tobias Brunner
   clock (Android's bionic C library e.g. only supports @CLOCK_MONOTONIC@ and @CLOCK_REALTIME@ while the
67 3 Tobias Brunner
   kernel would support @CLOCK_BOOTTIME@ via  @clock_gettime()@).
68 3 Tobias Brunner
** When using a clock that includes time spent suspended, the new _charon.keep_alive_dpd_margin_ option
69 3 Tobias Brunner
   may be used to trigger a DPD instead of a NAT keepalive if too much time has passed.
70 3 Tobias Brunner
** Another option (_charon.check_current_path_) allows forcing a DPD exchange to check if the current path
71 3 Tobias Brunner
   still works whenever changes to interfaces/addresses are detected.
72 3 Tobias Brunner
73 3 Tobias Brunner
* Test cases and functions can now be filtered when running the unit tests (see [[DeveloperDocumentation]]).