8 #ifndef BOTAN_KDF_BASE_H__
9 #define BOTAN_KDF_BASE_H__
11 #include <botan/algo_base.h>
12 #include <botan/secmem.h>
13 #include <botan/types.h>
31 const std::string& salt =
"")
const;
39 template<
typename Alloc,
typename Alloc2>
41 const std::vector<byte, Alloc>& secret,
42 const std::vector<byte, Alloc2>& salt)
const
44 return derive_key(key_len, &secret[0], secret.size(),
45 &salt[0], salt.size());
58 size_t salt_len)
const;
70 const std::string& salt =
"")
const;
84 size_t salt_len)
const;
88 virtual KDF* clone()
const = 0;
91 derive(
size_t key_len,
92 const byte secret[],
size_t secret_len,
93 const byte salt[],
size_t salt_len)
const = 0;
102 virtual void mask(
const byte in[],
size_t in_len,
103 byte out[],
size_t out_len)
const = 0;