OpenSSL: Use internal keying material exporter when possible
Use SSL_export_keying_material() if possible, i.e., if OpenSSL is version 1.0.1 or newer and if client random value is used first. This allows MSK derivation with TLS-based EAP methods (apart from EAP-FAST) without exporting the master key from OpenSSL. Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
371296881a
commit
68770ccd6e
1 changed files with 13 additions and 0 deletions
|
@ -2323,6 +2323,19 @@ int tls_connection_prf(void *tls_ctx, struct tls_connection *conn,
|
||||||
const char *label, int server_random_first,
|
const char *label, int server_random_first,
|
||||||
u8 *out, size_t out_len)
|
u8 *out, size_t out_len)
|
||||||
{
|
{
|
||||||
|
#if OPENSSL_VERSION_NUMBER >= 0x10001000L
|
||||||
|
SSL *ssl;
|
||||||
|
if (conn == NULL)
|
||||||
|
return -1;
|
||||||
|
if (server_random_first)
|
||||||
|
return -1;
|
||||||
|
ssl = conn->ssl;
|
||||||
|
if (SSL_export_keying_material(ssl, out, out_len, label,
|
||||||
|
os_strlen(label), NULL, 0, 0) == 1) {
|
||||||
|
wpa_printf(MSG_DEBUG, "OpenSSL: Using internal PRF");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue