8 #ifndef BOTAN_SCRYPT_H_
9 #define BOTAN_SCRYPT_H_
11 #include <botan/pwdhash.h>
23 Scrypt(
size_t N,
size_t r,
size_t p);
32 const char* password,
size_t password_len,
33 const uint8_t salt[],
size_t salt_len)
const override;
37 size_t N()
const {
return m_N; }
38 size_t r()
const {
return m_r; }
39 size_t p()
const {
return m_p; }
56 std::string
name()
const override;
58 std::unique_ptr<PasswordHash>
tune(
size_t output_length,
59 std::chrono::milliseconds msec,
60 size_t max_memory)
const override;
64 std::unique_ptr<PasswordHash>
from_iterations(
size_t iter)
const override;
67 size_t N,
size_t r,
size_t p)
const override;
88 const
char* password,
size_t password_len,
89 const uint8_t salt[],
size_t salt_len,
90 size_t N,
size_t r,
size_t p);
109 inline
void scrypt(uint8_t output[],
size_t output_len,
110 const
std::
string& password,
111 const uint8_t salt[],
size_t salt_len,
112 size_t N,
size_t r,
size_t p)
114 return scrypt(output, output_len,
115 password.c_str(), password.size(),
122 return 128 * r * (N + p);
void scrypt(uint8_t output[], size_t output_len, const std::string &password, const uint8_t salt[], size_t salt_len, size_t N, size_t r, size_t p)
virtual std::unique_ptr< PasswordHash > tune(size_t output_length, std::chrono::milliseconds msec, size_t max_memory_usage_mb=0) const =0
virtual void derive_key(uint8_t out[], size_t out_len, const char *password, size_t password_len, const uint8_t salt[], size_t salt_len) const =0
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
size_t parallelism() const override
virtual size_t total_memory_usage() const
size_t scrypt_memory_usage(size_t N, size_t r, size_t p)
virtual std::unique_ptr< PasswordHash > from_iterations(size_t iterations) const =0
virtual std::string to_string() const =0
size_t memory_param() const override
size_t iterations() const override
virtual std::unique_ptr< PasswordHash > default_params() const =0
virtual std::string name() const =0
#define BOTAN_FUTURE_INTERNAL_HEADER(hdr)
virtual std::unique_ptr< PasswordHash > from_params(size_t i1, size_t i2=0, size_t i3=0) const =0