adds unsupported_extension behavior to THMAC

This commit is contained in:
Moisés Guimarães
2017-06-03 13:36:13 -03:00
parent cd4eb2c5b1
commit a636858a49

View File

@@ -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;