<feed xmlns='http://www.w3.org/2005/Atom'>
<title>packages/net/strongswan/files/usr, branch master</title>
<subtitle>Mirror of packages feed</subtitle>
<id>https://git.openwrt.org/feed/packages/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/feed/packages/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/'/>
<updated>2026-10-30T07:07:18Z</updated>
<entry>
<title>strongswan: use swanctl default for dpd_delay</title>
<updated>2026-10-30T07:07:18Z</updated>
<author>
<name>Florian Eckert</name>
</author>
<published>2026-10-20T12:50:37Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=f39ace1292cff962f0358eb1f9208111bba80853'/>
<id>urn:sha1:f39ace1292cff962f0358eb1f9208111bba80853</id>
<content type='text'>
Do not set a default value for dpd_delay in the swanctl config, so
strongSwan's own default (0s, DPD disabled) is used. The option is only
written to swanctl.conf if it is set. The legacy config keeps its
default of 30s.

migrate-ipsec-to-swanctl now migrates dpddelay together with dpdaction
to keep the previous behavior of migrated configs:

- The legacy config disabled DPD with dpddelay=0s if a child had
  dpdaction 'none', which was also the default. In this case dpd_delay
  is set to 0s.
- Otherwise dpddelay is renamed to dpd_delay. If it was not set, the old
  default of 30s is set explicitly.

This has to happen before dpdaction of the children is migrated, so it
is done in the new function migrate_dpd_delay_remote.

Signed-off-by: Florian Eckert &lt;fe@dev.tdt.de&gt;
</content>
</entry>
<entry>
<title>strongswan: use swanctl default for keyingtries</title>
<updated>2026-10-30T07:07:18Z</updated>
<author>
<name>Florian Eckert</name>
</author>
<published>2026-10-20T12:15:05Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=b3fcd878b72f317a1007713e18a99c2bf983bda1'/>
<id>urn:sha1:b3fcd878b72f317a1007713e18a99c2bf983bda1</id>
<content type='text'>
Do not set a default value for keyingtries in the swanctl config, so
strongSwan's own default (1) is used. The option is only written to
swanctl.conf if it is set. The legacy config keeps its default of 3.

In swanctl.conf, keyingtries is a plain number and 0 means unlimited.
The '%forever' value of the old ipsec.conf syntax is therefore no longer
translated for the swanctl config.

migrate-ipsec-to-swanctl converts keyingtries '%forever' to 0. If
keyingtries is not set, it sets the old default of 3 explicitly to keep
the previous behavior of migrated configs.

Signed-off-by: Florian Eckert &lt;fe@dev.tdt.de&gt;
</content>
</entry>
<entry>
<title>strongswan: move inactivity from connection to child</title>
<updated>2026-10-30T07:07:18Z</updated>
<author>
<name>Florian Eckert</name>
</author>
<published>2026-10-20T09:27:04Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=d140592512ae408dc7f35b3a413e1dfacb320c63'/>
<id>urn:sha1:d140592512ae408dc7f35b3a413e1dfacb320c63</id>
<content type='text'>
The 'swanctl.conf' only knows inactivity per child. The init script read it
on the connection and only passed it on via shell dynamic scoping.
Which is fragile and hides the real option level. Users could not set
it per child, and a connection-level value was silently shared by all
children

Read child.&lt;name&gt;.inactivity in config_child and drop it from
config_connection. In migrate-ipsec-to-swanctl, move inactivity from
the connection section to all of its child sections, so existing
configurations keep their setting.

Signed-off-by: Florian Eckert &lt;fe@dev.tdt.de&gt;
</content>
</entry>
<entry>
<title>strongswan: stage the migration in the LuCI session through ubus</title>
<updated>2026-10-06T07:53:01Z</updated>
<author>
<name>Hauke Mehrtens</name>
</author>
<published>2026-10-03T20:54:31Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=670a7b3b0ebee25b76d78d6387be1bcb7ae9e676'/>
<id>urn:sha1:670a7b3b0ebee25b76d78d6387be1bcb7ae9e676</id>
<content type='text'>
When LuCI passes a session id, migrate-ipsec-to-swanctl moves its uci
delta into /tmp/run/rpcd/uci-&lt;session id&gt;, rpcd's private save directory
of that session. rpcd stops naming this directory after the session id,
as the id is a bearer credential that leaked through directory listings,
so the migrated configuration would no longer show up as pending changes
in LuCI.

