From 27482fc080c09769f412cff04cdfb04bbcbfd6f9 Mon Sep 17 00:00:00 2001 From: Christian Hohnstaedt Date: Sat, 27 Jan 2018 08:32:45 +0100 Subject: [PATCH] Fix Null pointer exception when importing PKCS#12 with OpenSSL 1.1.0 Setting the EVP_PKEY type deletes the key with OpenSSL 1.1.0 Reported by Perederyaev Ivan. Thank you. --- lib/pki_evp.cpp | 10 +++++----- lib/pki_evp.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/pki_evp.cpp b/lib/pki_evp.cpp index de3ed5b5..55b030fe 100644 --- a/lib/pki_evp.cpp +++ b/lib/pki_evp.cpp @@ -31,9 +31,8 @@ QString pki_evp::passHash = QString(); QPixmap *pki_evp::icon[2]= { NULL, NULL }; -void pki_evp::init(int type) +void pki_evp::init() { - EVP_PKEY_set_type(key, type); class_name = "pki_evp"; ownPass = ptCommon; dataVersion=2; @@ -150,16 +149,17 @@ void pki_evp::generate(int bits, int type, QProgressBar *progress, int curve_nid pki_evp::pki_evp(const pki_evp *pk) :pki_key(pk) { - init(pk->getKeyType()); + init(); pki_openssl_error(); ownPass = pk->ownPass; encKey = pk->encKey; } -pki_evp::pki_evp(const QString name, int type ) +pki_evp::pki_evp(const QString name, int type) :pki_key(name) { - init(type); + init(); + EVP_PKEY_set_type(key, type); pki_openssl_error(); } diff --git a/lib/pki_evp.h b/lib/pki_evp.h index 5430864b..8c373d3e 100644 --- a/lib/pki_evp.h +++ b/lib/pki_evp.h @@ -22,7 +22,7 @@ class pki_evp: public pki_key Q_OBJECT protected: QByteArray encKey; - void init(int type = EVP_PKEY_RSA); + void init(); void veryOldFromData(unsigned char *p, int size); void openssl_pw_error(QString fname); public: