From b737e9d9e8e44b360509cfab36d22170f54af334 Mon Sep 17 00:00:00 2001 From: Jan Hutter Date: Thu, 1 Dec 2005 08:48:57 +0000 Subject: implemented and tested functionality to create sa_payload from ike_proposal_t's and also generate ike_proposal_t's from sa_payload --- .../encoding/payloads/transform_substructure.c | 30 +++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'Source/charon/encoding/payloads/transform_substructure.c') diff --git a/Source/charon/encoding/payloads/transform_substructure.c b/Source/charon/encoding/payloads/transform_substructure.c index 3c91b257c..99af36c8d 100644 --- a/Source/charon/encoding/payloads/transform_substructure.c +++ b/Source/charon/encoding/payloads/transform_substructure.c @@ -448,7 +448,7 @@ static void destroy(private_transform_substructure_t *this) } /* - * Described in header + * Described in header. */ transform_substructure_t *transform_substructure_create() { @@ -488,3 +488,31 @@ transform_substructure_t *transform_substructure_create() return (&(this->public)); } + +/* + * Described in header + */ +transform_substructure_t *transform_substructure_create_type(transform_type_t transform_type, u_int16_t transform_id, u_int16_t key_length) +{ + transform_substructure_t *transform = transform_substructure_create(); + + transform->set_transform_type(transform,transform_type); + transform->set_transform_id(transform,transform_id); + + switch (transform_type) + { + case ENCRYPTION_ALGORITHM: + case PSEUDO_RANDOM_FUNCTION: + case INTEGRITY_ALGORITHM: + { + transform_attribute_t *attribute = transform_attribute_create_key_length(key_length); + transform->add_transform_attribute(transform,attribute); + break; + } + default: + { + /* no keylength attribute is created */ + } + } + return transform; +} -- cgit v1.2.3