]>
git.ipfire.org Git - thirdparty/strongswan.git/blob - src/libstrongswan/tests/suites/test_iv_gen.c
2 * Copyright (C) 2015 Tobias Brunner
4 * Copyright (C) secunet Security Networks AG
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>.
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
17 #include "test_suite.h"
19 #include <crypto/iv/iv_gen_seq.h>
20 #include <utils/test.h>
22 START_TEST(test_iv_gen_seq
)
25 uint64_t iv0
, iv1_1
, iv1_2
;
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
);
40 START_TEST(test_iv_gen_seq_len
)
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
);
61 Suite
*iv_gen_suite_create()
66 s
= suite_create("iv-gen");
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
);