aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Egerer <thomas.egerer@secunet.com>2016-07-04 11:10:53 +0200
committerTobias Brunner <tobias@strongswan.org>2016-08-25 13:34:36 +0200
commit8456d6f5a8e94948075ad69852ec28d8f9774a49 (patch)
tree2adb2edeeaa6b75a406c13816e095e71b6e6e786
parentd1259418020bd452053ed7555f49018482cadf60 (diff)
downloadstrongswan-8456d6f5a8e9.tar.bz2
strongswan-8456d6f5a8e9.tar.xz
ikev1: Don't require AH mapping for integrity algorithm when generating proposal
Signed-off-by: Thomas Egerer <thomas.egerer@secunet.com>
-rw-r--r--src/libcharon/encoding/payloads/proposal_substructure.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/libcharon/encoding/payloads/proposal_substructure.c b/src/libcharon/encoding/payloads/proposal_substructure.c
index 1a435a823..55641e145 100644
--- a/src/libcharon/encoding/payloads/proposal_substructure.c
+++ b/src/libcharon/encoding/payloads/proposal_substructure.c
@@ -1360,18 +1360,21 @@ static void set_from_proposal_v1(private_proposal_substructure_t *this,
enumerator = proposal->create_enumerator(proposal, INTEGRITY_ALGORITHM);
if (enumerator->enumerate(enumerator, &alg, &key_size))
{
- transid = get_ikev1_transid_from_alg(INTEGRITY_ALGORITHM, alg);
alg = get_ikev1_auth_from_alg(alg);
- if (transid && alg)
+ if (alg)
{
- if (!transform)
+ transid = get_ikev1_transid_from_alg(INTEGRITY_ALGORITHM, alg);
+ if (!transform && transid)
{
transform = transform_substructure_create_type(
PLV1_TRANSFORM_SUBSTRUCTURE, number, transid);
}
- transform->add_transform_attribute(transform,
- transform_attribute_create_value(PLV1_TRANSFORM_ATTRIBUTE,
- TATTR_PH2_AUTH_ALGORITHM, alg));
+ if (transform)
+ {
+ transform->add_transform_attribute(transform,
+ transform_attribute_create_value(PLV1_TRANSFORM_ATTRIBUTE,
+ TATTR_PH2_AUTH_ALGORITHM, alg));
+ }
}
}
enumerator->destroy(enumerator);