diff options
author | Jan Hutter <jhutter@hsr.ch> | 2005-12-12 08:44:35 +0000 |
---|---|---|
committer | Jan Hutter <jhutter@hsr.ch> | 2005-12-12 08:44:35 +0000 |
commit | 7fa8decb78f5062a124fd0d37ba51360100f9bfa (patch) | |
tree | bfdf7f87e13aa75a944c888543453708e3065325 /Source/charon/config | |
parent | 6329a2575072d34eb546a62520a34129166def9c (diff) | |
download | strongswan-7fa8decb78f5062a124fd0d37ba51360100f9bfa.tar.bz2 strongswan-7fa8decb78f5062a124fd0d37ba51360100f9bfa.tar.xz |
- added todo's
Diffstat (limited to 'Source/charon/config')
-rw-r--r-- | Source/charon/config/init_config.h | 3 | ||||
-rw-r--r-- | Source/charon/config/sa_config.c | 30 | ||||
-rw-r--r-- | Source/charon/config/sa_config.h | 3 |
3 files changed, 36 insertions, 0 deletions
diff --git a/Source/charon/config/init_config.h b/Source/charon/config/init_config.h index 02a5f7f53..14ffeeee8 100644 --- a/Source/charon/config/init_config.h +++ b/Source/charon/config/init_config.h @@ -37,6 +37,9 @@ typedef struct ike_proposal_t ike_proposal_t; /** * @brief Represents a Proposal used in IKE_SA_INIT phase. * + * @todo Currently the amount of tranforms with same type in a IKE proposal is limited to 1. + * Support of more transforms with same type has to be added. + * * @ingroup config */ struct ike_proposal_t { diff --git a/Source/charon/config/sa_config.c b/Source/charon/config/sa_config.c index 9f409ec6d..1009c84e0 100644 --- a/Source/charon/config/sa_config.c +++ b/Source/charon/config/sa_config.c @@ -25,6 +25,7 @@ #include <utils/linked_list.h> #include <utils/allocator.h> #include <utils/identification.h> +#include <utils/logger.h> typedef struct private_sa_config_t private_sa_config_t; @@ -242,27 +243,56 @@ static child_proposal_t *select_proposal(private_sa_config_t *this, u_int8_t ah_ iterator_t *iterator; child_proposal_t *current_proposal, *selected_proposal; int i; +/* logger_t *logger = logger_create("SA Config",FULL,FALSE,stdout); */ + /* iterate over all stored proposals */ iterator = this->proposals->create_iterator(this->proposals, TRUE); while (iterator->has_next(iterator)) { iterator->current(iterator, (void**)¤t_proposal); + /* + logger->log(logger,FULL,"ESP integrity algorithm: %s, keylength: %d", mapping_find(integrity_algorithm_m,current_proposal->esp.integrity_algorithm),current_proposal->esp.integrity_algorithm_key_size); + logger->log(logger,FULL,"ESP diffie_hellman_group: %s", mapping_find(diffie_hellman_group_m,current_proposal->esp.diffie_hellman_group)); + logger->log(logger,FULL,"ESP extended_sequence_numbers: %s", mapping_find(extended_sequence_numbers_m,current_proposal->esp.extended_sequence_numbers)); + logger->log(logger,FULL,"ESP encryption_algorithm: %s keylength: %d", mapping_find(encryption_algorithm_m,current_proposal->esp.encryption_algorithm),current_proposal->esp.encryption_algorithm_key_size); +*/ + + /* copy and break if a proposal matches */ for (i = 0; i < count; i++) { +/* if (supplied[i].esp.is_set) + { + logger->log(logger,FULL,"ESP integrity algorithm: %s, keylength: %d", mapping_find(integrity_algorithm_m,supplied[i].esp.integrity_algorithm),supplied[i].esp.integrity_algorithm_key_size); + logger->log(logger,FULL,"ESP diffie_hellman_group: %s", mapping_find(diffie_hellman_group_m,supplied[i].esp.diffie_hellman_group)); + logger->log(logger,FULL,"ESP extended_sequence_numbers: %s", mapping_find(extended_sequence_numbers_m,supplied[i].esp.extended_sequence_numbers)); + logger->log(logger,FULL,"ESP encryption_algorithm: %s keylength: %d", mapping_find(encryption_algorithm_m,supplied[i].esp.encryption_algorithm),supplied[i].esp.encryption_algorithm_key_size); + } + + if (supplied[i].ah.is_set) + { + logger->log(logger,FULL,"AH integrity algorithm: %s, keylength: %d", mapping_find(integrity_algorithm_m,supplied[i].ah.integrity_algorithm),supplied[i].ah.integrity_algorithm_key_size); + logger->log(logger,FULL,"AH diffie_hellman_group: %s", mapping_find(diffie_hellman_group_m,supplied[i].ah.diffie_hellman_group)); + logger->log(logger,FULL,"AH extended_sequence_numbers: %s", mapping_find(extended_sequence_numbers_m,supplied[i].ah.extended_sequence_numbers)); + }*/ + + if (this->proposal_equals(this, &(supplied[i]), current_proposal)) { selected_proposal = allocator_alloc(sizeof(child_proposal_t)); *selected_proposal = *current_proposal; memcpy(selected_proposal->ah.spi, ah_spi, 4); memcpy(selected_proposal->ah.spi, esp_spi, 4); +/* logger->destroy(logger);*/ iterator->destroy(iterator); return selected_proposal; } } } iterator->destroy(iterator); + +/* logger->destroy(logger); */ return NULL; } diff --git a/Source/charon/config/sa_config.h b/Source/charon/config/sa_config.h index af9159076..a2cc3f897 100644 --- a/Source/charon/config/sa_config.h +++ b/Source/charon/config/sa_config.h @@ -42,6 +42,9 @@ typedef struct child_proposal_t child_proposal_t; * A proposal for a child sa contains data for * AH, ESP, or both. * + * @todo Currently the amount of tranforms with same type in a proposal is limited to 1. + * Support of more transforms with same type has to be added. + * * @ingroup config */ struct child_proposal_t { |