Botan
1.11.15
|
#include <kdf2.h>
Public Types | |
typedef SCAN_Name | Spec |
Public Member Functions | |
KDF * | clone () const override |
secure_vector< byte > | derive_key (size_t key_len, const byte secret[], size_t secret_len, const byte salt[], size_t salt_len) const |
secure_vector< byte > | derive_key (size_t key_len, const secure_vector< byte > &secret, const std::string &salt="") const |
template<typename Alloc , typename Alloc2 > | |
secure_vector< byte > | derive_key (size_t key_len, const std::vector< byte, Alloc > &secret, const std::vector< byte, Alloc2 > &salt) const |
secure_vector< byte > | derive_key (size_t key_len, const secure_vector< byte > &secret, const byte salt[], size_t salt_len) const |
secure_vector< byte > | derive_key (size_t key_len, const byte secret[], size_t secret_len, const std::string &salt="") const |
size_t | kdf (byte key[], size_t key_len, const byte secret[], size_t secret_len, const byte salt[], size_t salt_len) const override |
KDF2 (HashFunction *h) | |
std::string | name () const override |
typedef SCAN_Name Botan::KDF::Spec [inherited] |
Botan::KDF2::KDF2 | ( | HashFunction * | h | ) | [inline] |
KDF* Botan::KDF2::clone | ( | ) | const [inline, override, virtual] |
secure_vector<byte> Botan::KDF::derive_key | ( | size_t | key_len, |
const byte | secret[], | ||
size_t | secret_len, | ||
const byte | salt[], | ||
size_t | salt_len | ||
) | const [inline, inherited] |
Derive a key
key_len | the desired output length in bytes |
secret | the secret input |
secret_len | size of secret in bytes |
salt | a diversifier |
salt_len | size of salt in bytes |
Definition at line 41 of file kdf.h.
{ secure_vector<byte> key(key_len); key.resize(kdf(&key[0], key.size(), secret, secret_len, salt, salt_len)); return key; }
secure_vector<byte> Botan::KDF::derive_key | ( | size_t | key_len, |
const secure_vector< byte > & | secret, | ||
const std::string & | salt = "" |
||
) | const [inline, inherited] |
Derive a key
key_len | the desired output length in bytes |
secret | the secret input |
salt | a diversifier |
Definition at line 58 of file kdf.h.
{ return derive_key(key_len, &secret[0], secret.size(), reinterpret_cast<const byte*>(salt.data()), salt.length()); }
secure_vector<byte> Botan::KDF::derive_key | ( | size_t | key_len, |
const std::vector< byte, Alloc > & | secret, | ||
const std::vector< byte, Alloc2 > & | salt | ||
) | const [inline, inherited] |
Derive a key
key_len | the desired output length in bytes |
secret | the secret input |
salt | a diversifier |
Definition at line 74 of file kdf.h.
{ return derive_key(key_len, &secret[0], secret.size(), &salt[0], salt.size()); }
secure_vector<byte> Botan::KDF::derive_key | ( | size_t | key_len, |
const secure_vector< byte > & | secret, | ||
const byte | salt[], | ||
size_t | salt_len | ||
) | const [inline, inherited] |
Derive a key
key_len | the desired output length in bytes |
secret | the secret input |
salt | a diversifier |
salt_len | size of salt in bytes |
Definition at line 90 of file kdf.h.
{ return derive_key(key_len, &secret[0], secret.size(), salt, salt_len); }
secure_vector<byte> Botan::KDF::derive_key | ( | size_t | key_len, |
const byte | secret[], | ||
size_t | secret_len, | ||
const std::string & | salt = "" |
||
) | const [inline, inherited] |
Derive a key
key_len | the desired output length in bytes |
secret | the secret input |
secret_len | size of secret in bytes |
salt | a diversifier |
Definition at line 107 of file kdf.h.
{ return derive_key(key_len, secret, secret_len, reinterpret_cast<const byte*>(salt.data()), salt.length()); }
size_t Botan::KDF2::kdf | ( | byte | key[], |
size_t | key_len, | ||
const byte | secret[], | ||
size_t | secret_len, | ||
const byte | salt[], | ||
size_t | salt_len | ||
) | const [override, virtual] |
Implements Botan::KDF.
Definition at line 15 of file kdf2.cpp.
References Botan::copy_mem().
{ u32bit counter = 1; secure_vector<byte> h; size_t offset = 0; while(offset != key_len && counter != 0) { m_hash->update(secret, secret_len); m_hash->update_be(counter++); m_hash->update(salt, salt_len); m_hash->final(h); const size_t added = std::min(h.size(), key_len - offset); copy_mem(&key[offset], &h[0], added); offset += added; } return offset; }
std::string Botan::KDF2::name | ( | ) | const [inline, override, virtual] |
Implements Botan::KDF.
Definition at line 22 of file kdf2.h.
References m_hash.
{ return "KDF2(" + m_hash->name() + ")"; }