summaryrefslogtreecommitdiffstats
path: root/src/network/ssl/qtlsbackend.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/ssl/qtlsbackend.cpp')
-rw-r--r--src/network/ssl/qtlsbackend.cpp43
1 files changed, 42 insertions, 1 deletions
diff --git a/src/network/ssl/qtlsbackend.cpp b/src/network/ssl/qtlsbackend.cpp
index 1df462e3627..dcffb0afd1f 100644
--- a/src/network/ssl/qtlsbackend.cpp
+++ b/src/network/ssl/qtlsbackend.cpp
@@ -38,7 +38,15 @@
****************************************************************************/
#include "qtlsbackend_p.h"
+
+#if QT_CONFIG(ssl)
#include "qsslsocket_p.h"
+#include "qsslkey_p.h"
+#include "qsslkey.h"
+#else
+#include "qtlsbackend_cert_p.h"
+#endif
+
#include "qssl_p.h"
#include <QtCore/private/qfactoryloader_p.h>
@@ -93,8 +101,13 @@ public:
while (loader->instance(index))
++index;
- // TLSTODO: obviously, this one should go away:
+ // TLSTODO: obviously, these two below should
+ // disappear as soon as plugins are in place.
+#if QT_CONFIG(ssl)
QSslSocketPrivate::registerAdHocFactory();
+#else
+ static QTlsBackendCertOnly certGenerator;
+#endif // QT_CONFIG(ssl)
return loaded = true;
}
@@ -180,6 +193,12 @@ QByteArray TlsKey::pemFooter() const
X509Certificate::~X509Certificate() = default;
+TlsKey *X509Certificate::publicKey() const
+{
+ // 'no-ssl' build has no key support either.
+ return nullptr;
+}
+
} // namespace QSsl
const QString QTlsBackend::builtinBackendNames[] = {
@@ -286,6 +305,9 @@ QString QTlsBackend::defaultBackendName()
if (names.contains(name))
return name;
+ if (names.size())
+ return names[0];
+
return {};
}
@@ -301,6 +323,15 @@ QTlsBackend *QTlsBackend::findBackend(const QString &backendName)
return nullptr;
}
+QTlsBackend *QTlsBackend::activeOrAnyBackend()
+{
+#if QT_CONFIG(ssl)
+ return QSslSocketPrivate::tlsBackendInUse();
+#else
+ return findBackend(defaultBackendName());
+#endif // QT_CONFIG(ssl)
+}
+
QList<QSsl::SslProtocol> QTlsBackend::supportedProtocols(const QString &backendName)
{
if (!backends())
@@ -334,4 +365,14 @@ QList<QSsl::ImplementedClass> QTlsBackend::implementedClasses(const QString &bac
return {};
}
+void QTlsBackend::resetBackend(QSslKey &key, QSsl::TlsKey *keyBackend)
+{
+#if QT_CONFIG(ssl)
+ key.d->keyBackend.reset(keyBackend);
+#else
+ Q_UNUSED(key);
+ Q_UNUSED(keyBackend);
+#endif // QT_CONFIG(ssl)
+}
+
QT_END_NAMESPACE