#endif
{
+ size_t master_key_len;
uint8_t seed[64 + (2 * SSL3_RANDOM_SIZE)];
uint8_t buf[4 * EAP_TLS_MPPE_KEY_LEN];
+ uint8_t master_key[SSL_MAX_MASTER_KEY_LENGTH];
p = seed;
-
memcpy(p, prf_label, prf_size);
p += prf_size;
(void) SSL_get_server_random(s, p, SSL3_RANDOM_SIZE);
prf_size += SSL3_RANDOM_SIZE;
- PRF(s->session->master_key, s->session->master_key_length,
- seed, prf_size, out, buf, sizeof(out));
+ master_key_len = SSL_SESSION_get_master_key(SSL_get_session(s), master_key, sizeof(master_key));
+ PRF(master_key, master_key_len, seed, prf_size, out, buf, sizeof(out));
}
RDEBUG2("Adding session keys");
*/
void eap_tls_gen_challenge(SSL *s, uint8_t *buffer, uint8_t *scratch, size_t size, char const *prf_label)
{
+ uint8_t *p;
+ size_t len, master_key_len;
+ uint8_t master_key[SSL_MAX_MASTER_KEY_LENGTH];
uint8_t seed[128 + 2*SSL3_RANDOM_SIZE];
- uint8_t *p = seed;
- size_t len;
#if OPENSSL_VERSION_NUMBER >= 0x10001000L
if (SSL_export_keying_material(s, buffer, size, prf_label,
len = strlen(prf_label);
if (len > 128) len = 128;
+ p = seed;
memcpy(p, prf_label, len);
p += len;
(void) SSL_get_server_random(s, p, SSL3_RANDOM_SIZE);
p += SSL3_RANDOM_SIZE;
- PRF(s->session->master_key, s->session->master_key_length,
- seed, p - seed, buffer, scratch, size);
+ master_key_len = SSL_SESSION_get_master_key(SSL_get_session(s), master_key, sizeof(master_key));
+ PRF(master_key, master_key_len, seed, p - seed, buffer, scratch, size);
}
{
uint8_t *p;
size_t len, master_key_len;
- const SSL_SESSION *session;
uint8_t seed[128 + 2*SSL3_RANDOM_SIZE];
uint8_t master_key[SSL_MAX_MASTER_KEY_LENGTH];
(void) SSL_get_client_random(s, p, SSL3_RANDOM_SIZE);
p += SSL3_RANDOM_SIZE;
- SSL_get_session(s);
- master_key_len = SSL_SESSION_get_master_key(session, master_key, sizeof(master_key));
+ master_key_len = SSL_SESSION_get_master_key(SSL_get_session(s), master_key, sizeof(master_key));
PRF(master_key, master_key_len, seed, p - seed, buffer, scratch, size);
}