summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTimur Pocheptsov <timur.pocheptsov@qt.io>2021-07-22 15:49:30 +0200
committerTimur Pocheptsov <timur.pocheptsov@qt.io>2021-08-03 09:30:53 +0200
commit216488231e6739e9a04bd2ef0138d246f25d8a8d (patch)
treee22b1202feb4620d2eeef8ea8ef8102449a4a150 /src
parent31afbef68cbef17d6d5d0e4ff795daa6c15394cf (diff)
doCrypt() - check the error codes
Disabled (moved into the legacy provider) DES-CBC results in a crash, when setting key length. Change-Id: Ie0b49424f11d8042ebecebfd3b6346263f730551 Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io> (cherry picked from commit b4942f7f0c56f2c5dcd783760a8c915463e8e744)
Diffstat (limited to 'src')
-rw-r--r--src/network/ssl/qtlskey_openssl.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/network/ssl/qtlskey_openssl.cpp b/src/network/ssl/qtlskey_openssl.cpp
index 6d75dfd5b4..9d046b34b0 100644
--- a/src/network/ssl/qtlskey_openssl.cpp
+++ b/src/network/ssl/qtlskey_openssl.cpp
@@ -38,6 +38,7 @@
****************************************************************************/
#include "qsslsocket_openssl_symbols_p.h"
+#include "qtlsbackend_openssl_p.h"
#include "qtlskey_openssl_p.h"
#include "qsslsocket.h"
#include "qsslkey_p.h"
@@ -435,7 +436,10 @@ QByteArray doCrypt(QSslKeyPrivate::Cipher cipher, const QByteArray &data,
EVP_CIPHER_CTX *ctx = q_EVP_CIPHER_CTX_new();
q_EVP_CIPHER_CTX_reset(ctx);
- q_EVP_CipherInit(ctx, type, nullptr, nullptr, enc);
+ if (q_EVP_CipherInit(ctx, type, nullptr, nullptr, enc) != 1) {
+ QTlsBackendOpenSSL::logAndClearErrorQueue();
+ return QByteArray();
+ }
q_EVP_CIPHER_CTX_set_key_length(ctx, key.size());
if (cipher == Cipher::Rc2Cbc)
q_EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_SET_RC2_KEY_BITS, 8 * key.size(), nullptr);