summaryrefslogtreecommitdiffstats
path: root/src/network/ssl/qsslsocket_openssl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/ssl/qsslsocket_openssl.cpp')
-rw-r--r--src/network/ssl/qsslsocket_openssl.cpp26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
index fe59d6dab29..b9a8160e99e 100644
--- a/src/network/ssl/qsslsocket_openssl.cpp
+++ b/src/network/ssl/qsslsocket_openssl.cpp
@@ -967,22 +967,22 @@ void QSslSocketPrivate::resetDefaultCiphers()
void QSslSocketPrivate::resetDefaultEllipticCurves()
{
- QList<QSslEllipticCurve> curves;
-
-#ifndef OPENSSL_NO_EC
- const size_t curveCount = q_EC_get_builtin_curves(nullptr, 0);
+ // TLSTODO: this function to be be merged into qsslsocket.cpp
+ const auto *tlsBackend = tlsBackendInUse();
+ if (!tlsBackend)
+ return;
- QVarLengthArray<EC_builtin_curve> builtinCurves(static_cast<int>(curveCount));
+ auto ids = tlsBackend->ellipticCurvesIds();
+ if (!ids.size())
+ return;
- if (q_EC_get_builtin_curves(builtinCurves.data(), curveCount) == curveCount) {
- curves.reserve(int(curveCount));
- for (size_t i = 0; i < curveCount; ++i) {
- QSslEllipticCurve curve;
- curve.id = builtinCurves[int(i)].nid;
- curves.append(curve);
- }
+ QList<QSslEllipticCurve> curves;
+ curves.reserve(ids.size());
+ for (int id : ids) {
+ QSslEllipticCurve curve;
+ curve.id = id;
+ curves.append(curve);
}
-#endif // OPENSSL_NO_EC
// set the list of supported ECs, but not the list
// of *default* ECs. OpenSSL doesn't like forcing an EC for the wrong