mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-07-28 00:21:48 +03:00
tls13: srv: Fail connection if ticket lifetime exceed 7 days
Signed-off-by: Jerry Yu <jerry.h.yu@arm.com> Signed-off-by: Ronald Cron <ronald.cron@arm.com>
This commit is contained in:
@ -3271,20 +3271,21 @@ static int ssl_tls13_write_new_session_ticket_body(mbedtls_ssl_context *ssl,
|
||||
MBEDTLS_SSL_DEBUG_RET(1, "write_ticket", ret);
|
||||
return ret;
|
||||
}
|
||||
/* RFC 8446 4.6.1
|
||||
|
||||
/* RFC 8446 section 4.6.1
|
||||
*
|
||||
* ticket_lifetime: Indicates the lifetime in seconds as a 32-bit
|
||||
* unsigned integer in network byte order from the time of ticket
|
||||
* issuance. Servers MUST NOT use any value greater than
|
||||
* 604800 seconds (7 days). The value of zero indicates that the
|
||||
* ticket should be discarded immediately. Clients MUST NOT cache
|
||||
* tickets for longer than 7 days, regardless of the ticket_lifetime,
|
||||
* and MAY delete tickets earlier based on local policy. A server
|
||||
* MAY treat a ticket as valid for a shorter period of time than what
|
||||
* is stated in the ticket_lifetime.
|
||||
* unsigned integer in network byte order from the time of ticket
|
||||
* issuance. Servers MUST NOT use any value greater than
|
||||
* 604800 seconds (7 days) ...
|
||||
*/
|
||||
if (ticket_lifetime > MBEDTLS_SSL_TLS1_3_MAX_ALLOWED_TICKET_LIFETIME) {
|
||||
ticket_lifetime = MBEDTLS_SSL_TLS1_3_MAX_ALLOWED_TICKET_LIFETIME;
|
||||
MBEDTLS_SSL_DEBUG_MSG(
|
||||
1, ("Ticket lifetime (%u) is greater than 7 days.",
|
||||
(unsigned int) ticket_lifetime));
|
||||
return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
|
||||
}
|
||||
|
||||
MBEDTLS_PUT_UINT32_BE(ticket_lifetime, p, 0);
|
||||
MBEDTLS_SSL_DEBUG_MSG(3, ("ticket_lifetime: %u",
|
||||
(unsigned int) ticket_lifetime));
|
||||
|
Reference in New Issue
Block a user