]> Git Repo - J-u-boot.git/blob - test/lib/test_crypt.c
Merge tag 'v2024.07-rc5' into next
[J-u-boot.git] / test / lib / test_crypt.c
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * Copyright (c) 2021 Steffen Jaeckel
4  *
5  * Unit test for crypt-style password hashing
6  */
7
8 #include <test/lib.h>
9 #include <test/test.h>
10 #include <test/ut.h>
11
12 #include <crypt.h>
13
14 /**
15  * lib_crypt() - unit test for crypt-style password hashing
16  *
17  * @uts:        unit test state
18  * Return:      0 = success, 1 = failure
19  */
20 static int lib_crypt(struct unit_test_state *uts)
21 {
22         int equals = 0;
23         int err;
24
25         err = crypt_compare("", "password", &equals);
26         ut_assertf(err != 0, "crypt_compare successful but should not\n");
27         ut_assertf(equals != 1,
28                    "crypt_compare password hash matched but should not\n");
29
30         if (IS_ENABLED(CONFIG_CRYPT_PW_SHA256)) {
31                 err = crypt_compare("$5$", "password", &equals);
32                 ut_assertf(err == 0, "crypt-sha256 not successful\n");
33                 ut_assertf(
34                         equals != 1,
35                         "crypt-sha256 password hash matched but should not\n");
36
37                 err = crypt_compare(
38                         "$5$rounds=640000$TM4lL4zXDG7F4aRX$JM7a9wmvodnA0WasjTztj6mxg.KVuk6doQ/eBhdcapB",
39                         "password", &equals);
40                 ut_assertf(err == 0, "crypt-sha256 failed: %d\n", err);
41                 ut_assertf(equals == 1,
42                            "crypt-sha256 password hash didn't match\n");
43         }
44         equals = 0;
45         if (IS_ENABLED(CONFIG_CRYPT_PW_SHA512)) {
46                 err = crypt_compare("$6$", "password", &equals);
47                 ut_assertf(err == 0, "crypt-sha512 not successful\n");
48                 ut_assertf(
49                         equals != 1,
50                         "crypt-sha512 password hash matched but should not\n");
51
52                 err = crypt_compare(
53                         "$6$rounds=640000$fCTP1F0N5JLq2eND$z5EzK5KZJA9JnOaj5d1Gg/2v6VqFOQJ3bVekWuCPauabutBt/8qzV1exJnytUyhbq3H0bSBXtodwNbtGEi/Tm/",
54                         "password", &equals);
55                 ut_assertf(err == 0, "crypt-sha512 failed: %d\n", err);
56                 ut_assertf(equals == 1,
57                            "crypt-sha512 password hash didn't match\n");
58         }
59
60         return CMD_RET_SUCCESS;
61 }
62
63 LIB_TEST(lib_crypt, 0);
This page took 0.029655 seconds and 4 git commands to generate.