diff --git a/src/internal.c b/src/internal.c index f3adef06d..d00bd97b1 100644 --- a/src/internal.c +++ b/src/internal.c @@ -33473,7 +33473,12 @@ static int DoSessionTicket(WOLFSSL* ssl, const byte* input, word32* inOutIdx, et = (ExternalTicket*)ssl->session->ticket; it = (InternalTicket*)et->enc_ticket; - XMEMSET(et, 0, sizeof(*et)); + #ifdef WOLFSSL_ASYNC_CRYPT + if (ssl->error != WC_PENDING_E) + #endif + { + XMEMSET(et, 0, sizeof(*et)); + } /* build internal */ it->pv.major = ssl->version.major; diff --git a/src/tls13.c b/src/tls13.c index 2506f45c3..e2d058019 100644 --- a/src/tls13.c +++ b/src/tls13.c @@ -9127,8 +9127,13 @@ static int SendTls13NewSessionTicket(WOLFSSL* ssl) ssl->session->ticketNonce.len = DEF_TICKET_NONCE_SZ; ssl->session->ticketNonce.data[0] = 0; } - else - ssl->session->ticketNonce.data[0]++; + else + #ifdef WOLFSSL_ASYNC_CRYPT + if (ssl->error != WC_PENDING_E) + #endif + { + ssl->session->ticketNonce.data[0]++; + } if (!ssl->options.noTicketTls13) { if ((ret = CreateTicket(ssl)) != 0)