Merge 42a303b838043e142762a8764c00850444264efb into 3bb373867917b674265067cbd38b9d252c43d014

This commit is contained in:
Nim Dorji 2026-07-20 21:00:27 +01:00 committed by GitHub
commit a7dfd76ea5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1385,6 +1385,10 @@ static int dummy_ticket_parse(void *p_ticket, mbedtls_ssl_session *session,
int ret;
((void) p_ticket);
if (len < 4) {
return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
}
if ((ret = mbedtls_ssl_session_load(session, buf + 4, len - 4)) != 0) {
return ret;
}
@ -1392,51 +1396,59 @@ static int dummy_ticket_parse(void *p_ticket, mbedtls_ssl_session *session,
switch (opt.dummy_ticket % 11) {
case 1:
return MBEDTLS_ERR_SSL_INVALID_MAC;
case 2:
return MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED;
case 3:
/* Creation time in the future. */
session->ticket_creation_time = mbedtls_ms_time() + 1000;
break;
case 4:
/* Ticket has reached the end of lifetime. */
session->ticket_creation_time = mbedtls_ms_time() -
(7 * 24 * 3600 * 1000 + 1000);
break;
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
case 5:
/* Ticket is valid, but client age is below the lower bound of the tolerance window. */
session->ticket_age_add += MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE + 4 * 1000;
/* Make sure the execution time does not affect the result */
session->ticket_age_add += MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE +
4 * 1000;
session->ticket_creation_time = mbedtls_ms_time();
break;
case 6:
/* Ticket is valid, but client age is beyond the upper bound of the tolerance window. */
session->ticket_age_add -= MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE + 4 * 1000;
/* Make sure the execution time does not affect the result */
session->ticket_age_add -= MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE +
4 * 1000;
session->ticket_creation_time = mbedtls_ms_time();
break;
case 7:
session->ticket_flags = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_NONE;
break;
case 8:
session->ticket_flags = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK;
break;
case 9:
session->ticket_flags = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL;
break;
case 10:
session->ticket_flags = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL;
break;
#endif
default:
break;
}
return ret;
}
#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_TICKET_C && MBEDTLS_HAVE_TIME */
static int parse_cipher(char *buf)
{