]> git.ipfire.org Git - thirdparty/strongswan.git/blob - src/libstrongswan/tests/suites/test_iv_gen.c
Update copyright headers after acquisition by secunet
[thirdparty/strongswan.git] / src / libstrongswan / tests / suites / test_iv_gen.c
1 /*
2 * Copyright (C) 2015 Tobias Brunner
3 *
4 * Copyright (C) secunet Security Networks AG
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2 of the License, or (at your
9 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * for more details.
15 */
16
17 #include "test_suite.h"
18
19 #include <crypto/iv/iv_gen_seq.h>
20 #include <utils/test.h>
21
22 START_TEST(test_iv_gen_seq)
23 {
24 iv_gen_t *iv_gen;
25 uint64_t iv0, iv1_1, iv1_2;
26
27 iv_gen = iv_gen_seq_create();
28 ck_assert(iv_gen->get_iv(iv_gen, 0, 8, (uint8_t*)&iv0));
29 ck_assert(iv_gen->get_iv(iv_gen, 1, 8, (uint8_t*)&iv1_1));
30 ck_assert(iv0 != iv1_1);
31 /* every sequence number may be used twice, but results in a different IV */
32 ck_assert(iv_gen->get_iv(iv_gen, 1, 8, (uint8_t*)&iv1_2));
33 ck_assert(iv0 != iv1_2);
34 ck_assert(iv1_1 != iv1_2);
35 ck_assert(!iv_gen->get_iv(iv_gen, 1, 8, (uint8_t*)&iv1_2));
36 iv_gen->destroy(iv_gen);
37 }
38 END_TEST
39
40 START_TEST(test_iv_gen_seq_len)
41 {
42 iv_gen_t *iv_gen;
43 uint64_t iv;
44 uint8_t buf[9];
45
46 iv_gen = iv_gen_seq_create();
47 ck_assert(!iv_gen->get_iv(iv_gen, 0, 0, (uint8_t*)&iv));
48 ck_assert(!iv_gen->get_iv(iv_gen, 0, 1, (uint8_t*)&iv));
49 ck_assert(!iv_gen->get_iv(iv_gen, 0, 2, (uint8_t*)&iv));
50 ck_assert(!iv_gen->get_iv(iv_gen, 0, 3, (uint8_t*)&iv));
51 ck_assert(!iv_gen->get_iv(iv_gen, 0, 4, (uint8_t*)&iv));
52 ck_assert(!iv_gen->get_iv(iv_gen, 0, 5, (uint8_t*)&iv));
53 ck_assert(!iv_gen->get_iv(iv_gen, 0, 6, (uint8_t*)&iv));
54 ck_assert(!iv_gen->get_iv(iv_gen, 0, 7, (uint8_t*)&iv));
55 ck_assert(iv_gen->get_iv(iv_gen, 0, 8, (uint8_t*)&iv));
56 ck_assert(iv_gen->get_iv(iv_gen, 0, 9, buf));
57 iv_gen->destroy(iv_gen);
58 }
59 END_TEST
60
61 Suite *iv_gen_suite_create()
62 {
63 Suite *s;
64 TCase *tc;
65
66 s = suite_create("iv-gen");
67
68 tc = tcase_create("iv-gen-seq");
69 tcase_add_test(tc, test_iv_gen_seq);
70 tcase_add_test(tc, test_iv_gen_seq_len);
71 suite_add_tcase(s, tc);
72
73 return s;
74 }