From a270f6734080a618b1c4309b918b5090adeed93e Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 7 Jul 2022 06:51:06 +0000 Subject: [PATCH] Add tls13 session fields Signed-off-by: Jerry Yu --- include/mbedtls/ssl.h | 17 +++++++++++++++++ library/ssl_misc.h | 4 ++++ 2 files changed, 21 insertions(+) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 7893edd13..24c9077b2 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1171,6 +1171,23 @@ struct mbedtls_ssl_session uint32_t MBEDTLS_PRIVATE(ticket_lifetime); /*!< ticket lifetime hint */ #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) + uint8_t MBEDTLS_PRIVATE(ticket_flags); /*!< Ticket flags */ + uint32_t MBEDTLS_PRIVATE(ticket_age_add); /*!< Randomly generated value used to obscure the age of the ticket */ + uint8_t MBEDTLS_PRIVATE(key_len); /*!< PSK key length */ + +#if defined(MBEDTLS_SHA384_C) + unsigned char MBEDTLS_PRIVATE(key)[48]; /*!< key (48 byte) */ +#elif defined(MBEDTLS_SHA256_C) + unsigned char MBEDTLS_PRIVATE(key)[32]; /*!< key (32 byte) */ +#endif /* MBEDTLS_SHA256_C */ + +#if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_CLI_C) + time_t MBEDTLS_PRIVATE(ticket_received); /*!< time ticket was received */ +#endif /* MBEDTLS_HAVE_TIME && MBEDTLS_SSL_CLI_C */ + +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ + #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) int MBEDTLS_PRIVATE(encrypt_then_mac); /*!< flag for EtM activation */ #endif diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 39a47cac7..777d44b88 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -101,6 +101,10 @@ #define MBEDTLS_SSL_EXT_SIG_ALG_CERT ( 1 << 20 ) #define MBEDTLS_SSL_EXT_KEY_SHARE ( 1 << 21 ) +#define MBEDTLS_SSL_TICKET_FLAG_ALLOW_EARLY_DATA ( 1 << 0 ) +#define MBEDTLS_SSL_TICKET_FLAG_ALLOW_DHE_RESUMPTION ( 1 << 1 ) +#define MBEDTLS_SSL_TICKET_FLAG_ALLOW_PSK_RESUMPTION ( 1 << 2 ) + /* * Helper macros for function call with return check. */