Annotation of embedaddon/strongswan/src/libstrongswan/tests/suites/test_vectors.c, revision 1.1.1.1

1.1       misho       1: /*
                      2:  * Copyright (C) 2014 Tobias Brunner
                      3:  * HSR Hochschule fuer Technik Rapperswil
                      4:  *
                      5:  * Copyright (C) 2013 Martin Willi
                      6:  * Copyright (C) 2013 revosec AG
                      7:  *
                      8:  * This program is free software; you can redistribute it and/or modify it
                      9:  * under the terms of the GNU General Public License as published by the
                     10:  * Free Software Foundation; either version 2 of the License, or (at your
                     11:  * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
                     12:  *
                     13:  * This program is distributed in the hope that it will be useful, but
                     14:  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
                     15:  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
                     16:  * for more details.
                     17:  */
                     18: 
                     19: #include "test_suite.h"
                     20: 
                     21: #include <utils/test.h>
                     22: #include <threading/thread.h>
                     23: #include <crypto/transform.h>
                     24: 
                     25: static transform_type_t tfs[] = {
                     26:        ENCRYPTION_ALGORITHM,
                     27:        AEAD_ALGORITHM,
                     28:        INTEGRITY_ALGORITHM,
                     29:        HASH_ALGORITHM,
                     30:        PSEUDO_RANDOM_FUNCTION,
                     31:        EXTENDED_OUTPUT_FUNCTION,
                     32:        DETERMINISTIC_RANDOM_BIT_GENERATOR,
                     33:        RANDOM_NUMBER_GENERATOR,
                     34:        DIFFIE_HELLMAN_GROUP,
                     35: };
                     36: 
                     37: START_TEST(test_vectors)
                     38: {
                     39:        enumerator_t *enumerator;
                     40:        char *plugin;
                     41:        bool success;
                     42:        u_int alg;
                     43: 
                     44:        enumerator = lib->crypto->create_verify_enumerator(lib->crypto, tfs[_i]);
                     45:        thread_cleanup_push((void*)enumerator->destroy, enumerator);
                     46:        while (enumerator->enumerate(enumerator, &alg, &plugin, &success))
                     47:        {
                     48:                ck_assert_msg(success, "test vector for %N from '%s' plugin failed",
                     49:                                          transform_get_enum_names(tfs[_i]), alg, plugin);
                     50:        }
                     51:        thread_cleanup_pop(TRUE);
                     52: }
                     53: END_TEST
                     54: 
                     55: 
                     56: Suite *vectors_suite_create()
                     57: {
                     58:        Suite *s;
                     59:        TCase *tc;
                     60: 
                     61:        s = suite_create("vectors");
                     62: 
                     63:        tc = tcase_create("transforms");
                     64:        tcase_add_loop_test(tc, test_vectors, 0, countof(tfs));
                     65:        tcase_set_timeout(tc, 30);
                     66:        suite_add_tcase(s, tc);
                     67: 
                     68:        return s;
                     69: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>