tls: add CURLOPT_SSL_EC_CURVES and --curves

Closes #5892
This commit is contained in:
Michael Baentsch 2020-08-29 14:09:24 +02:00 committed by Daniel Stenberg
parent a337355487
commit ede125b7b7
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
20 changed files with 131 additions and 1 deletions

View file

@ -162,6 +162,7 @@ struct OperationConfig {
char *etag_compare_file;
bool crlf;
char *customrequest;
char *ssl_ec_curves;
char *krblevel;
char *request_target;
long httpversion;

View file

@ -272,6 +272,7 @@ static const struct LongShort aliases[]= {
{"EB", "socks5-gssapi", ARG_BOOL},
{"EC", "etag-save", ARG_FILENAME},
{"ED", "etag-compare", ARG_FILENAME},
{"EE", "curves", ARG_STRING},
{"f", "fail", ARG_BOOL},
{"fa", "fail-early", ARG_BOOL},
{"fb", "styled-output", ARG_BOOL},
@ -1726,6 +1727,10 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
GetStr(&config->etag_compare_file, nextarg);
break;
case 'E':
GetStr(&config->ssl_ec_curves, nextarg);
break;
default: /* unknown flag */
return PARAM_OPTION_UNKNOWN;
}

View file

@ -94,6 +94,8 @@ static const struct helptxt helptext[] = {
"Convert LF to CRLF in upload"},
{" --crlfile <file>",
"Get a CRL list in PEM format from the given file"},
{" --curves <algorithm list>",
"(EC) TLS key exchange algorithm(s) to request "},
{"-d, --data <data>",
"HTTP POST data"},
{" --data-ascii <data>",

View file

@ -1520,6 +1520,9 @@ static CURLcode single_transfer(struct GlobalConfig *global,
if(config->pinnedpubkey)
my_setopt_str(curl, CURLOPT_PINNEDPUBLICKEY, config->pinnedpubkey);
if(config->ssl_ec_curves)
my_setopt_str(curl, CURLOPT_SSL_EC_CURVES, config->ssl_ec_curves);
if(curlinfo->features & CURL_VERSION_SSL) {
/* Check if config->cert is a PKCS#11 URI and set the
* config->cert_type if necessary */