connectivity. It will also trigger a MOBIKE update if NAT mappings were
removed during the downtime.
+charon.child_sa_pfs_info = yes
+ Whether to support negotiating KE methods during the IKE_AUTH exchange to
+ reveal config mismatches that affect the rekeying of the initial Child SA.
+
+ Whether to support negotiating KE methods during the IKE_AUTH exchange. The
+ selected KE methods are not used for the key derivation of the initial Child
+ SA. But the negotiation will reveal configuration mismatches that cause a
+ later rekeying to fail.
+
charon.cisco_flexvpn = no
Send the Cisco FlexVPN vendor ID payload (IKEv2 only).
*/
bool signature_authentication;
+ /**
+ * Whether to support KE negotiation during IKE_AUTH per draft-ietf-ipsecme-child-pfs-info
+ */
+ bool child_sa_pfs_info;
+
/**
* Whether to follow IKEv2 redirects as per RFC 5685
*/
message->add_notify(message, FALSE, INTERMEDIATE_EXCHANGE_SUPPORTED,
chunk_empty);
}
- if (initiator_or_extension(this, EXT_CHILD_SA_PFS_INFO))
+ if (this->child_sa_pfs_info &&
+ initiator_or_extension(this, EXT_CHILD_SA_PFS_INFO))
{
message->add_notify(message, FALSE, CHILD_SA_PFS_INFO_SUPPORTED,
chunk_empty);
}
break;
case CHILD_SA_PFS_INFO_SUPPORTED:
- if (!this->old_sa)
+ if (!this->old_sa && this->child_sa_pfs_info)
{
this->ike_sa->enable_extension(this->ike_sa,
EXT_CHILD_SA_PFS_INFO);
.old_sa = old_sa,
.signature_authentication = lib->settings->get_bool(lib->settings,
"%s.signature_authentication", TRUE, lib->ns),
+ .child_sa_pfs_info = lib->settings->get_bool(lib->settings,
+ "%s.child_sa_pfs_info", TRUE, lib->ns),
.follow_redirects = lib->settings->get_bool(lib->settings,
"%s.follow_redirects", TRUE, lib->ns),
);