From 83ff620bcd2b97b69231aba4364f0a3b03b76c0f Mon Sep 17 00:00:00 2001 From: Iker Pedrosa Date: Wed, 4 Feb 2026 10:22:29 +0100 Subject: [PATCH] tests/unit/test_chkhash.c: add SHA-256 hash validation tests Add comprehensive SHA-256 algorithm validation tests covering rounds and salt cases. Signed-off-by: Iker Pedrosa --- tests/unit/test_chkhash.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/unit/test_chkhash.c b/tests/unit/test_chkhash.c index 66a6ed601..cdd4a37b4 100644 --- a/tests/unit/test_chkhash.c +++ b/tests/unit/test_chkhash.c @@ -87,6 +87,29 @@ test_is_valid_hash_ok_sha512(void **) } +static void +test_is_valid_hash_ok_sha256(void **) +{ + // Basic SHA-256 hash: $5$ + salt + $ + 43 character hash + assert_true(is_valid_hash("$5$salt$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ")); + + // SHA-256 with rounds parameter + assert_true(is_valid_hash("$5$rounds=5000$salt$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ")); + + // SHA-256 with minimum rounds (1000) + assert_true(is_valid_hash("$5$rounds=1000$salt$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ")); + + // SHA-256 with maximum rounds (999999999) + assert_true(is_valid_hash("$5$rounds=999999999$salt$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ")); + + // SHA-256 with minimum salt length (1 character) + assert_true(is_valid_hash("$5$a$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ")); + + // SHA-256 with maximum salt length (16 characters) + assert_true(is_valid_hash("$5$sixteencharsaltx$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ")); +} + + int main(void) { @@ -94,6 +117,7 @@ main(void) cmocka_unit_test(test_is_valid_hash_ok_yescrypt), cmocka_unit_test(test_is_valid_hash_ok_bcrypt), cmocka_unit_test(test_is_valid_hash_ok_sha512), + cmocka_unit_test(test_is_valid_hash_ok_sha256), }; return cmocka_run_group_tests(tests, NULL, NULL); -- 2.47.3