|
@@ -49,7 +49,8 @@ int tlsv1_server_derive_keys(struct tlsv1_server *conn,
|
|
|
os_memcpy(seed, conn->client_random, TLS_RANDOM_LEN);
|
|
|
os_memcpy(seed + TLS_RANDOM_LEN, conn->server_random,
|
|
|
TLS_RANDOM_LEN);
|
|
|
- if (tls_prf(pre_master_secret, pre_master_secret_len,
|
|
|
+ if (tls_prf(conn->rl.tls_version,
|
|
|
+ pre_master_secret, pre_master_secret_len,
|
|
|
"master secret", seed, 2 * TLS_RANDOM_LEN,
|
|
|
conn->master_secret, TLS_MASTER_SECRET_LEN)) {
|
|
|
wpa_printf(MSG_DEBUG, "TLSv1: Failed to derive "
|
|
@@ -64,7 +65,8 @@ int tlsv1_server_derive_keys(struct tlsv1_server *conn,
|
|
|
os_memcpy(seed + TLS_RANDOM_LEN, conn->client_random, TLS_RANDOM_LEN);
|
|
|
key_block_len = 2 * (conn->rl.hash_size + conn->rl.key_material_len +
|
|
|
conn->rl.iv_size);
|
|
|
- if (tls_prf(conn->master_secret, TLS_MASTER_SECRET_LEN,
|
|
|
+ if (tls_prf(conn->rl.tls_version,
|
|
|
+ conn->master_secret, TLS_MASTER_SECRET_LEN,
|
|
|
"key expansion", seed, 2 * TLS_RANDOM_LEN,
|
|
|
key_block, key_block_len)) {
|
|
|
wpa_printf(MSG_DEBUG, "TLSv1: Failed to derive key_block");
|
|
@@ -449,7 +451,8 @@ int tlsv1_server_prf(struct tlsv1_server *conn, const char *label,
|
|
|
TLS_RANDOM_LEN);
|
|
|
}
|
|
|
|
|
|
- return tls_prf(conn->master_secret, TLS_MASTER_SECRET_LEN,
|
|
|
+ return tls_prf(conn->rl.tls_version,
|
|
|
+ conn->master_secret, TLS_MASTER_SECRET_LEN,
|
|
|
label, seed, 2 * TLS_RANDOM_LEN, out, out_len);
|
|
|
}
|
|
|
|