diff options
Diffstat (limited to 'src/network/ssl/qsslsocket_openssl.cpp')
| -rw-r--r-- | src/network/ssl/qsslsocket_openssl.cpp | 26 |
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 |
