diff options
Diffstat (limited to 'src/tests/test_pbkdf.cpp')
-rw-r--r-- | src/tests/test_pbkdf.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/tests/test_pbkdf.cpp b/src/tests/test_pbkdf.cpp new file mode 100644 index 000000000..5d97bf0e9 --- /dev/null +++ b/src/tests/test_pbkdf.cpp @@ -0,0 +1,32 @@ +#include "tests.h" + +#include <botan/lookup.h> +#include <botan/hex.h> +#include <iostream> +#include <fstream> + +using namespace Botan; + +size_t test_pbkdf() + { + auto test = [](const std::string& input) + { + return run_tests(input, "PBKDF", "Output", true, + [](std::map<std::string, std::string> vec) + { + std::unique_ptr<PBKDF> pbkdf(get_pbkdf(vec["PBKDF"])); + + const size_t iterations = to_u32bit(vec["Iterations"]); + const size_t outlen = to_u32bit(vec["OutputLen"]); + const auto salt = hex_decode(vec["Salt"]); + const std::string pass = vec["Passphrase"]; + + const auto key = pbkdf->derive_key(outlen, pass, + &salt[0], salt.size(), + iterations).bits_of(); + return hex_encode(key); + }); + }; + + return run_tests_in_dir(TEST_DATA_DIR "pbkdf", test); + } |