From 6efba2bb3eab847fbdf9c306b9f71a536b2b0e4f Mon Sep 17 00:00:00 2001 From: Christian Hohnstaedt Date: Sat, 30 Oct 2021 00:40:06 +0200 Subject: [PATCH] pkcs7: Fix endless loop when loading PKCS#7 via PEM import --- lib/pki_pkcs7.cpp | 7 +++++++ lib/pki_pkcs7.h | 1 + 2 files changed, 8 insertions(+) diff --git a/lib/pki_pkcs7.cpp b/lib/pki_pkcs7.cpp index 1066544e..4b8db25f 100644 --- a/lib/pki_pkcs7.cpp +++ b/lib/pki_pkcs7.cpp @@ -156,6 +156,13 @@ void pki_pkcs7::fromPEM_BIO(BIO *bio, const QString &name) append_certs(myp7, name); } +void pki_pkcs7::fromPEMbyteArray(const QByteArray &ba, const QString &name) +{ + // Skip the pki_multi::fromPEMbyteArray(), + // which would cause an endless loop + pki_base::fromPEMbyteArray(ba, name); +} + void pki_pkcs7::fload(const QString &name) { PKCS7 *myp7; diff --git a/lib/pki_pkcs7.h b/lib/pki_pkcs7.h index bf50ea75..5b9ac8b2 100644 --- a/lib/pki_pkcs7.h +++ b/lib/pki_pkcs7.h @@ -36,6 +36,7 @@ class pki_pkcs7: public pki_multi void encryptFile(pki_x509 *crt, const QString &filename); void writeP7(XFile &file, bool PEM); void fromPEM_BIO(BIO *bio, const QString &name); + void fromPEMbyteArray(const QByteArray &, const QString &); void fload(const QString &name); }; #endif