36 #ifndef __QGPGME_PROTOCOL_P_H__
37 #define __QGPGME_PROTOCOL_P_H__
38 #include "qgpgmenewcryptoconfig.h"
40 #include "qgpgmeadqueryjob.h"
41 #include "qgpgmekeygenerationjob.h"
42 #include "qgpgmekeylistjob.h"
43 #include "qgpgmelistallkeysjob.h"
44 #include "qgpgmedecryptjob.h"
45 #include "qgpgmedecryptverifyarchivejob.h"
46 #include "qgpgmedecryptverifyjob.h"
47 #include "qgpgmerefreshsmimekeysjob.h"
48 #include "qgpgmedeletejob.h"
49 #include "qgpgmedownloadjob.h"
50 #include "qgpgmesignencryptjob.h"
51 #include "qgpgmeencryptarchivejob.h"
52 #include "qgpgmeencryptjob.h"
53 #include "qgpgmesignarchivejob.h"
54 #include "qgpgmesignencryptarchivejob.h"
55 #include "qgpgmesignjob.h"
56 #include "qgpgmesignkeyjob.h"
57 #include "qgpgmeexportjob.h"
58 #include "qgpgmeverifydetachedjob.h"
59 #include "qgpgmeimportjob.h"
60 #include "qgpgmeimportfromkeyserverjob.h"
61 #include "qgpgmeverifyopaquejob.h"
62 #include "qgpgmechangeexpiryjob.h"
63 #include "qgpgmechangeownertrustjob.h"
64 #include "qgpgmechangepasswdjob.h"
65 #include "qgpgmeaddexistingsubkeyjob.h"
66 #include "qgpgmeadduseridjob.h"
67 #include "qgpgmekeyformailboxjob.h"
68 #include "qgpgmewkdlookupjob.h"
69 #include "qgpgmewkspublishjob.h"
70 #include "qgpgmetofupolicyjob.h"
71 #include "qgpgmequickjob.h"
72 #include "qgpgmereceivekeysjob.h"
73 #include "qgpgmerevokekeyjob.h"
74 #include "qgpgmesetprimaryuseridjob.h"
75 #include "qgpgmewkdrefreshjob.h"
82 GpgME::Protocol mProtocol;
84 explicit Protocol(GpgME::Protocol proto) : mProtocol(proto) {}
86 QString name()
const override
89 case GpgME::OpenPGP:
return QStringLiteral(
"OpenPGP");
90 case GpgME::CMS:
return QStringLiteral(
"SMIME");
91 default:
return QString();
95 QString displayName()
const override
100 case GpgME::OpenPGP:
return QStringLiteral(
"gpg");
101 case GpgME::CMS:
return QStringLiteral(
"gpgsm");
102 default:
return QStringLiteral(
"unknown");
111 QGpgME::KeyListJob *keyListJob(
bool remote,
bool includeSigs,
bool validate)
const override
113 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
118 unsigned int mode = context->keyListMode();
120 mode |= GpgME::Extern;
121 mode &= ~
GpgME::Local;
123 mode |= GpgME::Local;
124 mode &= ~
GpgME::Extern;
127 mode |= GpgME::Signatures;
130 mode |= GpgME::Validate;
132 context->setKeyListMode(mode);
138 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
143 unsigned int mode = context->keyListMode();
144 mode |= GpgME::Local;
145 mode &= ~
GpgME::Extern;
147 mode |= GpgME::Signatures;
150 mode |= GpgME::Validate;
157 context->setOffline(
true);
159 context->setKeyListMode(mode);
165 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
170 context->setArmor(armor);
171 context->setTextMode(textmode);
177 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
186 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
191 context->setArmor(armor);
192 context->setTextMode(textMode);
198 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
203 context->setTextMode(textMode);
209 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
214 context->setTextMode(textMode);
220 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
229 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
238 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
247 if (mProtocol != GpgME::OpenPGP) {
251 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
260 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
265 context->setArmor(armor);
269 QGpgME::ExportJob *secretKeyExportJob(
bool armor,
const QString &)
const override
271 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
276 context->setArmor(armor);
282 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
287 context->setArmor(armor);
293 if (mProtocol != GpgME::CMS) {
302 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
307 context->setArmor(armor);
309 context->setKeyListMode(GpgME::Extern);
315 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
324 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
329 context->setArmor(armor);
330 context->setTextMode(textMode);
336 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
341 context->setTextMode(textMode);
347 if (mProtocol != GpgME::OpenPGP) {
351 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
360 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
369 if (mProtocol != GpgME::OpenPGP) {
373 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
382 if (mProtocol != GpgME::OpenPGP) {
386 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
395 if (mProtocol != GpgME::OpenPGP) {
399 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
408 if (mProtocol != GpgME::OpenPGP) {
412 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
421 if (mProtocol != GpgME::OpenPGP) {
424 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
428 context->setKeyListMode(GpgME::Locate | GpgME::Signatures | GpgME::Validate);
434 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
443 if (mProtocol != GpgME::OpenPGP) {
446 auto context = GpgME::Context::createForEngine(GpgME::AssuanEngine);
455 if (mProtocol != GpgME::OpenPGP) {
458 auto context = GpgME::Context::createForEngine(GpgME::SpawnEngine);
467 if (mProtocol != GpgME::OpenPGP) {
470 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
479 if (mProtocol != GpgME::OpenPGP) {
482 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
491 if (mProtocol != GpgME::OpenPGP) {
494 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
503 if (mProtocol != GpgME::OpenPGP) {
506 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
515 if (mProtocol != GpgME::OpenPGP) {
518 if (
auto context = GpgME::Context::createForProtocol(mProtocol)) {
519 context->setArmor(armor);
527 if (mProtocol != GpgME::OpenPGP) {
530 if (
auto context = GpgME::Context::createForProtocol(mProtocol)) {
531 context->setArmor(armor);
539 if (mProtocol != GpgME::OpenPGP) {
542 if (
auto context = GpgME::Context::createForProtocol(mProtocol)) {
543 context->setArmor(armor);
551 if (mProtocol != GpgME::OpenPGP) {
554 if (
auto context = GpgME::Context::createForProtocol(mProtocol)) {
562 if (mProtocol != GpgME::OpenPGP) {
565 if (
auto context = GpgME::Context::createForProtocol(mProtocol)) {
573 if (
auto context = GpgME::Context::createForEngine(GpgME::AssuanEngine)) {
Definition: qgpgmechangeownertrustjob.h:45
An abstract base class for asynchronous keyserver-importers.
Definition: importfromkeyserverjob.h:66
Definition: qgpgmereceivekeysjob.h:46
Definition: qgpgmeverifydetachedjob.h:49
Definition: qgpgmesignencryptjob.h:53
An abstract base class to asynchronously add UIDs to OpenPGP keys.
Definition: adduseridjob.h:64
Definition: tofupolicyjob.h:50
Definition: qgpgmewkdrefreshjob.h:47
Definition: qgpgmelistallkeysjob.h:50
virtual TofuPolicyJob * tofuPolicyJob() const =0
An abstract base class to change a key's passphrase asynchronously.
Definition: changepasswdjob.h:62
Definition: qgpgmesignencryptarchivejob.h:49
An abstract base class for asynchronous combined signing and encrypting.
Definition: signencryptjob.h:88
Definition: receivekeysjob.h:43
Definition: qgpgmedecryptverifyarchivejob.h:49
Definition: qgpgmedecryptverifyjob.h:50
virtual WKSPublishJob * wksPublishJob() const =0
Definition: qgpgmetofupolicyjob.h:44
Definition: wkdlookupjob.h:53
An abstract base class for asynchronous decrypters.
Definition: decryptjob.h:67
An abstract base class for asynchronous encrypters.
Definition: encryptjob.h:85
Definition: abstractimportjob.h:42
Definition: qgpgmechangepasswdjob.h:45
An abstract base class for asynchronous downloaders.
Definition: downloadjob.h:69
Definition: qgpgmesignkeyjob.h:47
virtual WKDLookupJob * wkdLookupJob() const =0
An abstract base class to change expiry asynchronously.
Definition: changeexpiryjob.h:69
An abstract base class for asynchronous deleters.
Definition: deletejob.h:65
virtual KeyForMailboxJob * keyForMailboxJob() const =0
Definition: qgpgmedownloadjob.h:45
Definition: wkspublishjob.h:59
Definition: qgpgmeencryptjob.h:50
Definition: qgpgmesetprimaryuseridjob.h:43
Definition: signencryptarchivejob.h:54
Definition: setprimaryuseridjob.h:50
virtual QuickJob * quickJob() const =0
Definition: qgpgmedecryptjob.h:47
Definition: qgpgmeaddexistingsubkeyjob.h:43
An abstract base class for asynchronous verification of detached signatures.
Definition: verifydetachedjob.h:75
An abstract base class for asynchronous key generation.
Definition: keygenerationjob.h:65
Definition: qgpgmeencryptarchivejob.h:48
virtual SetPrimaryUserIDJob * setPrimaryUserIDJob() const =0
An abstract base class for asynchronously listing all keys.
Definition: listallkeysjob.h:74
An abstract base class for asynchronous key refreshers.
Definition: refreshkeysjob.h:67
An abstract base class to sign keys asynchronously.
Definition: signkeyjob.h:68
Definition: decryptverifyarchivejob.h:54
Definition: qgpgmerevokekeyjob.h:43
An abstract base class for asynchronous exporters.
Definition: exportjob.h:67
Definition: qgpgmeverifyopaquejob.h:49
Definition: qgpgmedeletejob.h:52
An abstract base class for asynchronous signing.
Definition: signjob.h:82
Definition: qgpgmeadqueryjob.h:47
Definition: qgpgmeimportjob.h:51
An abstract base class for asynchronous combined decrypters and verifiers.
Definition: decryptverifyjob.h:78
Definition: qgpgmesignjob.h:50
Definition: wkdrefreshjob.h:57
Definition: qgpgmequickjob.h:48
Definition: adqueryjob.h:62
Definition: qgpgmekeygenerationjob.h:47
Definition: qgpgmewkdlookupjob.h:45
Definition: revokekeyjob.h:51
An abstract base class for asynchronous importers.
Definition: importjob.h:69
Definition: qgpgmechangeexpiryjob.h:47
Definition: encryptarchivejob.h:54
An abstract base class for protocol-specific jobs.
Definition: specialjob.h:70
Definition: qgpgmeadduseridjob.h:45
An abstract base class to change owner trust asynchronously.
Definition: changeownertrustjob.h:58
Definition: qgpgmerefreshsmimekeysjob.h:48
Definition: qgpgmeexportjob.h:49
Definition: addexistingsubkeyjob.h:52
virtual KeyListJob * locateKeysJob() const =0
Definition: protocol.h:119
Definition: signarchivejob.h:54
Definition: qgpgmewkspublishjob.h:48
virtual RefreshKeysJob * refreshKeysJob() const =0
An abstract base class for asynchronous verification of opaque signatures.
Definition: verifyopaquejob.h:77
Definition: qgpgmekeylistjob.h:48
Definition: quickjob.h:55
Definition: qgpgmebackend.h:43
Definition: qgpgmesignarchivejob.h:48
Definition: qgpgmeimportfromkeyserverjob.h:47
An abstract base class for asynchronous key listers.
Definition: keylistjob.h:71