提交 1a3392c8 编写于 作者: M Matt Caswell

Fix <= TLS1.2 break

Changing the value of SSL_MAX_MASTER_KEY_LENGTH had some unexpected
side effects in the <=TLS1.2 code which apparently relies on this being
48 for interoperability. Therefore create a new define for the TLSv1.3
resumption master secret which can be up to 64 bytes.

Found through the boring test suite.
Reviewed-by: NRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2259)
上级 34254342
......@@ -76,7 +76,8 @@ extern "C" {
# define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES (512/8)
# define SSL_MAX_KEY_ARG_LENGTH 8
# define SSL_MAX_MASTER_KEY_LENGTH 64
# define SSL_MAX_MASTER_KEY_LENGTH 48
# define TLS13_MAX_RESUMPTION_MASTER_LENGTH 64
/* The maximum number of encrypt/decrypt pipelines we can support */
# define SSL_MAX_PIPELINES 32
......
......@@ -294,7 +294,7 @@ SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp,
goto err;
if (!ssl_session_memcpy(ret->master_key, &tmpl,
as->master_key, SSL_MAX_MASTER_KEY_LENGTH))
as->master_key, TLS13_MAX_RESUMPTION_MASTER_LENGTH))
goto err;
ret->master_key_length = tmpl;
......
......@@ -515,7 +515,7 @@ struct ssl_session_st {
* For <=TLS1.2 this is the master_key. For TLS1.3 this is the resumption
* master secret
*/
unsigned char master_key[SSL_MAX_MASTER_KEY_LENGTH];
unsigned char master_key[TLS13_MAX_RESUMPTION_MASTER_LENGTH];
/* session_id - valid? */
size_t session_id_length;
unsigned char session_id[SSL_MAX_SSL_SESSION_ID_LENGTH];
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册