8 #include <botan/tls_session_key.h>     9 #include <botan/prf_ssl3.h>    10 #include <botan/prf_tls.h>    11 #include <botan/lookup.h>    82    salt += client_random;
    83    salt += server_random;
    85    master_sec = prf.
derive_key(48, pre_master, salt);
    88    salt += server_random;
    89    salt += client_random;
    91    return prf.
derive_key(prf_gen, master_sec, salt);
   102    const byte MASTER_SECRET_MAGIC[] = {
   103       0x6D, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x73, 0x65, 0x63, 0x72, 0x65,
   105    const byte KEY_GEN_MAGIC[] = {
   106       0x6B, 0x65, 0x79, 0x20, 0x65, 0x78, 0x70, 0x61, 0x6E, 0x73, 0x69, 0x6F,
   112    salt += std::make_pair(MASTER_SECRET_MAGIC, 
sizeof(MASTER_SECRET_MAGIC));
   113    salt += client_random;
   114    salt += server_random;
   116    master_sec = prf.
derive_key(48, pre_master, salt);
   119    salt += std::make_pair(KEY_GEN_MAGIC, 
sizeof(KEY_GEN_MAGIC));
   120    salt += server_random;
   121    salt += client_random;
   123    return prf.
derive_key(prf_gen, master_sec, salt);
   140    size_t cipher_ivlen = 0;
   144    const size_t prf_gen = 2 * (mac_keylen + cipher_keylen + cipher_ivlen);
   147       ssl3_keygen(prf_gen, pre_master_secret, c_random, s_random) :
   148       tls1_keygen(prf_gen, pre_master_secret, c_random, s_random);
   153    key_data += mac_keylen;
   156    key_data += mac_keylen;
   159    key_data += cipher_keylen;
   162    key_data += cipher_keylen;
   165    key_data += cipher_ivlen;
 SymmetricKey server_mac_key() const
SymmetricKey client_mac_key() const
SecureVector< byte > derive_key(size_t key_len, const MemoryRegion< byte > &secret, const std::string &salt="") const
std::string mac_algo() const
std::invalid_argument Invalid_Argument
InitializationVector client_iv() const
const byte * begin() const
SymmetricKey server_cipher_key() const
SymmetricKey client_cipher_key() const
size_t block_size_of(const std::string &name)
InitializationVector server_iv() const
std::string cipher_algo() const
bool have_block_cipher(const std::string &algo_spec)
size_t cipher_keylen() const
SecureVector< byte > master_secret() const
size_t output_length_of(const std::string &name)
OctetString InitializationVector