forked from wolfSSL/wolfssl
Merge pull request #530 from ejohnstown/dtls-ticket
DTLS and Session Ticket fix
This commit is contained in:
@@ -18200,13 +18200,6 @@ int DoSessionTicket(WOLFSSL* ssl,
|
|||||||
word32 length = SESSION_HINT_SZ + LENGTH_SZ;
|
word32 length = SESSION_HINT_SZ + LENGTH_SZ;
|
||||||
word32 idx = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ;
|
word32 idx = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ;
|
||||||
|
|
||||||
#ifdef WOLFSSL_DTLS
|
|
||||||
if (ssl->options.dtls) {
|
|
||||||
length += DTLS_RECORD_EXTRA;
|
|
||||||
idx += DTLS_RECORD_EXTRA;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (ssl->options.createTicket) {
|
if (ssl->options.createTicket) {
|
||||||
ret = CreateTicket(ssl);
|
ret = CreateTicket(ssl);
|
||||||
if (ret != 0) return ret;
|
if (ret != 0) return ret;
|
||||||
@@ -18215,6 +18208,12 @@ int DoSessionTicket(WOLFSSL* ssl,
|
|||||||
length += ssl->session.ticketLen;
|
length += ssl->session.ticketLen;
|
||||||
sendSz = length + HANDSHAKE_HEADER_SZ + RECORD_HEADER_SZ;
|
sendSz = length + HANDSHAKE_HEADER_SZ + RECORD_HEADER_SZ;
|
||||||
|
|
||||||
|
#ifdef WOLFSSL_DTLS
|
||||||
|
if (ssl->options.dtls) {
|
||||||
|
sendSz += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
|
||||||
|
idx += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
/* check for available size */
|
/* check for available size */
|
||||||
if ((ret = CheckAvailableSize(ssl, sendSz)) != 0)
|
if ((ret = CheckAvailableSize(ssl, sendSz)) != 0)
|
||||||
return ret;
|
return ret;
|
||||||
@@ -18237,6 +18236,13 @@ int DoSessionTicket(WOLFSSL* ssl,
|
|||||||
XMEMCPY(output + idx, ssl->session.ticket, ssl->session.ticketLen);
|
XMEMCPY(output + idx, ssl->session.ticket, ssl->session.ticketLen);
|
||||||
/* idx += ssl->session.ticketLen; */
|
/* idx += ssl->session.ticketLen; */
|
||||||
|
|
||||||
|
#ifdef WOLFSSL_DTLS
|
||||||
|
if (ssl->options.dtls) {
|
||||||
|
if ((ret = DtlsPoolSave(ssl, output, sendSz)) != 0)
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
ret = HashOutput(ssl, output, sendSz, 0);
|
ret = HashOutput(ssl, output, sendSz, 0);
|
||||||
if (ret != 0) return ret;
|
if (ret != 0) return ret;
|
||||||
ssl->buffers.outputBuffer.length += sendSz;
|
ssl->buffers.outputBuffer.length += sendSz;
|
||||||
|
Reference in New Issue
Block a user