File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -27549,6 +27549,9 @@ const char* wolfSSL_ERR_reason_error_string(unsigned long e)
2754927549
2755027550 case WOLFSSL_EVP_R_PRIVATE_KEY_DECODE_ERROR:
2755127551 return "Private key decode error (EVP)";
27552+
27553+ case SESSION_TICKET_NONCE_OVERFLOW:
27554+ return "Session ticket nonce overflow";
2755227555 }
2755327556
2755427557 return "unknown error number";
Original file line number Diff line number Diff line change @@ -12159,6 +12159,13 @@ static int SendTls13NewSessionTicket(WOLFSSL* ssl)
1215912159 if (ssl->error != WC_NO_ERR_TRACE(WC_PENDING_E))
1216012160 #endif
1216112161 {
12162+ if (ssl->session->ticketNonce.data[0] == 255) {
12163+ /* RFC8446 Section 4.6.1: Each ticket must have a unique nonce
12164+ * value. As the nonce is only a single byte, we have to prevent
12165+ * the overflow and abort. */
12166+ return SESSION_TICKET_NONCE_OVERFLOW;
12167+ }
12168+ else
1216212169 ssl->session->ticketNonce.data[0]++;
1216312170 }
1216412171
Original file line number Diff line number Diff line change @@ -238,7 +238,9 @@ enum wolfSSL_ErrorCodes {
238238 CRYPTO_POLICY_FORBIDDEN = -516 , /* operation forbidden by system
239239 * crypto-policy */
240240
241- WOLFSSL_LAST_E = -516
241+ SESSION_TICKET_NONCE_OVERFLOW = -517 , /* Session ticket nonce overflow */
242+
243+ WOLFSSL_LAST_E = -517
242244
243245 /* codes -1000 to -1999 are reserved for wolfCrypt. */
244246};
You can’t perform that action at this time.
0 commit comments