Stage the migration through rpcd's uci ubus API instead: revert the
session's ipsec changes, delete all sections and add the sections of the
migrated configuration. Then revert the changes of the uci command line
tool, which the old code moved away. This works with old and new rpcd
versions. If staging fails, both are reverted and the script exits with
an error.

Fixes: d5f33e6410cf ("strongswan: support optional UCI session staging in migrate-ipsec-to-swanctl")
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
</content>
</entry>
<entry>
<title>strongswan: rename child local/remote_subnet to local/remote_ts</title>
<updated>2026-09-30T09:58:51Z</updated>
<author>
<name>Florian Eckert</name>
</author>
<published>2026-09-28T11:54:27Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=b2f6de780d82d83f8302a50885d77f62bfa45428'/>
<id>urn:sha1:b2f6de780d82d83f8302a50885d77f62bfa45428</id>
<content type='text'>
The swanctl.conf child options are called local_ts and remote_ts
(traffic selectors), but the UCI config used local_subnet and
remote_subnet for them. Rename the UCI options in the swanctl init
script to match the swanctl.conf naming, so the config maps 1:1 to
what strongSwan actually expects.

Since this changes the UCI option names, existing configurations
would silently lose their traffic selectors after an upgrade. Add
migrate_child_subnet_to_ts() to the ipsec-to-swanctl migration
script. For each child section it moves the values of local_subnet
and remote_subnet into the local_ts and remote_ts lists and removes
the old options.

Signed-off-by: Florian Eckert &lt;fe@dev.tdt.de&gt;
</content>
</entry>
<entry>
<title>strongswan: move local and remote into own uci sections</title>
<updated>2026-09-30T09:58:51Z</updated>
<author>
<name>Florian Eckert</name>
</author>
<published>2026-09-21T14:57:22Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=e5e31986517861006cb8bbf0d2a307d296ac877b'/>
<id>urn:sha1:e5e31986517861006cb8bbf0d2a307d296ac877b</id>
<content type='text'>
The local and remote authentication configuration was stored as flat
options on the connection section. This cannot represent IKEv2 multiple
authentication rounds, where more than one local/remote pair is needed.

Move the options into dedicated 'local' and 'remote' uci sections which
are referenced from the connection via the 'list local' and 'list
remote' options. Multiple sections per connection are now possible and
each pair is emitted as one authentication round.

The generated swanctl.conf names the rounds positionally: the first
local/remote section is emitted as 'local'/'remote', the following ones
as 'local2'/'remote2' and so on.

The 'authentication_method' option moves to the new sections as 'auth'.
The local side of an EAP connection still defaults to pubkey.

The migration script converts an existing connection into one local and
one remote section:

- 'local_identifier'  -&gt; local 'id'
- 'local_cert'        -&gt; local 'certs'
- 'local_key'         -&gt; local 'key'
- 'remote_identifier' -&gt; remote 'id'
- 'remote_ca_certs'   -&gt; remote 'cacerts' (list)
- 'eap_id'            -&gt; remote 'eap_id'

Signed-off-by: Florian Eckert &lt;fe@dev.tdt.de&gt;
</content>
</entry>
<entry>
<title>strongswan: use global secret/authority uci sections</title>
<updated>2026-09-30T09:58:51Z</updated>
<author>
<name>Florian Eckert</name>
</author>
<published>2026-09-21T13:20:50Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=ac80ae3fe97c629261365ad5d8da27e6f9f18c43'/>
<id>urn:sha1:ac80ae3fe97c629261365ad5d8da27e6f9f18c43</id>
<content type='text'>
Remove the per-connection 'authorities' and 'secrets' blocks generated
inline in config_connection. Pre-shared keys and CA certificates are
now provided via the global 'secret' and 'authority' uci sections, which
prepare_env renders into their own swanctl.conf entries.

The migrate script converts the old per-connection settings into these
new global sections:

