- refactored ike proposal

- uses now proposal_t, wich is also used by child proposals
- ike key derivation refactored
- crypter_t api has get_key_size now
- some other improvements here and there
This commit is contained in:
Martin Willi
2006-02-14 14:52:00 +00:00
parent 409d010131
commit ce461bbd13
43 changed files with 967 additions and 1278 deletions
+2 -2
View File
@@ -116,8 +116,8 @@ TEST_OBJS+= $(BUILD_DIR)sa_config_test.o
$(BUILD_DIR)sa_config_test.o : $(TESTCASES_DIR)sa_config_test.c $(TESTCASES_DIR)sa_config_test.h
$(CC) $(CFLAGS) -c -o $@ $<
TEST_OBJS+= $(BUILD_DIR)child_proposal_test.o
$(BUILD_DIR)child_proposal_test.o : $(TESTCASES_DIR)child_proposal_test.c $(TESTCASES_DIR)child_proposal_test.h
TEST_OBJS+= $(BUILD_DIR)proposal_test.o
$(BUILD_DIR)proposal_test.o : $(TESTCASES_DIR)proposal_test.c $(TESTCASES_DIR)proposal_test.h
$(CC) $(CFLAGS) -c -o $@ $<
TEST_OBJS+= $(BUILD_DIR)rsa_test.o
+52 -56
View File
@@ -422,11 +422,9 @@ void test_generator_with_sa_payload(protected_tester_t *tester)
generator_t *generator;
transform_attribute_t *attribute1, *attribute2, *attribute3;
transform_substructure_t *transform1, *transform2;
proposal_substructure_t *proposal1, *proposal2;
ike_proposal_t *ike_proposals;
proposal_substructure_t *proposal_str1, *proposal_str2;
linked_list_t *list;
child_proposal_t *child_proposal1, *child_proposal2;
size_t ike_proposal_count;
proposal_t *proposal1, *proposal2;
sa_payload_t *sa_payload;
ike_header_t *ike_header;
@@ -488,30 +486,30 @@ void test_generator_with_sa_payload(protected_tester_t *tester)
logger->log(logger,CONTROL,"transforms created");
/* create proposal 1 */
proposal1 = proposal_substructure_create();
proposal_str1 = proposal_substructure_create();
tester->assert_true(tester,(proposal1 != NULL), "proposal create check");
stringval = "ABCDEFGH";
data.ptr = (void *) stringval;
data.len = 8;
proposal1->add_transform_substructure(proposal1,transform1);
proposal1->add_transform_substructure(proposal1,transform2);
proposal1->set_spi(proposal1,data);
proposal1->set_proposal_number(proposal1,7);
proposal1->set_protocol_id(proposal1,4);
proposal_str1->add_transform_substructure(proposal_str1,transform1);
proposal_str1->add_transform_substructure(proposal_str1,transform2);
proposal_str1->set_spi(proposal_str1,data);
proposal_str1->set_proposal_number(proposal_str1,7);
proposal_str1->set_protocol_id(proposal_str1,4);
/* create proposal 2 */
proposal2 = proposal_substructure_create();
tester->assert_true(tester,(proposal2 != NULL), "proposal create check");
proposal2->set_proposal_number(proposal2,7);
proposal2->set_protocol_id(proposal2,5);
proposal_str2 = proposal_substructure_create();
tester->assert_true(tester,(proposal_str2 != NULL), "proposal create check");
proposal_str2->set_proposal_number(proposal_str2,7);
proposal_str2->set_protocol_id(proposal_str2,5);
/* create sa_payload */
sa_payload = sa_payload_create();
sa_payload->add_proposal_substructure(sa_payload,proposal1);
sa_payload->add_proposal_substructure(sa_payload,proposal2);
sa_payload->add_proposal_substructure(sa_payload,proposal_str1);
sa_payload->add_proposal_substructure(sa_payload,proposal_str2);
ike_header = ike_header_create();
ike_header->set_initiator_spi(ike_header,0x22000054231234LL);
@@ -581,26 +579,22 @@ void test_generator_with_sa_payload(protected_tester_t *tester)
tester->assert_true(tester,(generator != NULL), "generator create check");
ike_proposal_count = 2;
ike_proposals = allocator_alloc(ike_proposal_count * (sizeof(ike_proposal_t)));
proposal1 = proposal_create(1);
proposal1->add_algorithm(proposal1, IKE, ENCRYPTION_ALGORITHM, 1, 20);
proposal1->add_algorithm(proposal1, IKE, PSEUDO_RANDOM_FUNCTION, 2, 22);
proposal1->add_algorithm(proposal1, IKE, INTEGRITY_ALGORITHM, 3, 24);
proposal1->add_algorithm(proposal1, IKE, DIFFIE_HELLMAN_GROUP, 4, 0);
ike_proposals[0].encryption_algorithm = 1;
ike_proposals[0].encryption_algorithm_key_length = 20;
ike_proposals[0].pseudo_random_function = 2;
ike_proposals[0].pseudo_random_function_key_length = 22;
ike_proposals[0].integrity_algorithm = 3;
ike_proposals[0].integrity_algorithm_key_length = 24;
ike_proposals[0].diffie_hellman_group = 4;
proposal2 = proposal_create(2);
proposal2->add_algorithm(proposal2, IKE, ENCRYPTION_ALGORITHM, 5, 26);
proposal2->add_algorithm(proposal2, IKE, PSEUDO_RANDOM_FUNCTION, 6, 28);
proposal2->add_algorithm(proposal2, IKE, INTEGRITY_ALGORITHM, 7, 30);
proposal2->add_algorithm(proposal2, IKE, DIFFIE_HELLMAN_GROUP, 8, 0);
ike_proposals[1].encryption_algorithm = 5;
ike_proposals[1].encryption_algorithm_key_length = 26;
ike_proposals[1].pseudo_random_function = 6;
ike_proposals[1].pseudo_random_function_key_length = 28;
ike_proposals[1].integrity_algorithm = 7;
ike_proposals[1].integrity_algorithm_key_length = 30;
ike_proposals[1].diffie_hellman_group = 8;
sa_payload = sa_payload_create_from_ike_proposals(ike_proposals,ike_proposal_count);
list = linked_list_create();
list->insert_last(list, (void*)proposal1);
list->insert_last(list, (void*)proposal2);
sa_payload = sa_payload_create_from_proposal_list(list);
tester->assert_true(tester,(sa_payload != NULL), "sa_payload create check");
generator->generate_payload(generator,(payload_t *)sa_payload);
@@ -643,7 +637,9 @@ void test_generator_with_sa_payload(protected_tester_t *tester)
tester->assert_true(tester,(memcmp(expected_generation2,generated_data.ptr,sizeof(expected_generation2)) == 0), "compare generated data");
sa_payload->destroy(sa_payload);
allocator_free(ike_proposals);
list->destroy(list);
proposal1->destroy(proposal1);
proposal2->destroy(proposal2);
allocator_free_chunk(&generated_data);
generator->destroy(generator);
@@ -655,32 +651,32 @@ void test_generator_with_sa_payload(protected_tester_t *tester)
tester->assert_true(tester,(generator != NULL), "generator create check");
child_proposal1 = child_proposal_create(1);
proposal1 = proposal_create(1);
child_proposal1->add_algorithm(child_proposal1, AH, INTEGRITY_ALGORITHM, AUTH_HMAC_MD5_96, 20);
child_proposal1->add_algorithm(child_proposal1, AH, DIFFIE_HELLMAN_GROUP, MODP_2048_BIT, 0);
child_proposal1->add_algorithm(child_proposal1, AH, EXTENDED_SEQUENCE_NUMBERS, EXT_SEQ_NUMBERS, 0);
child_proposal1->set_spi(child_proposal1, AH, 0x01010101l);
proposal1->add_algorithm(proposal1, AH, INTEGRITY_ALGORITHM, AUTH_HMAC_MD5_96, 20);
proposal1->add_algorithm(proposal1, AH, DIFFIE_HELLMAN_GROUP, MODP_2048_BIT, 0);
proposal1->add_algorithm(proposal1, AH, EXTENDED_SEQUENCE_NUMBERS, EXT_SEQ_NUMBERS, 0);
proposal1->set_spi(proposal1, AH, 0x01010101l);
child_proposal1->add_algorithm(child_proposal1, ESP, ENCRYPTION_ALGORITHM, ENCR_AES_CBC, 20);
child_proposal1->add_algorithm(child_proposal1, ESP, DIFFIE_HELLMAN_GROUP, MODP_1024_BIT, 0);
child_proposal1->set_spi(child_proposal1, ESP, 0x02020202);
proposal1->add_algorithm(proposal1, ESP, ENCRYPTION_ALGORITHM, ENCR_AES_CBC, 20);
proposal1->add_algorithm(proposal1, ESP, DIFFIE_HELLMAN_GROUP, MODP_1024_BIT, 0);
proposal1->set_spi(proposal1, ESP, 0x02020202);
child_proposal2->add_algorithm(child_proposal2, AH, INTEGRITY_ALGORITHM, AUTH_HMAC_MD5_96, 20);
child_proposal2->add_algorithm(child_proposal2, AH, DIFFIE_HELLMAN_GROUP, MODP_2048_BIT, 0);
child_proposal2->add_algorithm(child_proposal2, AH, EXTENDED_SEQUENCE_NUMBERS, EXT_SEQ_NUMBERS, 0);
child_proposal2->set_spi(child_proposal2, AH, 0x01010101);
proposal2->add_algorithm(proposal2, AH, INTEGRITY_ALGORITHM, AUTH_HMAC_MD5_96, 20);
proposal2->add_algorithm(proposal2, AH, DIFFIE_HELLMAN_GROUP, MODP_2048_BIT, 0);
proposal2->add_algorithm(proposal2, AH, EXTENDED_SEQUENCE_NUMBERS, EXT_SEQ_NUMBERS, 0);
proposal2->set_spi(proposal2, AH, 0x01010101);
child_proposal2->add_algorithm(child_proposal2, ESP, ENCRYPTION_ALGORITHM, ENCR_AES_CBC, 32);
child_proposal2->add_algorithm(child_proposal2, ESP, INTEGRITY_ALGORITHM, AUTH_HMAC_MD5_96, 20);
child_proposal2->add_algorithm(child_proposal2, ESP, DIFFIE_HELLMAN_GROUP, MODP_1024_BIT, 0);
child_proposal2->set_spi(child_proposal2, ESP, 0x02020202);
proposal2->add_algorithm(proposal2, ESP, ENCRYPTION_ALGORITHM, ENCR_AES_CBC, 32);
proposal2->add_algorithm(proposal2, ESP, INTEGRITY_ALGORITHM, AUTH_HMAC_MD5_96, 20);
proposal2->add_algorithm(proposal2, ESP, DIFFIE_HELLMAN_GROUP, MODP_1024_BIT, 0);
proposal2->set_spi(proposal2, ESP, 0x02020202);
list->insert_last(list, (void*)child_proposal1);
list->insert_last(list, (void*)child_proposal2);
list->insert_last(list, (void*)proposal1);
list->insert_last(list, (void*)proposal2);
sa_payload = sa_payload_create_from_child_proposal_list(list);
sa_payload = sa_payload_create_from_proposal_list(list);
tester->assert_true(tester,(sa_payload != NULL), "sa_payload create check");
generator->generate_payload(generator,(payload_t *)sa_payload);
@@ -754,8 +750,8 @@ void test_generator_with_sa_payload(protected_tester_t *tester)
tester->assert_true(tester,(memcmp(expected_generation3,generated_data.ptr,sizeof(expected_generation3)) == 0), "compare generated data");
sa_payload->destroy(sa_payload);
child_proposal1->destroy(child_proposal1);
child_proposal2->destroy(child_proposal2);
proposal1->destroy(proposal1);
proposal2->destroy(proposal2);
list->destroy(list);
allocator_free_chunk(&generated_data);
generator->destroy(generator);
+30 -79
View File
@@ -32,97 +32,48 @@
void test_init_config(protected_tester_t *tester)
{
init_config_t *init_config = init_config_create("192.168.0.1","192.168.0.2",500,500);
ike_proposal_t prop1, prop2, prop3, prop4, selected_one;
ike_proposal_t *proposal_list;
size_t proposal_count;
proposal_t *prop1, *prop2, *prop3, *prop4, *selected_one;
linked_list_t *list;
status_t status;
prop1.encryption_algorithm = ENCR_AES_CBC;
prop1.encryption_algorithm_key_length = 20;
prop1.integrity_algorithm = AUTH_HMAC_SHA1_96;
prop1.integrity_algorithm_key_length = 20;
prop1.pseudo_random_function = PRF_HMAC_SHA1;
prop1.pseudo_random_function_key_length = 20;
prop1.diffie_hellman_group = MODP_2048_BIT;
prop1 = proposal_create(1);
prop1->add_algorithm(prop1, IKE, ENCRYPTION_ALGORITHM, ENCR_AES_CBC, 20);
prop1->add_algorithm(prop1, IKE, INTEGRITY_ALGORITHM, AUTH_HMAC_SHA1_96, 20);
prop1->add_algorithm(prop1, IKE, PSEUDO_RANDOM_FUNCTION, PRF_HMAC_SHA1, 20);
prop1->add_algorithm(prop1, IKE, DIFFIE_HELLMAN_GROUP, MODP_2048_BIT, 0);
prop2 = prop1;
prop2.pseudo_random_function = PRF_HMAC_MD5;
prop2.diffie_hellman_group = MODP_1024_BIT;
prop2 = proposal_create(2);
prop2->add_algorithm(prop2, IKE, ENCRYPTION_ALGORITHM, ENCR_AES_CBC, 20);
prop2->add_algorithm(prop2, IKE, INTEGRITY_ALGORITHM, AUTH_HMAC_SHA1_96, 20);
prop2->add_algorithm(prop2, IKE, PSEUDO_RANDOM_FUNCTION, PRF_HMAC_MD5, 20);
prop2->add_algorithm(prop2, IKE, DIFFIE_HELLMAN_GROUP, MODP_1024_BIT, 0);
prop3 = prop1;
prop3.encryption_algorithm = ENCR_DES;
prop3.diffie_hellman_group = MODP_768_BIT;
prop3 = proposal_create(3);
prop3->add_algorithm(prop3, IKE, ENCRYPTION_ALGORITHM, ENCR_DES, 20);
prop3->add_algorithm(prop3, IKE, INTEGRITY_ALGORITHM, AUTH_HMAC_SHA1_96, 20);
prop3->add_algorithm(prop3, IKE, PSEUDO_RANDOM_FUNCTION, PRF_HMAC_MD5, 20);
prop3->add_algorithm(prop3, IKE, DIFFIE_HELLMAN_GROUP, MODP_768_BIT, 0);
prop4 = prop1;
prop4 = proposal_create(4);
prop4->add_algorithm(prop4, IKE, ENCRYPTION_ALGORITHM, ENCR_3DES, 20);
prop4->add_algorithm(prop4, IKE, INTEGRITY_ALGORITHM, AUTH_HMAC_SHA1_96, 20);
prop4->add_algorithm(prop4, IKE, PSEUDO_RANDOM_FUNCTION, PRF_HMAC_TIGER, 20);
prop4->add_algorithm(prop4, IKE, DIFFIE_HELLMAN_GROUP, MODP_768_BIT, 0);
prop4.encryption_algorithm = ENCR_3DES;
prop4.pseudo_random_function = PRF_HMAC_TIGER;
init_config->add_proposal(init_config, prop1);
init_config->add_proposal(init_config, prop2);
init_config->add_proposal(init_config, prop3);
init_config->add_proposal(init_config, prop4);
init_config->add_proposal(init_config,1,prop1);
init_config->add_proposal(init_config,1,prop2);
init_config->add_proposal(init_config,3,prop3);
init_config->add_proposal(init_config,2,prop4);
list = init_config->get_proposals(init_config);
proposal_count = init_config->get_proposals(init_config,&proposal_list);
tester->assert_true(tester,(proposal_count == 4), "proposal count check ");
tester->assert_true(tester,(proposal_list[0].encryption_algorithm == ENCR_AES_CBC), "encryption algorithm check 1");
tester->assert_true(tester,(proposal_list[0].pseudo_random_function == PRF_HMAC_MD5), "prf check 1");
tester->assert_true(tester,(list->get_count(list) == 4), "proposal count check ");
tester->assert_true(tester,(proposal_list[1].encryption_algorithm == ENCR_3DES), "encryption algorithm check 2");
tester->assert_true(tester,(proposal_list[1].pseudo_random_function == PRF_HMAC_TIGER), "prf check 2");
tester->assert_true(tester,(proposal_list[2].encryption_algorithm == ENCR_AES_CBC), "encryption algorithm check 3");
tester->assert_true(tester,(proposal_list[2].pseudo_random_function == PRF_HMAC_SHA1), "prf check 3");
tester->assert_true(tester,(proposal_list[3].encryption_algorithm == ENCR_DES), "encryption algorithm check 4");
tester->assert_true(tester,(proposal_list[3].pseudo_random_function == PRF_HMAC_SHA1), "prf check 4");
/* going to check proposals */
status = init_config->select_proposal(init_config,proposal_list,proposal_count,&selected_one);
tester->assert_true(tester,(status == SUCCESS), "select proposal call check 1");
tester->assert_true(tester,(selected_one.encryption_algorithm == ENCR_AES_CBC), "encryption algorithm check");
tester->assert_true(tester,(selected_one.pseudo_random_function == PRF_HMAC_MD5), "prf check");
proposal_list[0].encryption_algorithm = ENCR_DES_IV32;
/* TODO test?*/
status = init_config->select_proposal(init_config,proposal_list,proposal_count,&selected_one);
tester->assert_true(tester,(status == SUCCESS), "select proposal call check 2");
tester->assert_true(tester,(selected_one.encryption_algorithm == ENCR_3DES), "encryption algorithm check");
tester->assert_true(tester,(selected_one.pseudo_random_function == PRF_HMAC_TIGER), "prf check");
proposal_list[1].pseudo_random_function = PRF_AES128_CBC;
status = init_config->select_proposal(init_config,proposal_list,proposal_count,&selected_one);
tester->assert_true(tester,(status == SUCCESS), "select proposal call check 3");
tester->assert_true(tester,(selected_one.encryption_algorithm == ENCR_AES_CBC), "encryption algorithm check");
tester->assert_true(tester,(selected_one.pseudo_random_function == PRF_HMAC_SHA1), "prf check");
proposal_list[2].pseudo_random_function = PRF_AES128_CBC;
status = init_config->select_proposal(init_config,proposal_list,proposal_count,&selected_one);
tester->assert_true(tester,(status == SUCCESS), "select proposal call check 4");
tester->assert_true(tester,(selected_one.encryption_algorithm == ENCR_DES), "encryption algorithm check");
tester->assert_true(tester,(selected_one.pseudo_random_function == PRF_HMAC_SHA1), "prf check");
proposal_list[3].pseudo_random_function = PRF_AES128_CBC;
status = init_config->select_proposal(init_config,proposal_list,proposal_count,&selected_one);
tester->assert_true(tester,(status == NOT_FOUND), "select proposal call check 5");
tester->assert_true(tester,(init_config->get_dh_group_number(init_config,1) == MODP_1024_BIT), "get DH group number call check 1");
tester->assert_true(tester,(init_config->get_dh_group_number(init_config,2) == MODP_2048_BIT), "get DH group number call check 2");
tester->assert_true(tester,(init_config->get_dh_group_number(init_config,3) == MODP_2048_BIT), "get DH group number call check 3");
tester->assert_true(tester,(init_config->get_dh_group_number(init_config,4) == MODP_768_BIT), "get DH group number call check 4");
allocator_free(proposal_list);
list->destroy(list);
init_config->destroy(init_config);
}
+44 -45
View File
@@ -104,8 +104,6 @@ void test_parser_with_sa_payload(protected_tester_t *tester)
status_t status;
chunk_t sa_chunk, sa_chunk2, sa_chunk3;
iterator_t *proposals, *transforms, *attributes;
ike_proposal_t *ike_proposals;
size_t ike_proposal_count;
/* first test generic parsing functionality */
@@ -242,7 +240,7 @@ void test_parser_with_sa_payload(protected_tester_t *tester)
status = sa_payload->payload_interface.verify(&(sa_payload->payload_interface));
tester->assert_true(tester,(status == SUCCESS),"verify call check");
/*
status = sa_payload->get_ike_proposals (sa_payload, &ike_proposals, &ike_proposal_count);
tester->assert_true(tester,(status == SUCCESS),"get ike proposals call check");
@@ -268,6 +266,7 @@ void test_parser_with_sa_payload(protected_tester_t *tester)
{
allocator_free(ike_proposals);
}
*/
sa_payload->destroy(sa_payload);
/* now test SA functionality after parsing an SA payload with child sa proposals*/
@@ -347,59 +346,59 @@ void test_parser_with_sa_payload(protected_tester_t *tester)
status = sa_payload->payload_interface.verify(&(sa_payload->payload_interface));
tester->assert_true(tester,(status == SUCCESS),"verify call check");
/*
status = sa_payload->get_ike_proposals (sa_payload, &ike_proposals, &ike_proposal_count);
tester->assert_false(tester,(status == SUCCESS),"get ike proposals call check");
/*
status = sa_payload->get_child_proposals (sa_payload, &child_proposals, &child_proposal_count);
status = sa_payload->get_proposals (sa_payload, &proposals, &proposal_count);
tester->assert_true(tester,(status == SUCCESS),"get child proposals call check");
tester->assert_true(tester,(child_proposal_count == 2),"child proposal count check");
tester->assert_true(tester,(child_proposals[0].ah.is_set == TRUE),"is ah set check");
tester->assert_true(tester,(child_proposals[0].ah.integrity_algorithm == AUTH_HMAC_MD5_96),"integrity_algorithm check");
tester->assert_true(tester,(child_proposals[0].ah.integrity_algorithm_key_size == 20),"integrity_algorithm_key_size check");
tester->assert_true(tester,(child_proposals[0].ah.diffie_hellman_group == MODP_2048_BIT),"diffie_hellman_group check");
tester->assert_true(tester,(child_proposals[0].ah.extended_sequence_numbers == EXT_SEQ_NUMBERS),"extended_sequence_numbers check");
tester->assert_true(tester,(child_proposals[0].ah.spi[0] == 1),"spi check");
tester->assert_true(tester,(child_proposals[0].ah.spi[1] == 1),"spi check");
tester->assert_true(tester,(child_proposals[0].ah.spi[2] == 1),"spi check");
tester->assert_true(tester,(child_proposals[0].ah.spi[3] == 1),"spi check");
tester->assert_true(tester,(proposal_count == 2),"child proposal count check");
tester->assert_true(tester,(proposals[0].ah.is_set == TRUE),"is ah set check");
tester->assert_true(tester,(proposals[0].ah.integrity_algorithm == AUTH_HMAC_MD5_96),"integrity_algorithm check");
tester->assert_true(tester,(proposals[0].ah.integrity_algorithm_key_size == 20),"integrity_algorithm_key_size check");
tester->assert_true(tester,(proposals[0].ah.diffie_hellman_group == MODP_2048_BIT),"diffie_hellman_group check");
tester->assert_true(tester,(proposals[0].ah.extended_sequence_numbers == EXT_SEQ_NUMBERS),"extended_sequence_numbers check");
tester->assert_true(tester,(proposals[0].ah.spi[0] == 1),"spi check");
tester->assert_true(tester,(proposals[0].ah.spi[1] == 1),"spi check");
tester->assert_true(tester,(proposals[0].ah.spi[2] == 1),"spi check");
tester->assert_true(tester,(proposals[0].ah.spi[3] == 1),"spi check");
tester->assert_true(tester,(child_proposals[0].esp.is_set == TRUE),"is ah set check");
tester->assert_true(tester,(child_proposals[0].esp.encryption_algorithm == ENCR_AES_CBC),"integrity_algorithm check");
tester->assert_true(tester,(child_proposals[0].esp.encryption_algorithm_key_size == 32),"integrity_algorithm_key_size check");
tester->assert_true(tester,(child_proposals[0].esp.diffie_hellman_group == MODP_1024_BIT),"diffie_hellman_group check");
tester->assert_true(tester,(child_proposals[0].esp.integrity_algorithm == AUTH_UNDEFINED),"integrity_algorithm check");
tester->assert_true(tester,(child_proposals[0].esp.spi[0] == 2),"spi check");
tester->assert_true(tester,(child_proposals[0].esp.spi[1] == 2),"spi check");
tester->assert_true(tester,(child_proposals[0].esp.spi[2] == 2),"spi check");
tester->assert_true(tester,(child_proposals[0].esp.spi[3] == 2),"spi check");
tester->assert_true(tester,(proposals[0].esp.is_set == TRUE),"is ah set check");
tester->assert_true(tester,(proposals[0].esp.encryption_algorithm == ENCR_AES_CBC),"integrity_algorithm check");
tester->assert_true(tester,(proposals[0].esp.encryption_algorithm_key_size == 32),"integrity_algorithm_key_size check");
tester->assert_true(tester,(proposals[0].esp.diffie_hellman_group == MODP_1024_BIT),"diffie_hellman_group check");
tester->assert_true(tester,(proposals[0].esp.integrity_algorithm == AUTH_UNDEFINED),"integrity_algorithm check");
tester->assert_true(tester,(proposals[0].esp.spi[0] == 2),"spi check");
tester->assert_true(tester,(proposals[0].esp.spi[1] == 2),"spi check");
tester->assert_true(tester,(proposals[0].esp.spi[2] == 2),"spi check");
tester->assert_true(tester,(proposals[0].esp.spi[3] == 2),"spi check");
tester->assert_true(tester,(child_proposals[1].ah.is_set == TRUE),"is ah set check");
tester->assert_true(tester,(child_proposals[1].ah.integrity_algorithm == AUTH_HMAC_MD5_96),"integrity_algorithm check");
tester->assert_true(tester,(child_proposals[1].ah.integrity_algorithm_key_size == 20),"integrity_algorithm_key_size check");
tester->assert_true(tester,(child_proposals[1].ah.diffie_hellman_group == MODP_2048_BIT),"diffie_hellman_group check");
tester->assert_true(tester,(child_proposals[1].ah.extended_sequence_numbers == EXT_SEQ_NUMBERS),"extended_sequence_numbers check");
tester->assert_true(tester,(child_proposals[1].ah.spi[0] == 1),"spi check");
tester->assert_true(tester,(child_proposals[1].ah.spi[1] == 1),"spi check");
tester->assert_true(tester,(child_proposals[1].ah.spi[2] == 1),"spi check");
tester->assert_true(tester,(child_proposals[1].ah.spi[3] == 1),"spi check");
tester->assert_true(tester,(proposals[1].ah.is_set == TRUE),"is ah set check");
tester->assert_true(tester,(proposals[1].ah.integrity_algorithm == AUTH_HMAC_MD5_96),"integrity_algorithm check");
tester->assert_true(tester,(proposals[1].ah.integrity_algorithm_key_size == 20),"integrity_algorithm_key_size check");
tester->assert_true(tester,(proposals[1].ah.diffie_hellman_group == MODP_2048_BIT),"diffie_hellman_group check");
tester->assert_true(tester,(proposals[1].ah.extended_sequence_numbers == EXT_SEQ_NUMBERS),"extended_sequence_numbers check");
tester->assert_true(tester,(proposals[1].ah.spi[0] == 1),"spi check");
tester->assert_true(tester,(proposals[1].ah.spi[1] == 1),"spi check");
tester->assert_true(tester,(proposals[1].ah.spi[2] == 1),"spi check");
tester->assert_true(tester,(proposals[1].ah.spi[3] == 1),"spi check");
tester->assert_true(tester,(child_proposals[1].esp.is_set == TRUE),"is ah set check");
tester->assert_true(tester,(child_proposals[1].esp.encryption_algorithm == ENCR_AES_CBC),"integrity_algorithm check");
tester->assert_true(tester,(child_proposals[1].esp.encryption_algorithm_key_size == 32),"integrity_algorithm_key_size check");
tester->assert_true(tester,(child_proposals[1].esp.diffie_hellman_group == MODP_1024_BIT),"diffie_hellman_group check");
tester->assert_true(tester,(child_proposals[1].esp.integrity_algorithm == AUTH_HMAC_MD5_96),"integrity_algorithm check");
tester->assert_true(tester,(child_proposals[1].esp.integrity_algorithm_key_size == 20),"integrity_algorithm check");
tester->assert_true(tester,(child_proposals[1].esp.spi[0] == 2),"spi check");
tester->assert_true(tester,(child_proposals[1].esp.spi[1] == 2),"spi check");
tester->assert_true(tester,(child_proposals[1].esp.spi[2] == 2),"spi check");
tester->assert_true(tester,(child_proposals[1].esp.spi[3] == 2),"spi check");
tester->assert_true(tester,(proposals[1].esp.is_set == TRUE),"is ah set check");
tester->assert_true(tester,(proposals[1].esp.encryption_algorithm == ENCR_AES_CBC),"integrity_algorithm check");
tester->assert_true(tester,(proposals[1].esp.encryption_algorithm_key_size == 32),"integrity_algorithm_key_size check");
tester->assert_true(tester,(proposals[1].esp.diffie_hellman_group == MODP_1024_BIT),"diffie_hellman_group check");
tester->assert_true(tester,(proposals[1].esp.integrity_algorithm == AUTH_HMAC_MD5_96),"integrity_algorithm check");
tester->assert_true(tester,(proposals[1].esp.integrity_algorithm_key_size == 20),"integrity_algorithm check");
tester->assert_true(tester,(proposals[1].esp.spi[0] == 2),"spi check");
tester->assert_true(tester,(proposals[1].esp.spi[1] == 2),"spi check");
tester->assert_true(tester,(proposals[1].esp.spi[2] == 2),"spi check");
tester->assert_true(tester,(proposals[1].esp.spi[3] == 2),"spi check");
if (status == SUCCESS)
{
allocator_free(child_proposals);
allocator_free(proposals);
}
*/
@@ -1,7 +1,7 @@
/**
* @file child_proposal_test.c
* @file proposal_test.c
*
* @brief Tests for the child_proposal_t class.
* @brief Tests for the proposal_t class.
*
*/
@@ -20,10 +20,10 @@
* for more details.
*/
#include "child_proposal_test.h"
#include "proposal_test.h"
#include <daemon.h>
#include <config/child_proposal.h>
#include <config/proposal.h>
#include <utils/allocator.h>
#include <utils/logger.h>
@@ -31,14 +31,14 @@
/**
* Described in header.
*/
void test_child_proposal(protected_tester_t *tester)
void test_proposal(protected_tester_t *tester)
{
child_proposal_t *proposal1, *proposal2, *proposal3;
proposal_t *proposal1, *proposal2, *proposal3;
iterator_t *iterator;
algorithm_t *algo;
bool result;
proposal1 = child_proposal_create(1);
proposal1 = proposal_create(1);
proposal1->add_algorithm(proposal1, ESP, ENCRYPTION_ALGORITHM, ENCR_3DES, 0);
proposal1->add_algorithm(proposal1, ESP, ENCRYPTION_ALGORITHM, ENCR_AES_CBC, 32);
proposal1->add_algorithm(proposal1, ESP, ENCRYPTION_ALGORITHM, ENCR_AES_CBC, 16);
@@ -48,7 +48,7 @@ void test_child_proposal(protected_tester_t *tester)
proposal1->add_algorithm(proposal1, AH, DIFFIE_HELLMAN_GROUP, MODP_1024_BIT, 0);
proposal1->add_algorithm(proposal1, AH, DIFFIE_HELLMAN_GROUP, MODP_2048_BIT, 0);
proposal2 = child_proposal_create(2);
proposal2 = proposal_create(2);
proposal2->add_algorithm(proposal2, ESP, ENCRYPTION_ALGORITHM, ENCR_3IDEA, 0);
proposal2->add_algorithm(proposal2, ESP, ENCRYPTION_ALGORITHM, ENCR_AES_CBC, 16);
proposal2->add_algorithm(proposal2, ESP, INTEGRITY_ALGORITHM, AUTH_HMAC_MD5_96, 20);
@@ -1,7 +1,7 @@
/**
* @file child_proposal_test.h
* @file proposal_test.h
*
* @brief Tests for the child_proposal_t class.
* @brief Tests for the proposal_t class.
*
*/
@@ -27,13 +27,13 @@
#include <utils/tester.h>
/**
* @brief Test function used to test the child_proposal_t functionality.
* @brief Test function used to test the proposal_t functionality.
*
* @param tester associated protected_tester_t object
*
* @ingroup testcases
*/
void test_child_proposal(protected_tester_t *tester);
void test_proposal(protected_tester_t *tester);
#endif //CHILD_PROPOSAL_TEST_H_
+6 -6
View File
@@ -37,7 +37,7 @@ void test_sa_config(protected_tester_t *tester)
{
sa_config_t *sa_config;
traffic_selector_t *ts_policy[3], *ts_request[4], *ts_reference[3], **ts_result;
child_proposal_t *proposal1, *proposal2, *proposal3, *proposal_sel;
proposal_t *proposal1, *proposal2, *proposal3, *proposal_sel;
linked_list_t *proposals_list;
iterator_t *iterator;
size_t count;
@@ -61,15 +61,15 @@ void test_sa_config(protected_tester_t *tester)
*/
/* esp only prop */
proposal1 = child_proposal_create(1);
proposal1 = proposal_create(1);
proposal1->add_algorithm(proposal1, ESP, ENCRYPTION_ALGORITHM, ENCR_AES_CBC, 16);
/* ah only prop */
proposal2 = child_proposal_create(2);
proposal2 = proposal_create(2);
proposal2->add_algorithm(proposal2, AH, INTEGRITY_ALGORITHM, AUTH_HMAC_SHA1_96, 20);
/* ah and esp prop */
proposal3 = child_proposal_create(3);
proposal3 = proposal_create(3);
proposal3->add_algorithm(proposal3, ESP, ENCRYPTION_ALGORITHM, ENCR_3DES, 16);
proposal3->add_algorithm(proposal3, AH, INTEGRITY_ALGORITHM, AUTH_HMAC_MD5_96, 20);
@@ -84,9 +84,9 @@ void test_sa_config(protected_tester_t *tester)
proposals_list = linked_list_create();
proposal1 = child_proposal_create(1);
proposal1 = proposal_create(1);
proposal1->add_algorithm(proposal1, ESP, ENCRYPTION_ALGORITHM, ENCR_AES_CBC, 32);
proposal2 = child_proposal_create(2);
proposal2 = proposal_create(2);
proposal2->add_algorithm(proposal2, ESP, ENCRYPTION_ALGORITHM, ENCR_AES_CBC, 16);
proposal2->add_algorithm(proposal2, ESP, ENCRYPTION_ALGORITHM, ENCR_3DES, 16);
proposal2->add_algorithm(proposal2, ESP, ENCRYPTION_ALGORITHM, ENCR_BLOWFISH, 0);
+5 -5
View File
@@ -58,7 +58,7 @@
#include <testcases/encryption_payload_test.h>
#include <testcases/init_config_test.h>
#include <testcases/sa_config_test.h>
#include <testcases/child_proposal_test.h>
#include <testcases/proposal_test.h>
#include <testcases/rsa_test.h>
#include <testcases/kernel_interface_test.h>
@@ -123,7 +123,7 @@ test_t hmac_signer_test2 = {test_hmac_sha1_signer, "HMAC SHA1 signer test"};
test_t encryption_payload_test = {test_encryption_payload, "encryption payload test"};
test_t init_config_test = {test_init_config, "init_config_t test"};
test_t sa_config_test = {test_sa_config, "sa_config_t test"};
test_t child_proposal_test = {test_child_proposal, "child_proposal_t test"};
test_t proposal_test = {test_proposal, "proposal_t test"};
test_t rsa_test = {test_rsa, "RSA private/public key test"};
test_t kernel_interface_test = {test_kernel_interface, "Kernel Interface"};
@@ -233,7 +233,7 @@ int main()
&encryption_payload_test,
&init_config_test,
&sa_config_test,
&child_proposal_test,
&proposal_test,
&rsa_test,
NULL
};
@@ -249,8 +249,8 @@ int main()
tester_t *tester = tester_create(test_output, FALSE);
//tester->perform_tests(tester,all_tests);
tester->perform_test(tester,&kernel_interface_test);
tester->perform_tests(tester,all_tests);
//tester->perform_test(tester,&kernel_interface_test);
tester->destroy(tester);