forked from wolfSSL/wolfssl
Merge pull request #1205 from SparkiDev/tls_ext_fix
Fix TLS extension code
This commit is contained in:
@@ -20241,14 +20241,6 @@ static int DoSessionTicket(WOLFSSL* ssl, const byte* input, word32* inOutIdx,
|
|||||||
sessIdSz = 0;
|
sessIdSz = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check for avalaible size */
|
|
||||||
if ((ret = CheckAvailableSize(ssl, MAX_HELLO_SZ)) != 0)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
/* get output buffer */
|
|
||||||
output = ssl->buffers.outputBuffer.buffer +
|
|
||||||
ssl->buffers.outputBuffer.length;
|
|
||||||
|
|
||||||
sendSz = length + HANDSHAKE_HEADER_SZ + RECORD_HEADER_SZ;
|
sendSz = length + HANDSHAKE_HEADER_SZ + RECORD_HEADER_SZ;
|
||||||
#ifdef WOLFSSL_DTLS
|
#ifdef WOLFSSL_DTLS
|
||||||
if (ssl->options.dtls) {
|
if (ssl->options.dtls) {
|
||||||
@@ -20260,6 +20252,15 @@ static int DoSessionTicket(WOLFSSL* ssl, const byte* input, word32* inOutIdx,
|
|||||||
sendSz += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
|
sendSz += DTLS_RECORD_EXTRA + DTLS_HANDSHAKE_EXTRA;
|
||||||
}
|
}
|
||||||
#endif /* WOLFSSL_DTLS */
|
#endif /* WOLFSSL_DTLS */
|
||||||
|
|
||||||
|
/* check for avalaible size */
|
||||||
|
if ((ret = CheckAvailableSize(ssl, sendSz)) != 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
/* get output buffer */
|
||||||
|
output = ssl->buffers.outputBuffer.buffer +
|
||||||
|
ssl->buffers.outputBuffer.length;
|
||||||
|
|
||||||
AddHeaders(output, length, server_hello, ssl);
|
AddHeaders(output, length, server_hello, ssl);
|
||||||
|
|
||||||
/* now write to output */
|
/* now write to output */
|
||||||
|
14
src/tls.c
14
src/tls.c
@@ -5250,7 +5250,7 @@ static word16 TLSX_KeyShare_GetSize(KeyShareEntry* list, byte msgType)
|
|||||||
if (!isRequest && current->key == NULL)
|
if (!isRequest && current->key == NULL)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
len += OPAQUE16_LEN + OPAQUE16_LEN + current->keLen;
|
len += KE_GROUP_LEN + OPAQUE16_LEN + current->keLen;
|
||||||
}
|
}
|
||||||
|
|
||||||
return len;
|
return len;
|
||||||
@@ -8085,6 +8085,12 @@ word16 TLSX_GetResponseSize(WOLFSSL* ssl, byte msgType)
|
|||||||
TURN_OFF(semaphore, TLSX_ToSemaphore(TLSX_KEY_SHARE));
|
TURN_OFF(semaphore, TLSX_ToSemaphore(TLSX_KEY_SHARE));
|
||||||
#if defined(HAVE_SESSION_TICKET) || !defined(NO_PSK)
|
#if defined(HAVE_SESSION_TICKET) || !defined(NO_PSK)
|
||||||
TURN_OFF(semaphore, TLSX_ToSemaphore(TLSX_PRE_SHARED_KEY));
|
TURN_OFF(semaphore, TLSX_ToSemaphore(TLSX_PRE_SHARED_KEY));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
TURN_ON(semaphore, TLSX_ToSemaphore(TLSX_KEY_SHARE));
|
||||||
|
#if defined(HAVE_SESSION_TICKET) || !defined(NO_PSK)
|
||||||
|
TURN_ON(semaphore, TLSX_ToSemaphore(TLSX_PRE_SHARED_KEY));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -8166,6 +8172,12 @@ word16 TLSX_WriteResponse(WOLFSSL *ssl, byte* output, byte msgType)
|
|||||||
TURN_OFF(semaphore, TLSX_ToSemaphore(TLSX_KEY_SHARE));
|
TURN_OFF(semaphore, TLSX_ToSemaphore(TLSX_KEY_SHARE));
|
||||||
#if defined(HAVE_SESSION_TICKET) || !defined(NO_PSK)
|
#if defined(HAVE_SESSION_TICKET) || !defined(NO_PSK)
|
||||||
TURN_OFF(semaphore, TLSX_ToSemaphore(TLSX_PRE_SHARED_KEY));
|
TURN_OFF(semaphore, TLSX_ToSemaphore(TLSX_PRE_SHARED_KEY));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
TURN_ON(semaphore, TLSX_ToSemaphore(TLSX_KEY_SHARE));
|
||||||
|
#if defined(HAVE_SESSION_TICKET) || !defined(NO_PSK)
|
||||||
|
TURN_ON(semaphore, TLSX_ToSemaphore(TLSX_PRE_SHARED_KEY));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1129,12 +1129,6 @@ enum Misc {
|
|||||||
MIN_RSA_SHA512_PSS_BITS = 512 * 2 + 8 * 8, /* Min key size */
|
MIN_RSA_SHA512_PSS_BITS = 512 * 2 + 8 * 8, /* Min key size */
|
||||||
MIN_RSA_SHA384_PSS_BITS = 384 * 2 + 8 * 8, /* Min key size */
|
MIN_RSA_SHA384_PSS_BITS = 384 * 2 + 8 * 8, /* Min key size */
|
||||||
|
|
||||||
#ifdef HAVE_QSH
|
|
||||||
/* qsh handshake sends 600+ size keys over hello extensions */
|
|
||||||
MAX_HELLO_SZ = 2048, /* max client or server hello */
|
|
||||||
#else
|
|
||||||
MAX_HELLO_SZ = 128, /* max client or server hello */
|
|
||||||
#endif
|
|
||||||
MAX_CERT_VERIFY_SZ = 1024, /* max */
|
MAX_CERT_VERIFY_SZ = 1024, /* max */
|
||||||
CLIENT_HELLO_FIRST = 35, /* Protocol + RAN_LEN + sizeof(id_len) */
|
CLIENT_HELLO_FIRST = 35, /* Protocol + RAN_LEN + sizeof(id_len) */
|
||||||
MAX_SUITE_NAME = 48, /* maximum length of cipher suite string */
|
MAX_SUITE_NAME = 48, /* maximum length of cipher suite string */
|
||||||
|
Reference in New Issue
Block a user