Atrinik Server  4.0
pbkdf2.c
1 /*************************************************************************
2  * Atrinik, a Multiplayer Online Role Playing Game *
3  * *
4  * Copyright (C) 2009-2014 Alex Tokar and Atrinik Development Team *
5  * *
6  * Fork from Crossfire (Multiplayer game for X-windows). *
7  * *
8  * This program is free software; you can redistribute it and/or modify *
9  * it under the terms of the GNU General Public License as published by *
10  * the Free Software Foundation; either version 2 of the License, or *
11  * (at your option) any later version. *
12  * *
13  * This program is distributed in the hope that it will be useful, *
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16  * GNU General Public License for more details. *
17  * *
18  * You should have received a copy of the GNU General Public License *
19  * along with this program; if not, write to the Free Software *
20  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
21  * *
22  * The author can be reached at admin@atrinik.org *
23  ************************************************************************/
24 
25 #include <global.h>
26 #include <check.h>
27 #include <checkstd.h>
28 #include <check_proto.h>
29 #include <toolkit/string.h>
30 #include <toolkit/pbkdf2.h>
31 
32 START_TEST(test_PKCS5_PBKDF2_HMAC_SHA2)
33 {
34  unsigned char result[32];
35  char hex[64 + 1];
36 
37  PKCS5_PBKDF2_HMAC_SHA2((unsigned char *) "Pa$$w0rd", strlen("Pa$$w0rd"),
38  (unsigned char *) "xxx", strlen("xxx"), 4096, 32, result);
39 
40  ck_assert_int_eq(string_tohex(result, 32, hex, sizeof(hex), false), 64);
41  ck_assert_str_eq(hex,
42  "1A27DBE11B730C53A42951F40026F148D65708CCF4829BA89F618CF8720BF5FA");
43 }
44 
45 END_TEST
46 
47 static Suite *suite(void)
48 {
49  Suite *s = suite_create("pbkdf2");
50  TCase *tc_core = tcase_create("Core");
51 
52  tcase_add_unchecked_fixture(tc_core, check_setup, check_teardown);
53  tcase_add_checked_fixture(tc_core, check_test_setup, check_test_teardown);
54 
55  suite_add_tcase(s, tc_core);
56  tcase_add_test(tc_core, test_PKCS5_PBKDF2_HMAC_SHA2);
57 
58  return s;
59 }
60 
61 void check_server_pbkdf2(void)
62 {
63  check_run_suite(suite(), __FILE__);
64 }