diff options
author | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2021-02-02 14:55:00 +0100 |
---|---|---|
committer | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2021-02-18 12:33:50 +0100 |
commit | 0352cf8e1bf57615b9faf3f6f383896444e762ac (patch) | |
tree | 1be2389fc0bda4ed0d98bdf072651509ef2f9958 /src/network/ssl/qsslkey_p.h | |
parent | 36017b089439e22adda55e039e9a91346feff223 (diff) |
Port QSslKey to the new plugin-based implementation
The idea is to have QSslKey(Private) backend-neutral and hide
all library-specific code inside plugins.
Pick-to: dev
Fixes: QTBUG-90953
Task-number: QTBUG-65922
Change-Id: I2eeee3b2b72c78c2e24f2fb914abce3caa913be8
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/network/ssl/qsslkey_p.h')
-rw-r--r-- | src/network/ssl/qsslkey_p.h | 59 |
1 files changed, 3 insertions, 56 deletions
diff --git a/src/network/ssl/qsslkey_p.h b/src/network/ssl/qsslkey_p.h index 402d00daf1..8afb50b421 100644 --- a/src/network/ssl/qsslkey_p.h +++ b/src/network/ssl/qsslkey_p.h @@ -53,13 +53,9 @@ // #include <QtNetwork/private/qtnetworkglobal_p.h> -#include "qsslkey.h" -#include "qsslsocket_p.h" // includes wincrypt.h -#ifndef QT_NO_OPENSSL -#include <openssl/rsa.h> -#include <openssl/dsa.h> -#endif +#include "qsslkey.h" +#include "qssl_p.h" #include <memory> @@ -75,60 +71,11 @@ public: QSslKeyPrivate(); ~QSslKeyPrivate(); - void clear(bool deep = true); - -#ifndef QT_NO_OPENSSL - bool fromEVP_PKEY(EVP_PKEY *pkey); -#endif - void decodeDer(const QByteArray &der, const QByteArray &passPhrase = {}, bool deepClear = true); - void decodePem(const QByteArray &pem, const QByteArray &passPhrase, bool deepClear = true); - QByteArray pemHeader() const; - QByteArray pemFooter() const; - QByteArray pemFromDer(const QByteArray &der, const QMap<QByteArray, QByteArray> &headers) const; - QByteArray derFromPem(const QByteArray &pem, QMap<QByteArray, QByteArray> *headers) const; - - int length() const; - QByteArray toPem(const QByteArray &passPhrase) const; - Qt::HANDLE handle() const; - - bool isEncryptedPkcs8(const QByteArray &der) const; -#if !QT_CONFIG(openssl) - QByteArray decryptPkcs8(const QByteArray &encrypted, const QByteArray &passPhrase); - bool isPkcs8 = false; -#endif - - bool isNull; - QSsl::KeyType type; - QSsl::KeyAlgorithm algorithm; - - enum Cipher { - DesCbc, - DesEde3Cbc, - Rc2Cbc, - Aes128Cbc, - Aes192Cbc, - Aes256Cbc - }; + using Cipher = QSsl::Cipher; Q_AUTOTEST_EXPORT static QByteArray decrypt(Cipher cipher, const QByteArray &data, const QByteArray &key, const QByteArray &iv); Q_AUTOTEST_EXPORT static QByteArray encrypt(Cipher cipher, const QByteArray &data, const QByteArray &key, const QByteArray &iv); -#ifndef QT_NO_OPENSSL - union { - EVP_PKEY *opaque; - RSA *rsa; - DSA *dsa; - DH *dh; -#ifndef OPENSSL_NO_EC - EC_KEY *ec; -#endif - }; -#else - Qt::HANDLE opaque; - QByteArray derData; - int keyLength; -#endif - std::unique_ptr<QSsl::TlsKey> keyBackend; QAtomicInt ref; |