Merge pull request #1772 from SparkiDev/tls13_point_ext

Send EC poiint format extension if downgradable from TLS 1.3
pull/1775/head
toddouska 2018-08-21 12:27:10 -07:00 committed by GitHub
commit e635e49635
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 20 deletions

View File

@ -9032,28 +9032,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 */