From 409e314582273be36b9b6516e89f142f2e99e682 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= Date: Mon, 26 Aug 2024 12:45:08 +0200 Subject: qt: Add support for new context flag "proc-all-sigs" * lang/qt/src/decryptverifyarchivejob.cpp, lang/qt/src/decryptverifyarchivejob.h (DecryptVerifyArchiveJob): Add member functions setProcessAllSignatures, processAllSignatures. * lang/qt/src/decryptverifyarchivejob_p.h (DecryptVerifyArchiveJobPrivate): Add member m_processAllSignatures. * lang/qt/src/decryptverifyjob.cpp, lang/qt/src/decryptverifyjob.h (DecryptVerifyJob): Add member functions setProcessAllSignatures, processAllSignatures. * lang/qt/src/decryptverifyjob_p.h (DecryptVerifyJobPrivate): Add member m_processAllSignatures. * lang/qt/src/qgpgmedecryptverifyarchivejob.cpp (decrypt_verify_from_file_name): Add argument "processAllSignatures". Set context flag "proc-all-sigs" if requested. (QGpgMEDecryptVerifyArchiveJob::start): Set context flag "proc-all-sigs" if requested. (QGpgMEDecryptVerifyArchiveJobPrivate::startIt): Pass m_processAllSignatures to decrypt_verify_from_file_name. * lang/qt/src/qgpgmedecryptverifyjob.cpp (decrypt_verify_from_filename): Add argument "processAllSignatures". Set context flag "proc-all-sigs" if requested. (QGpgMEDecryptVerifyJob::start, QGpgMEDecryptVerifyJob::exec): Set context flag "proc-all-sigs" if requested. (QGpgMEDecryptVerifyJobPrivate::startIt): Pass m_processAllSignatures to decrypt_verify_from_filename. * lang/qt/src/qgpgmeverifydetachedjob.cpp (verify_from_filename): Add argument "processAllSignatures". Set context flag "proc-all-sigs" if requested. (QGpgMEVerifyDetachedJob::start, QGpgMEVerifyDetachedJob::exec): Set context flag "proc-all-sigs" if requested. (QGpgMEVerifyDetachedJobPrivate::startIt): Pass m_processAllSignatures to decrypt_verify_from_filename. * lang/qt/src/qgpgmeverifyopaquejob.cpp (verify_from_filename): Add argument "processAllSignatures". Set context flag "proc-all-sigs" if requested. (QGpgMEVerifyOpaqueJob::start, QGpgMEVerifyOpaqueJob::exec): Set context flag "proc-all-sigs" if requested. (QGpgMEVerifyOpaqueJobPrivate::startIt): Pass m_processAllSignatures to decrypt_verify_from_filename. * lang/qt/src/verifydetachedjob.cpp, lang/qt/src/verifydetachedjob.h (VerifyDetachedJob): Add member functions setProcessAllSignatures, processAllSignatures. * lang/qt/src/verifydetachedjob_p.h (VerifyDetachedJobPrivate): Add member m_processAllSignatures. * lang/qt/src/verifyopaquejob.cpp, lang/qt/src/verifyopaquejob.h (VerifyOpaqueJob): Add member functions setProcessAllSignatures, processAllSignatures. * lang/qt/src/verifyopaquejob_p.h (VerifyOpaqueJobPrivate): Add member m_processAllSignatures. * lang/qt/tests/run-decryptverifyarchivejob.cpp, lang/qt/tests/run-decryptverifyjob.cpp, lang/qt/tests/run-verifydetachedjob.cpp, lang/qt/tests/run-verifyopaquejob.cpp (struct CommandLineOptions): Add member processAllSignatures. (parseCommandLine): Add command line option --process-all-signatures. (main): Pass new option to the job. -- The new option processAllSignatures is added to all jobs that verify data signatures. By enabling this option, one can tell gpg not to stop checking signatures after the first bad signature. GnuPG-bug-id: 6870 --- lang/qt/src/qgpgmedecryptverifyarchivejob.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'lang/qt/src/qgpgmedecryptverifyarchivejob.cpp') diff --git a/lang/qt/src/qgpgmedecryptverifyarchivejob.cpp b/lang/qt/src/qgpgmedecryptverifyarchivejob.cpp index eda4bfd8..10f07e53 100644 --- a/lang/qt/src/qgpgmedecryptverifyarchivejob.cpp +++ b/lang/qt/src/qgpgmedecryptverifyarchivejob.cpp @@ -119,7 +119,8 @@ static QGpgMEDecryptVerifyArchiveJob::result_type decrypt_verify_from_io_device( static QGpgMEDecryptVerifyArchiveJob::result_type decrypt_verify_from_file_name(Context *ctx, const QString &inputFile, - const QString &outputDirectory) + const QString &outputDirectory, + bool processAllSignatures) { Data indata; #ifdef Q_OS_WIN @@ -128,6 +129,9 @@ static QGpgMEDecryptVerifyArchiveJob::result_type decrypt_verify_from_file_name( indata.setFileName(QFile::encodeName(inputFile).constData()); #endif + if (processAllSignatures) { + ctx->setFlag("proc-all-sigs", "1"); + } return decrypt_verify(ctx, indata, outputDirectory); } @@ -137,6 +141,9 @@ GpgME::Error QGpgMEDecryptVerifyArchiveJob::start(const std::shared_ptrsetFlag("proc-all-sigs", "1"); + } run(std::bind(&decrypt_verify_from_io_device, std::placeholders::_1, std::placeholders::_2, @@ -153,7 +160,7 @@ GpgME::Error QGpgMEDecryptVerifyArchiveJobPrivate::startIt() } q->run([=](Context *ctx) { - return decrypt_verify_from_file_name(ctx, m_inputFilePath, m_outputDirectory); + return decrypt_verify_from_file_name(ctx, m_inputFilePath, m_outputDirectory, m_processAllSignatures); }); return {}; -- cgit v1.2.3