pkcs11: Change how unavailable attributes like CKA_TRUSTED are handled
[strongswan.git] / src / libstrongswan / tests / suites / test_vectors.c
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 }