- psk connections: 'pre_shared_key' is moved into a 'secret' section
  with type='ike', keeping the local/remote identifiers as an 'id' list
- pubkey connections: 'ca_cert' is moved into an 'authority' section
  with the matching 'cacert' option

Both options are removed from the connection section afterwards.

Signed-off-by: Florian Eckert &lt;fe@dev.tdt.de&gt;
</content>
</entry>
<entry>
<title>strongswan: replace mschapv2_secrets with generic secret type</title>
<updated>2026-09-30T09:58:51Z</updated>
<author>
<name>Florian Eckert</name>
</author>
<published>2026-09-21T12:35:07Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=7561ce78193b2a77a072bf345f6d61c9a3eaf1f5'/>
<id>urn:sha1:7561ce78193b2a77a072bf345f6d61c9a3eaf1f5</id>
<content type='text'>
Add a generic uci 'secret' section type to swanctl handling, replacing
the dedicated 'mschapv2_secrets' section in prepare_env. The secret kind
is selected via a new 'type' uci option and maps to the matching swanctl
secrets subsection (the section prefix equals the type value):

- eap, xauth, ntlm, ike, ppk: &lt;type&gt;-&lt;name&gt; { id ...; secret }
- private, rsa, ecdsa, pkcs8, pkcs12: &lt;type&gt;-&lt;name&gt; { file ...; secret }
- token: token-&lt;name&gt; { handle, slot, module, pin }

The 'id' option is a uci list element for the eap/xauth/ntlm/ike/ppk
types and emits one 'id' line per entry, matching swanctl's support for
multiple identities per secret.

The legacy path stays unchanged and keeps generating EAP secrets from
the 'mschapv2_secrets' section via legacy_config_mschapv2_secret.

The migrate script now converts 'mschapv2_secrets' sections into
generic 'secret' sections setting type='eap' and turning 'id' into a
list element.

Signed-off-by: Florian Eckert &lt;fe@dev.tdt.de&gt;
</content>
</entry>
<entry>
<title>strongswan: rename uci remote section type to connection</title>
<updated>2026-09-30T09:58:51Z</updated>
<author>
<name>Florian Eckert</name>
</author>
<published>2026-09-18T14:16:35Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=fe46e1435bbb35f2781c15f3af1e68f866082855'/>
<id>urn:sha1:fe46e1435bbb35f2781c15f3af1e68f866082855</id>
<content type='text'>
The 'remote' section type in '/etc/config/ipsec' is a misnomer, since
it defines the whole IPsec connection (IKE peer and children), not just
the remote end. Rename it to 'connection' to align with the swanctl
'connections' terminology.

Rename config_remote() to config_connection() and iterate the
'connection' type in swanctl.init.

Add a migrate_remote_to_connection migration step that renames existing
'remote' sections to 'connection'.

Signed-off-by: Florian Eckert &lt;fe@dev.tdt.de
</content>
</entry>
<entry>
<title>strongswan: support optional UCI session staging in migrate-ipsec-to-swanctl</title>
<updated>2026-09-30T09:58:51Z</updated>
<author>
<name>Florian Eckert</name>
</author>
<published>2026-09-25T14:06:48Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=d5f33e6410cfd9b30d0b25702663e7b67695925d'/>
<id>urn:sha1:d5f33e6410cfd9b30d0b25702663e7b67695925d</id>
<content type='text'>
Let the caller pass an optional session ID as the first argument to
main(). If one is given, the migration is performed inside a LuCI
transaction session: the resulting /tmp/.uci/ipsec delta is moved to
/tmp/run/rpcd/uci-${session} at the end instead of being applied to the
running config directly. This allows LuCI to preview and apply the
ipsec-to-swanctl migration through its normal session workflow, rather
than forcing an immediate, uncoordinated commit of /etc/config/ipsec.

Drop the 'uci commit ipsec' calls scattered through the individual
migration functions, since committing is now the caller's
responsibility. Also add -q to the uci calls that were missing it, so
errors are suppressed consistently.

Signed-off-by: Florian Eckert &lt;fe@dev.tdt.de&gt;
</content>
</entry>
</feed>
