aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests/test_passhash.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/test_passhash.cpp')
-rw-r--r--src/tests/test_passhash.cpp26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/tests/test_passhash.cpp b/src/tests/test_passhash.cpp
index 126b68780..05f53780a 100644
--- a/src/tests/test_passhash.cpp
+++ b/src/tests/test_passhash.cpp
@@ -36,9 +36,8 @@ class Bcrypt_Tests : public Text_Based_Test
Test::Result result("bcrypt");
result.test_eq("correct hash accepted", Botan::check_bcrypt(password, passhash), true);
- const size_t max_level = (Test::run_long_tests() ? 14 : 11);
-
- for(size_t level = 1; level <= max_level; ++level)
+ // self-test low levels for each test password
+ for(size_t level = 4; level <= 6; ++level)
{
const std::string gen_hash = generate_bcrypt(password, Test::rng(), level);
result.test_eq("generated hash accepted", Botan::check_bcrypt(password, gen_hash), true);
@@ -46,6 +45,27 @@ class Bcrypt_Tests : public Text_Based_Test
return result;
}
+
+ std::vector<Test::Result> run_final_tests()
+ {
+ Test::Result result("bcrypt");
+
+ uint64_t start = Test::timestamp();
+
+ const std::string password = "ag00d1_2BE5ur3";
+
+ const size_t max_level = (Test::run_long_tests() ? 15 : 10);
+
+ for(size_t level = 4; level <= max_level; ++level)
+ {
+ const std::string gen_hash = generate_bcrypt(password, Test::rng(), level);
+ result.test_eq("generated hash accepted", Botan::check_bcrypt(password, gen_hash), true);
+ }
+
+ result.set_ns_consumed(Test::timestamp() - start);
+
+ return {result};
+ }
};
BOTAN_REGISTER_TEST("bcrypt", Bcrypt_Tests);