11#include <botan/symkey.h> 
   44      static std::unique_ptr<PBKDF> 
create(std::string_view algo_spec, std::string_view provider = 
"");
 
   52      static std::unique_ptr<PBKDF> 
create_or_throw(std::string_view algo_spec, std::string_view provider = 
"");
 
   57      static std::vector<std::string> 
providers(std::string_view algo_spec);
 
   72      virtual std::string 
name() 
const = 0;
 
   91      virtual size_t pbkdf(uint8_t out[],
 
   93                           std::string_view passphrase,
 
   97                           std::chrono::milliseconds msec) 
const = 0;
 
  111                            std::string_view passphrase,
 
  112                            const uint8_t salt[],
 
  114                            size_t iterations) 
const;
 
  130                       std::string_view passphrase,
 
  131                       const uint8_t salt[],
 
  133                       std::chrono::milliseconds msec,
 
  134                       size_t& iterations) 
const;
 
  147         size_t out_len, std::string_view passphrase, 
const uint8_t salt[], 
size_t salt_len, 
size_t iterations) 
const;
 
  162                                         std::string_view passphrase,
 
  163                                         const uint8_t salt[],
 
  165                                         std::chrono::milliseconds msec,
 
  166                                         size_t& iterations) 
const;
 
  179         size_t out_len, std::string_view passphrase, 
const uint8_t salt[], 
size_t salt_len, 
size_t iterations)
 const {
 
 
  190      template <
typename Alloc>
 
  192                             std::string_view passphrase,
 
  193                             const std::vector<uint8_t, Alloc>& salt,
 
  194                             size_t iterations)
 const {
 
 
  208                             std::string_view passphrase,
 
  209                             const uint8_t salt[],
 
  211                             std::chrono::milliseconds msec,
 
  212                             size_t& iterations)
 const {
 
 
  224      template <
typename Alloc>
 
  226                             std::string_view passphrase,
 
  227                             const std::vector<uint8_t, Alloc>& salt,
 
  228                             std::chrono::milliseconds msec,
 
  229                             size_t& iterations)
 const {
 
 
 
  246inline 
PBKDF* 
get_pbkdf(std::string_view algo_spec, std::string_view provider = 
"") {
 
 
#define BOTAN_DEPRECATED_HEADER(hdr)
 
#define BOTAN_PUBLIC_API(maj, min)
 
#define BOTAN_DEPRECATED(msg)
 
static std::vector< std::string > providers(std::string_view algo_spec)
 
OctetString derive_key(size_t out_len, std::string_view passphrase, const std::vector< uint8_t, Alloc > &salt, size_t iterations) const
 
OctetString derive_key(size_t out_len, std::string_view passphrase, const uint8_t salt[], size_t salt_len, size_t iterations) const
 
virtual std::unique_ptr< PBKDF > new_object() const =0
 
static std::unique_ptr< PBKDF > create_or_throw(std::string_view algo_spec, std::string_view provider="")
 
virtual size_t pbkdf(uint8_t out[], size_t out_len, std::string_view passphrase, const uint8_t salt[], size_t salt_len, size_t iterations, std::chrono::milliseconds msec) const =0
 
void pbkdf_iterations(uint8_t out[], size_t out_len, std::string_view passphrase, const uint8_t salt[], size_t salt_len, size_t iterations) const
 
void pbkdf_timed(uint8_t out[], size_t out_len, std::string_view passphrase, const uint8_t salt[], size_t salt_len, std::chrono::milliseconds msec, size_t &iterations) const
 
virtual std::string name() const =0
 
static std::unique_ptr< PBKDF > create(std::string_view algo_spec, std::string_view provider="")
 
OctetString derive_key(size_t out_len, std::string_view passphrase, const uint8_t salt[], size_t salt_len, std::chrono::milliseconds msec, size_t &iterations) const
 
OctetString derive_key(size_t out_len, std::string_view passphrase, const std::vector< uint8_t, Alloc > &salt, std::chrono::milliseconds msec, size_t &iterations) const
 
PBKDF * get_pbkdf(std::string_view algo_spec, std::string_view provider="")
 
PBKDF * get_s2k(std::string_view algo_spec)
 
std::vector< T, secure_allocator< T > > secure_vector