forked from wolfSSL/wolfssl
adds unsupported_extension behavior to THMAC
This commit is contained in:
19
src/tls.c
19
src/tls.c
@@ -2056,21 +2056,23 @@ int TLSX_UseMaxFragment(TLSX** extensions, byte mfl, void* heap)
|
|||||||
static int TLSX_THM_Parse(WOLFSSL* ssl, byte* input, word16 length,
|
static int TLSX_THM_Parse(WOLFSSL* ssl, byte* input, word16 length,
|
||||||
byte isRequest)
|
byte isRequest)
|
||||||
{
|
{
|
||||||
(void)isRequest;
|
|
||||||
|
|
||||||
if (length != 0 || input == NULL)
|
if (length != 0 || input == NULL)
|
||||||
return BUFFER_ERROR;
|
return BUFFER_ERROR;
|
||||||
|
|
||||||
|
if (!isRequest) {
|
||||||
|
if (TLSX_CheckUnsupportedExtension(ssl, TLSX_TRUNCATED_HMAC))
|
||||||
|
return TLSX_HandleUnsupportedExtension(ssl);
|
||||||
|
}
|
||||||
|
else {
|
||||||
#ifndef NO_WOLFSSL_SERVER
|
#ifndef NO_WOLFSSL_SERVER
|
||||||
if (isRequest) {
|
int ret = TLSX_UseTruncatedHMAC(&ssl->extensions, ssl->heap);
|
||||||
int r = TLSX_UseTruncatedHMAC(&ssl->extensions, ssl->heap);
|
|
||||||
|
|
||||||
if (r != WOLFSSL_SUCCESS)
|
if (ret != WOLFSSL_SUCCESS)
|
||||||
return r; /* throw error */
|
return ret; /* throw error */
|
||||||
|
|
||||||
TLSX_SetResponse(ssl, TLSX_TRUNCATED_HMAC);
|
TLSX_SetResponse(ssl, TLSX_TRUNCATED_HMAC);
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
ssl->truncated_hmac = 1;
|
ssl->truncated_hmac = 1;
|
||||||
|
|
||||||
@@ -2084,7 +2086,8 @@ int TLSX_UseTruncatedHMAC(TLSX** extensions, void* heap)
|
|||||||
if (extensions == NULL)
|
if (extensions == NULL)
|
||||||
return BAD_FUNC_ARG;
|
return BAD_FUNC_ARG;
|
||||||
|
|
||||||
if ((ret = TLSX_Push(extensions, TLSX_TRUNCATED_HMAC, NULL, heap)) != 0)
|
ret = TLSX_Push(extensions, TLSX_TRUNCATED_HMAC, NULL, heap);
|
||||||
|
if (ret != 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
return WOLFSSL_SUCCESS;
|
return WOLFSSL_SUCCESS;
|
||||||
|
Reference in New Issue
Block a user