#include <prf_tls.h>
List of all members.
Public Types |
typedef SCAN_Name | Spec |
Public Member Functions |
KDF * | clone () const |
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 |
std::string | name () const |
| TLS_PRF () |
Detailed Description
PRF used in TLS 1.0/1.1
Definition at line 19 of file prf_tls.h.
Member Typedef Documentation
Constructor & Destructor Documentation
Definition at line 26 of file prf_tls.cpp.
{
m_hmac_md5.reset(make_a<MessageAuthenticationCode>("HMAC(MD5)"));
m_hmac_sha1.reset(make_a<MessageAuthenticationCode>("HMAC(SHA-1)"));
}
Member Function Documentation
Derive a key
- Parameters:
-
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
- Parameters:
-
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());
}
template<typename Alloc , typename Alloc2 >
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
- Parameters:
-
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());
}
Derive a key
- Parameters:
-
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
- Parameters:
-
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::TLS_PRF::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 74 of file prf_tls.cpp.
{
const size_t S1_len = (secret_len + 1) / 2,
S2_len = (secret_len + 1) / 2;
const byte* S1 = secret;
const byte* S2 = secret + (secret_len - S2_len);
P_hash(key, key_len, *m_hmac_md5, S1, S1_len, salt, salt_len);
P_hash(key, key_len, *m_hmac_sha1, S2, S2_len, salt, salt_len);
return key_len;
}
The documentation for this class was generated from the following files: