mirror of
https://github.com/curl/curl.git
synced 2026-06-24 14:45:38 +03:00
gnutls: set the preferred TLS versions in correct order
Regression since 781864bedb (curl 7.77.0)
Reported-by: civodul on github
Assisted-by: Nikos Mavrogiannopoulos
Fixes #7277
Closes #7278
This commit is contained in:
parent
6f5ff0ee04
commit
bfa0309175
1 changed files with 13 additions and 18 deletions
|
|
@ -330,6 +330,9 @@ set_ssl_version_min_max(struct Curl_easy *data,
|
|||
ssl_version_max = CURL_SSLVERSION_MAX_TLSv1_2;
|
||||
}
|
||||
}
|
||||
else if(ssl_version_max == CURL_SSLVERSION_MAX_DEFAULT) {
|
||||
ssl_version_max = CURL_SSLVERSION_MAX_TLSv1_3;
|
||||
}
|
||||
|
||||
switch(ssl_version | ssl_version_max) {
|
||||
case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_TLSv1_0:
|
||||
|
|
@ -338,11 +341,11 @@ set_ssl_version_min_max(struct Curl_easy *data,
|
|||
return CURLE_OK;
|
||||
case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_TLSv1_1:
|
||||
*prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
|
||||
"+VERS-TLS1.0:+VERS-TLS1.1";
|
||||
"+VERS-TLS1.1:+VERS-TLS1.0";
|
||||
return CURLE_OK;
|
||||
case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_TLSv1_2:
|
||||
*prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
|
||||
"+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2";
|
||||
"+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0";
|
||||
return CURLE_OK;
|
||||
case CURL_SSLVERSION_TLSv1_1 | CURL_SSLVERSION_MAX_TLSv1_1:
|
||||
*prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
|
||||
|
|
@ -350,7 +353,7 @@ set_ssl_version_min_max(struct Curl_easy *data,
|
|||
return CURLE_OK;
|
||||
case CURL_SSLVERSION_TLSv1_1 | CURL_SSLVERSION_MAX_TLSv1_2:
|
||||
*prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
|
||||
"+VERS-TLS1.1:+VERS-TLS1.2";
|
||||
"+VERS-TLS1.2:+VERS-TLS1.1";
|
||||
return CURLE_OK;
|
||||
case CURL_SSLVERSION_TLSv1_2 | CURL_SSLVERSION_MAX_TLSv1_2:
|
||||
*prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
|
||||
|
|
@ -360,25 +363,16 @@ set_ssl_version_min_max(struct Curl_easy *data,
|
|||
*prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
|
||||
"+VERS-TLS1.3";
|
||||
return CURLE_OK;
|
||||
case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_DEFAULT:
|
||||
*prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
|
||||
"+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2"
|
||||
":+VERS-TLS1.3";
|
||||
case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_TLSv1_3:
|
||||
*prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0";
|
||||
return CURLE_OK;
|
||||
case CURL_SSLVERSION_TLSv1_1 | CURL_SSLVERSION_MAX_DEFAULT:
|
||||
case CURL_SSLVERSION_TLSv1_1 | CURL_SSLVERSION_MAX_TLSv1_3:
|
||||
*prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
|
||||
"+VERS-TLS1.1:+VERS-TLS1.2"
|
||||
":+VERS-TLS1.3";
|
||||
"+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1";
|
||||
return CURLE_OK;
|
||||
case CURL_SSLVERSION_TLSv1_2 | CURL_SSLVERSION_MAX_DEFAULT:
|
||||
case CURL_SSLVERSION_TLSv1_2 | CURL_SSLVERSION_MAX_TLSv1_3:
|
||||
*prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
|
||||
"+VERS-TLS1.2"
|
||||
":+VERS-TLS1.3";
|
||||
return CURLE_OK;
|
||||
case CURL_SSLVERSION_TLSv1_3 | CURL_SSLVERSION_MAX_DEFAULT:
|
||||
*prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
|
||||
"+VERS-TLS1.2"
|
||||
":+VERS-TLS1.3";
|
||||
"+VERS-TLS1.3:+VERS-TLS1.2";
|
||||
return CURLE_OK;
|
||||
}
|
||||
|
||||
|
|
@ -608,6 +602,7 @@ gtls_connect_step1(struct Curl_easy *data,
|
|||
}
|
||||
else {
|
||||
#endif
|
||||
infof(data, "GnuTLS ciphers: %s\n", prioritylist);
|
||||
rc = gnutls_priority_set_direct(session, prioritylist, &err);
|
||||
#ifdef HAVE_GNUTLS_SRP
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue