Annotation of embedaddon/strongswan/src/libstrongswan/tests/suites/test_vectors.c, revision 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>