diff options
author | Ingo Klöcker <[email protected]> | 2024-08-26 10:45:08 +0000 |
---|---|---|
committer | Ingo Klöcker <[email protected]> | 2024-08-26 12:08:17 +0000 |
commit | 409e314582273be36b9b6516e89f142f2e99e682 (patch) | |
tree | 109ad45531c1a66b7ec3e862d466e9506f366c42 /lang/qt/src/qgpgmeverifyopaquejob.cpp | |
parent | New context flag "proc-all-sigs". (diff) | |
download | gpgme-409e314582273be36b9b6516e89f142f2e99e682.tar.gz gpgme-409e314582273be36b9b6516e89f142f2e99e682.zip |
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
Diffstat (limited to 'lang/qt/src/qgpgmeverifyopaquejob.cpp')
-rw-r--r-- | lang/qt/src/qgpgmeverifyopaquejob.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/lang/qt/src/qgpgmeverifyopaquejob.cpp b/lang/qt/src/qgpgmeverifyopaquejob.cpp index 19e61e37..0cca9f72 100644 --- a/lang/qt/src/qgpgmeverifyopaquejob.cpp +++ b/lang/qt/src/qgpgmeverifyopaquejob.cpp @@ -136,7 +136,8 @@ static QGpgMEVerifyOpaqueJob::result_type verify_opaque_qba(Context *ctx, const static QGpgMEVerifyOpaqueJob::result_type verify_from_filename(Context *ctx, const QString &inputFilePath, - const QString &outputFilePath) + const QString &outputFilePath, + bool processAllSignatures) { Data indata; #ifdef Q_OS_WIN @@ -157,6 +158,9 @@ static QGpgMEVerifyOpaqueJob::result_type verify_from_filename(Context *ctx, outdata.setFileName(QFile::encodeName(partFileGuard.tempFileName()).constData()); #endif + if (processAllSignatures) { + ctx->setFlag("proc-all-sigs", "1"); + } const auto verificationResult = ctx->verifyOpaqueSignature(indata, outdata); if (!verificationResult.error().code()) { @@ -171,17 +175,26 @@ static QGpgMEVerifyOpaqueJob::result_type verify_from_filename(Context *ctx, Error QGpgMEVerifyOpaqueJob::start(const QByteArray &signedData) { + if (processAllSignatures()) { + context()->setFlag("proc-all-sigs", "1"); + } run(std::bind(&verify_opaque_qba, std::placeholders::_1, signedData)); return Error(); } void QGpgMEVerifyOpaqueJob::start(const std::shared_ptr<QIODevice> &signedData, const std::shared_ptr<QIODevice> &plainText) { + if (processAllSignatures()) { + context()->setFlag("proc-all-sigs", "1"); + } run(std::bind(&verify_opaque, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4), signedData, plainText); } GpgME::VerificationResult QGpgME::QGpgMEVerifyOpaqueJob::exec(const QByteArray &signedData, QByteArray &plainText) { + if (processAllSignatures()) { + context()->setFlag("proc-all-sigs", "1"); + } const result_type r = verify_opaque_qba(context(), signedData); plainText = std::get<1>(r); return std::get<0>(r); @@ -194,7 +207,7 @@ GpgME::Error QGpgMEVerifyOpaqueJobPrivate::startIt() } q->run([=](Context *ctx) { - return verify_from_filename(ctx, m_inputFilePath, m_outputFilePath); + return verify_from_filename(ctx, m_inputFilePath, m_outputFilePath, m_processAllSignatures); }); return {}; |