提交 2221ec10 编写于 作者: T Tatsuhiro Tsujikawa 提交者: Matt Caswell

Generate exporter_master_secret after server Finished

Reviewed-by: NRich Salz <rsalz@openssl.org>
Reviewed-by: NMatt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/4944)
上级 50ea9d2b
...@@ -581,9 +581,18 @@ int tls13_change_cipher_state(SSL *s, int which) ...@@ -581,9 +581,18 @@ int tls13_change_cipher_state(SSL *s, int which)
goto err; goto err;
} }
if (label == server_application_traffic) if (label == server_application_traffic) {
memcpy(s->server_app_traffic_secret, secret, hashlen); memcpy(s->server_app_traffic_secret, secret, hashlen);
else if (label == client_application_traffic) /* Now we create the exporter master secret */
if (!tls13_hkdf_expand(s, ssl_handshake_md(s), insecret,
exporter_master_secret,
sizeof(exporter_master_secret) - 1,
hash, hashlen, s->exporter_master_secret,
hashlen)) {
/* SSLfatal() already called */
goto err;
}
} else if (label == client_application_traffic)
memcpy(s->client_app_traffic_secret, secret, hashlen); memcpy(s->client_app_traffic_secret, secret, hashlen);
if (!ssl_log_secret(s, log_label, secret, hashlen)) { if (!ssl_log_secret(s, log_label, secret, hashlen)) {
...@@ -667,7 +676,7 @@ int tls13_export_keying_material(SSL *s, unsigned char *out, size_t olen, ...@@ -667,7 +676,7 @@ int tls13_export_keying_material(SSL *s, unsigned char *out, size_t olen,
unsigned int hashsize, datalen; unsigned int hashsize, datalen;
int ret = 0; int ret = 0;
if (ctx == NULL || !SSL_is_init_finished(s)) if (ctx == NULL)
goto err; goto err;
if (!use_context) if (!use_context)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册