child-cfg: Strip DH groups from both compared proposals
authorTobias Brunner <tobias@strongswan.org>
Mon, 22 Jan 2018 13:33:40 +0000 (14:33 +0100)
committerTobias Brunner <tobias@strongswan.org>
Fri, 9 Feb 2018 09:18:59 +0000 (10:18 +0100)
commitd058fd3c32b78b3e5b3a885ed66273803c187565
tree8963ce7b6a5f6d7fc3c17ce110afd14066bc91a3
parent007a2701bbd7556ba9ca6294a80dcc5336da086e
child-cfg: Strip DH groups from both compared proposals

This fixes two issues, one is a bug if a DH group is configured for the
local ESP proposals and charon.prefer_configured_proposals is disabled.
This would cause the DH groups to get stripped not from the configured but
from the supplied proposal, which usually already has them stripped.  So
the proposals wouldn't match.  We'd have to always strip them from the local
proposal.  Since there are apparently implementations that, incorrectly, don't
remove the DH groups in the IKE_AUTH exchange (e.g. WatchGuard XTM25
appliances) we just strip them from both proposals.  It's a bit more lenient
that way and we don't have to complicate the code to only clone and strip the
local proposal, which would depend on a flag.

References #2503.
src/libcharon/config/child_cfg.c