Send EC poiint format extension if downgradable from TLS 1.3

pull/1772/head
Sean Parkinson 2018-08-21 09:32:38 +10:00
parent 3d16ed9c02
commit 103a0d351b
1 changed files with 8 additions and 20 deletions

View File

@ -9010,28 +9010,16 @@ int TLSX_PopulateExtensions(WOLFSSL* ssl, byte isServer)
ret = TLSX_PopulateSupportedGroups(ssl, &ssl->extensions);
if (ret != WOLFSSL_SUCCESS)
return ret;
if (!IsAtLeastTLSv1_3(ssl->version) &&
TLSX_Find(ssl->ctx->extensions,
TLSX_EC_POINT_FORMATS) == NULL &&
TLSX_Find(ssl->extensions,
TLSX_EC_POINT_FORMATS) == NULL) {
ret = TLSX_UsePointFormat(&ssl->extensions,
WOLFSSL_EC_PF_UNCOMPRESSED,
ssl->heap);
if (ret != WOLFSSL_SUCCESS)
return ret;
}
}
else if (!IsAtLeastTLSv1_3(ssl->version) &&
TLSX_Find(ssl->ctx->extensions,
TLSX_EC_POINT_FORMATS) == NULL) {
ret = TLSX_UsePointFormat(&ssl->ctx->extensions,
WOLFSSL_EC_PF_UNCOMPRESSED,
ssl->heap);
if (ret != WOLFSSL_SUCCESS)
return ret;
}
}
if ((!IsAtLeastTLSv1_3(ssl->version) || ssl->options.downgrade) &&
TLSX_Find(ssl->ctx->extensions, TLSX_EC_POINT_FORMATS) == NULL &&
TLSX_Find(ssl->extensions, TLSX_EC_POINT_FORMATS) == NULL) {
ret = TLSX_UsePointFormat(&ssl->extensions,
WOLFSSL_EC_PF_UNCOMPRESSED, ssl->heap);
if (ret != WOLFSSL_SUCCESS)
return ret;
}
#endif /* (HAVE_ECC || HAVE_CURVE25519) && HAVE_SUPPORTED_CURVES */
} /* is not server */