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: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2259)
# 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
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;
* 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];