- works with new proposal code
- still some(!) memleaks
This commit is contained in:
@@ -35,6 +35,8 @@ void test_child_proposal(protected_tester_t *tester)
|
||||
{
|
||||
child_proposal_t *proposal1, *proposal2, *proposal3;
|
||||
iterator_t *iterator;
|
||||
algorithm_t *algo;
|
||||
bool result;
|
||||
|
||||
proposal1 = child_proposal_create(1);
|
||||
proposal1->add_algorithm(proposal1, ESP, ENCRYPTION_ALGORITHM, ENCR_3DES, 0);
|
||||
@@ -50,29 +52,28 @@ void test_child_proposal(protected_tester_t *tester)
|
||||
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);
|
||||
//proposal1->add_algorithm(proposal2, AH, DIFFIE_HELLMAN_GROUP, MODP_1024_BIT, 0);
|
||||
proposal1->add_algorithm(proposal2, AH, DIFFIE_HELLMAN_GROUP, MODP_1024_BIT, 0);
|
||||
|
||||
/* ah and esp prop */
|
||||
proposal3 = proposal1->select(proposal1, proposal2);
|
||||
tester->assert_false(tester, proposal3 == NULL, "proposal select");
|
||||
if (proposal3)
|
||||
{
|
||||
iterator = proposal3->create_algorithm_iterator(proposal3, ESP, ENCRYPTION_ALGORITHM);
|
||||
tester->assert_false(tester, iterator == NULL, "encryption algo select");
|
||||
while(iterator->has_next(iterator))
|
||||
{
|
||||
algorithm_t *algo;
|
||||
iterator->current(iterator, (void**)&algo);
|
||||
tester->assert_true(tester, algo->algorithm == ENCR_AES_CBC, "encryption algo");
|
||||
tester->assert_true(tester, algo->key_size == 16, "encryption keylen");
|
||||
}
|
||||
iterator->destroy(iterator);
|
||||
result = proposal3->get_algorithm(proposal3, ESP, ENCRYPTION_ALGORITHM, &algo);
|
||||
tester->assert_true(tester, result, "encryption algo select");
|
||||
tester->assert_true(tester, algo->algorithm == ENCR_AES_CBC, "encryption algo");
|
||||
tester->assert_true(tester, algo->key_size == 16, "encryption keylen");
|
||||
|
||||
|
||||
result = proposal3->get_algorithm(proposal3, ESP, INTEGRITY_ALGORITHM, &algo);
|
||||
tester->assert_true(tester, result, "integrity algo select");
|
||||
tester->assert_true(tester, algo->algorithm == AUTH_HMAC_MD5_96, "integrity algo");
|
||||
tester->assert_true(tester, algo->key_size == 20, "integrity keylen");
|
||||
|
||||
iterator = proposal3->create_algorithm_iterator(proposal3, ESP, INTEGRITY_ALGORITHM);
|
||||
tester->assert_false(tester, iterator == NULL, "integrity algo select");
|
||||
while(iterator->has_next(iterator))
|
||||
{
|
||||
algorithm_t *algo;
|
||||
iterator->current(iterator, (void**)&algo);
|
||||
tester->assert_true(tester, algo->algorithm == AUTH_HMAC_MD5_96, "integrity algo");
|
||||
tester->assert_true(tester, algo->key_size == 20, "integrity keylen");
|
||||
@@ -83,7 +84,6 @@ void test_child_proposal(protected_tester_t *tester)
|
||||
tester->assert_false(tester, iterator == NULL, "dh group algo select");
|
||||
while(iterator->has_next(iterator))
|
||||
{
|
||||
algorithm_t *algo;
|
||||
iterator->current(iterator, (void**)&algo);
|
||||
tester->assert_true(tester, algo->algorithm == MODP_1024_BIT, "dh group algo");
|
||||
tester->assert_true(tester, algo->key_size == 0, "dh gorup keylen");
|
||||
|
||||
@@ -680,7 +680,7 @@ void test_generator_with_sa_payload(protected_tester_t *tester)
|
||||
list->insert_last(list, (void*)child_proposal1);
|
||||
list->insert_last(list, (void*)child_proposal2);
|
||||
|
||||
sa_payload = sa_payload_create_from_child_proposals(list);
|
||||
sa_payload = sa_payload_create_from_child_proposal_list(list);
|
||||
tester->assert_true(tester,(sa_payload != NULL), "sa_payload create check");
|
||||
|
||||
generator->generate_payload(generator,(payload_t *)sa_payload);
|
||||
|
||||
@@ -38,7 +38,8 @@ 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;
|
||||
linked_list_t *list;
|
||||
linked_list_t *proposals_list;
|
||||
iterator_t *iterator;
|
||||
size_t count;
|
||||
logger_t *logger;
|
||||
ts_payload_t *ts_payload;
|
||||
@@ -78,12 +79,54 @@ void test_sa_config(protected_tester_t *tester)
|
||||
sa_config->add_proposal(sa_config, proposal3);
|
||||
|
||||
|
||||
list = sa_config->get_proposals(sa_config);
|
||||
tester->assert_true(tester, (list->get_count(list) == 3), "proposal count");
|
||||
proposals_list = sa_config->get_proposals(sa_config);
|
||||
tester->assert_true(tester, (proposals_list->get_count(proposals_list) == 3), "proposal count");
|
||||
|
||||
|
||||
//proposal_sel = sa_config->select_proposal(sa_config, list);
|
||||
proposals_list = linked_list_create();
|
||||
proposal1 = child_proposal_create(1);
|
||||
proposal1->add_algorithm(proposal1, ESP, ENCRYPTION_ALGORITHM, ENCR_AES_CBC, 32);
|
||||
proposal2 = child_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);
|
||||
proposal2->add_algorithm(proposal2, AH, INTEGRITY_ALGORITHM, AUTH_HMAC_SHA1_96, 20);
|
||||
proposal2->add_algorithm(proposal2, AH, INTEGRITY_ALGORITHM, AUTH_HMAC_MD5_96, 20);
|
||||
|
||||
proposals_list->insert_last(proposals_list, proposal1);
|
||||
proposals_list->insert_last(proposals_list, proposal2);
|
||||
|
||||
proposal_sel = sa_config->select_proposal(sa_config, proposals_list);
|
||||
tester->assert_false(tester, proposal_sel == NULL, "proposal select");
|
||||
/* check ESP encryption algo */
|
||||
iterator = proposal_sel->create_algorithm_iterator(proposal_sel, ESP, ENCRYPTION_ALGORITHM);
|
||||
tester->assert_false(tester, iterator == NULL, "algorithm select ESP");
|
||||
while (iterator->has_next(iterator))
|
||||
{
|
||||
algorithm_t *algo;
|
||||
iterator->current(iterator, (void**)&algo);
|
||||
tester->assert_true(tester, algo->algorithm == ENCR_3DES, "ESP encryption algo");
|
||||
tester->assert_true(tester, algo->key_size == 16, "ESP encryption keysize");
|
||||
}
|
||||
iterator->destroy(iterator);
|
||||
iterator = proposal_sel->create_algorithm_iterator(proposal_sel, AH, INTEGRITY_ALGORITHM);
|
||||
/* check AH integrity algo */
|
||||
tester->assert_false(tester, iterator == NULL, "algorithm select AH");
|
||||
while (iterator->has_next(iterator))
|
||||
{
|
||||
algorithm_t *algo;
|
||||
iterator->current(iterator, (void**)&algo);
|
||||
tester->assert_true(tester, algo->algorithm == AUTH_HMAC_MD5_96, "ESP encryption algo");
|
||||
tester->assert_true(tester, algo->key_size == 20, "ESP encryption keysize");
|
||||
}
|
||||
iterator->destroy(iterator);
|
||||
|
||||
proposal_sel->destroy(proposal_sel);
|
||||
|
||||
/* cleanup */
|
||||
proposal1->destroy(proposal1);
|
||||
proposal1->destroy(proposal2);
|
||||
proposals_list->destroy(proposals_list);
|
||||
|
||||
/*
|
||||
* test traffic selection getting and matching
|
||||
|
||||
Reference in New Issue
Block a user