7 #ifndef BOTAN_PWDHASH_H_
8 #define BOTAN_PWDHASH_H_
10 #include <botan/types.h>
29 virtual std::string
to_string()
const = 0;
34 virtual size_t iterations()
const = 0;
74 virtual void derive_key(uint8_t out[],
size_t out_len,
75 const char* password,
size_t password_len,
76 const uint8_t salt[],
size_t salt_len)
const = 0;
89 static std::unique_ptr<PasswordHashFamily> create(
const std::string& algo_spec,
90 const std::string& provider =
"");
97 static std::unique_ptr<PasswordHashFamily>
98 create_or_throw(
const std::string& algo_spec,
99 const std::string& provider =
"");
104 static std::vector<std::string> providers(
const std::string& algo_spec);
111 virtual std::string
name()
const = 0;
124 virtual std::unique_ptr<PasswordHash> tune(
size_t output_length,
125 std::chrono::milliseconds msec,
126 size_t max_memory_usage_mb = 0)
const = 0;
133 virtual std::unique_ptr<PasswordHash> default_params()
const = 0;
142 virtual std::unique_ptr<PasswordHash> from_iterations(
size_t iterations)
const = 0;
154 virtual std::unique_ptr<PasswordHash> from_params(
157 size_t i3 = 0)
const = 0;
virtual size_t memory_param() const
#define BOTAN_PUBLIC_API(maj, min)
std::string to_string(ErrorType type)
Convert an ErrorType to string.
virtual size_t total_memory_usage() const
virtual size_t parallelism() const