diff options
| author | Martin Willi <martin@revosec.ch> | 2011-12-07 17:41:16 +0100 |
|---|---|---|
| committer | Martin Willi <martin@revosec.ch> | 2012-03-20 17:31:14 +0100 |
| commit | 9bb4de1d83babe724d846ca5442cdc12da065f77 (patch) | |
| tree | 05148d44ed059c118122c0d4c9dbb4e4b1515434 /src/libcharon/encoding | |
| parent | fb8bc6a764473050cc742be91effac8c6d771c62 (diff) | |
| download | strongswan-9bb4de1d83babe724d846ca5442cdc12da065f77.tar.bz2 strongswan-9bb4de1d83babe724d846ca5442cdc12da065f77.tar.xz | |
En- and decode DH group attribute in quick mode SA payloads
Diffstat (limited to 'src/libcharon/encoding')
| -rwxr-xr-x | src/libcharon/encoding/payloads/proposal_substructure.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/libcharon/encoding/payloads/proposal_substructure.c b/src/libcharon/encoding/payloads/proposal_substructure.c index ca36206cb..d5778fab3 100755 --- a/src/libcharon/encoding/payloads/proposal_substructure.c +++ b/src/libcharon/encoding/payloads/proposal_substructure.c @@ -684,6 +684,10 @@ static void add_to_proposal_v1_esp(proposal_t *proposal, proposal->add_algorithm(proposal, INTEGRITY_ALGORITHM, get_alg_from_ikev1(INTEGRITY_ALGORITHM, value), 0); break; + case TATTR_PH2_GROUP: + proposal->add_algorithm(proposal, DIFFIE_HELLMAN_GROUP, + value, 0); + break; default: /* TODO-IKEv1: lifetimes other attributes */ break; @@ -1076,6 +1080,15 @@ static void set_from_proposal_v1_esp(private_proposal_substructure_t *this, } enumerator->destroy(enumerator); + enumerator = proposal->create_enumerator(proposal, DIFFIE_HELLMAN_GROUP); + if (enumerator->enumerate(enumerator, &alg, &key_size)) + { + transform->add_transform_attribute(transform, + transform_attribute_create_value(TRANSFORM_ATTRIBUTE_V1, + TATTR_PH2_GROUP, alg)); + } + enumerator->destroy(enumerator); + transform->add_transform_attribute(transform, transform_attribute_create_value(TRANSFORM_ATTRIBUTE_V1, TATTR_PH2_ENCAP_MODE, get_ikev1_mode(mode, udp))); |
