diff options
author | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2021-01-25 15:37:03 +0100 |
---|---|---|
committer | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2021-02-01 14:36:40 +0100 |
commit | 1a0da3ae69964142b3a31d87ecc88a925006a4de (patch) | |
tree | 88c8f5cd419d3a2aa9e1f42d288321831ec86165 /src/network/ssl/qtlsbackend.cpp | |
parent | 59252a3a969dcfd07304400f68503a4687292aac (diff) |
QSsl::TlsKey - provide the interface and implementations
which will become parts of TLS plugins in the future.
Task-number: QTBUG-65922
Change-Id: I4ee3c59c435fc34a9f4dacd3ff0e3cfb44251e23
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src/network/ssl/qtlsbackend.cpp')
-rw-r--r-- | src/network/ssl/qtlsbackend.cpp | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/src/network/ssl/qtlsbackend.cpp b/src/network/ssl/qtlsbackend.cpp index 4c726a5b5d..85dc90cf61 100644 --- a/src/network/ssl/qtlsbackend.cpp +++ b/src/network/ssl/qtlsbackend.cpp @@ -43,6 +43,7 @@ #include <QtCore/private/qfactoryloader_p.h> +#include <QtCore/qbytearray.h> #include <QtCore/qmutex.h> #include <algorithm> @@ -137,6 +138,47 @@ private: Q_GLOBAL_STATIC(BackendCollection, backends); +namespace QSsl { + +TlsKey::~TlsKey() = default; + +QByteArray TlsKey::pemHeader() const +{ + if (type() == QSsl::PublicKey) + return QByteArrayLiteral("-----BEGIN PUBLIC KEY-----"); + else if (algorithm() == QSsl::Rsa) + return QByteArrayLiteral("-----BEGIN RSA PRIVATE KEY-----"); + else if (algorithm() == QSsl::Dsa) + return QByteArrayLiteral("-----BEGIN DSA PRIVATE KEY-----"); + else if (algorithm() == QSsl::Ec) + return QByteArrayLiteral("-----BEGIN EC PRIVATE KEY-----"); + else if (algorithm() == QSsl::Dh) + return QByteArrayLiteral("-----BEGIN PRIVATE KEY-----"); + + Q_UNREACHABLE(); + return {}; +} + +QByteArray TlsKey::pemFooter() const +{ + if (type() == QSsl::PublicKey) + return QByteArrayLiteral("-----END PUBLIC KEY-----"); + else if (algorithm() == QSsl::Rsa) + return QByteArrayLiteral("-----END RSA PRIVATE KEY-----"); + else if (algorithm() == QSsl::Dsa) + return QByteArrayLiteral("-----END DSA PRIVATE KEY-----"); + else if (algorithm() == QSsl::Ec) + return QByteArrayLiteral("-----END EC PRIVATE KEY-----"); + else if (algorithm() == QSsl::Dh) + return QByteArrayLiteral("-----END PRIVATE KEY-----"); + + Q_UNREACHABLE(); + return {}; +} + + +} // namespace QSsl + const QString QTlsBackend::builtinBackendNames[] = { QStringLiteral("schannel"), QStringLiteral("securetransport"), @@ -282,7 +324,6 @@ QList<QSsl::ImplementedClass> QTlsBackend::implementedClasses(const QString &bac return fct->implementedClasses(); return {}; - } QT_END_NAMESPACE |