34 #ifndef __QGPGME_PROTOCOL_P_H__ 35 #define __QGPGME_PROTOCOL_P_H__ 36 #include "qgpgmenewcryptoconfig.h" 38 #include "qgpgmekeygenerationjob.h" 39 #include "qgpgmekeylistjob.h" 40 #include "qgpgmelistallkeysjob.h" 41 #include "qgpgmedecryptjob.h" 42 #include "qgpgmedecryptverifyjob.h" 43 #include "qgpgmerefreshkeysjob.h" 44 #include "qgpgmedeletejob.h" 45 #include "qgpgmesecretkeyexportjob.h" 46 #include "qgpgmedownloadjob.h" 47 #include "qgpgmesignencryptjob.h" 48 #include "qgpgmeencryptjob.h" 49 #include "qgpgmesignjob.h" 50 #include "qgpgmesignkeyjob.h" 51 #include "qgpgmeexportjob.h" 52 #include "qgpgmeverifydetachedjob.h" 53 #include "qgpgmeimportjob.h" 54 #include "qgpgmeimportfromkeyserverjob.h" 55 #include "qgpgmeverifyopaquejob.h" 56 #include "qgpgmechangeexpiryjob.h" 57 #include "qgpgmechangeownertrustjob.h" 58 #include "qgpgmechangepasswdjob.h" 59 #include "qgpgmeadduseridjob.h" 60 #include "qgpgmekeyformailboxjob.h" 61 #include "qgpgmewkspublishjob.h" 62 #include "qgpgmetofupolicyjob.h" 69 GpgME::Protocol mProtocol;
71 explicit Protocol(GpgME::Protocol proto) : mProtocol(proto) {}
73 QString name() const Q_DECL_OVERRIDE
76 case GpgME::OpenPGP:
return QStringLiteral(
"OpenPGP");
77 case GpgME::CMS:
return QStringLiteral(
"SMIME");
78 default:
return QString();
82 QString displayName() const Q_DECL_OVERRIDE
87 case GpgME::OpenPGP:
return QStringLiteral(
"gpg");
88 case GpgME::CMS:
return QStringLiteral(
"gpgsm");
89 default:
return QStringLiteral(
"unknown");
98 QGpgME::KeyListJob *keyListJob(
bool remote,
bool includeSigs,
bool validate)
const Q_DECL_OVERRIDE
100 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
105 unsigned int mode = context->keyListMode();
107 mode |= GpgME::Extern;
108 mode &= ~
GpgME::Local;
110 mode |= GpgME::Local;
111 mode &= ~
GpgME::Extern;
114 mode |= GpgME::Signatures;
117 mode |= GpgME::Validate;
119 context->setKeyListMode(mode);
125 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
130 unsigned int mode = context->keyListMode();
131 mode |= GpgME::Local;
132 mode &= ~
GpgME::Extern;
134 mode |= GpgME::Signatures;
137 mode |= GpgME::Validate;
144 context->setOffline(
true);
146 context->setKeyListMode(mode);
152 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
157 context->setArmor(armor);
158 context->setTextMode(textmode);
164 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
171 QGpgME::SignJob *signJob(
bool armor,
bool textMode)
const Q_DECL_OVERRIDE
173 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
178 context->setArmor(armor);
179 context->setTextMode(textMode);
185 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
190 context->setTextMode(textMode);
196 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
201 context->setTextMode(textMode);
207 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
216 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
225 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
234 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
239 context->setArmor(armor);
243 QGpgME::ExportJob *secretKeyExportJob(
bool armor,
const QString &charset)
const Q_DECL_OVERRIDE
245 if (mProtocol != GpgME::CMS) {
255 if (mProtocol != GpgME::CMS) {
265 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
270 context->setArmor(armor);
272 context->setKeyListMode(GpgME::Extern);
278 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
287 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
292 context->setArmor(armor);
293 context->setTextMode(textMode);
299 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
304 context->setTextMode(textMode);
310 if (mProtocol != GpgME::OpenPGP) {
314 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
323 if (!GpgME::hasFeature(GpgME::PasswdFeature, 0)) {
326 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
335 if (mProtocol != GpgME::OpenPGP) {
339 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
348 if (mProtocol != GpgME::OpenPGP) {
352 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
361 if (mProtocol != GpgME::OpenPGP) {
365 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
374 if (mProtocol != GpgME::OpenPGP) {
377 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
381 context->setKeyListMode(GpgME::Extern | GpgME::Local | GpgME::Signatures | GpgME::Validate);
387 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
396 if (mProtocol != GpgME::OpenPGP) {
399 auto context = GpgME::Context::createForEngine(GpgME::SpawnEngine);
408 if (mProtocol != GpgME::OpenPGP) {
411 GpgME::Context *context = GpgME::Context::createForProtocol(mProtocol);
Definition: qgpgmechangeownertrustjob.h:45
An abstract base class for asynchronous keyserver-importers.
Definition: importfromkeyserverjob.h:66
Definition: qgpgmeverifydetachedjob.h:51
Definition: qgpgmesignencryptjob.h:63
An abstract base class to asynchronously add UIDs to OpenPGP keys.
Definition: adduseridjob.h:64
Definition: tofupolicyjob.h:54
Definition: qgpgmelistallkeysjob.h:56
An abstract base class to change a key's passphrase asynchronously.
Definition: changepasswdjob.h:62
An abstract base class for asynchronous combined signing and encrypting.
Definition: signencryptjob.h:80
Definition: qgpgmedecryptverifyjob.h:56
Definition: qgpgmetofupolicyjob.h:44
virtual TofuPolicyJob * tofuPolicyJob() const =0
An abstract base class for asynchronous decrypters.
Definition: decryptjob.h:67
An abstract base class for asynchronous encrypters.
Definition: encryptjob.h:75
Definition: abstractimportjob.h:42
Definition: qgpgmechangepasswdjob.h:45
An abstract base class for asynchronous downloaders.
Definition: downloadjob.h:69
virtual KeyForMailboxJob * keyForMailboxJob() const =0
Definition: qgpgmesignkeyjob.h:51
An abstract base class to change expiry asynchronously.
Definition: changeexpiryjob.h:64
An abstract base class for asynchronous deleters.
Definition: deletejob.h:63
Definition: qgpgmedownloadjob.h:45
Definition: wkspublishjob.h:61
Definition: qgpgmeencryptjob.h:56
Definition: qgpgmedecryptjob.h:51
An abstract base class for asynchronous verification of detached signatures.
Definition: verifydetachedjob.h:68
An abstract base class for asynchronous key generation.
Definition: keygenerationjob.h:65
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
Definition: qgpgmerefreshkeysjob.h:51
An abstract base class to sign keys asynchronously.
Definition: signkeyjob.h:64
An abstract base class for asynchronous exporters.
Definition: exportjob.h:66
virtual KeyListJob * locateKeysJob() const =0
Definition: qgpgmeverifyopaquejob.h:51
Definition: qgpgmedeletejob.h:50
An abstract base class for asynchronous signing.
Definition: signjob.h:76
Definition: qgpgmeimportjob.h:51
An abstract base class for asynchronous combined decrypters and verifiers.
Definition: decryptverifyjob.h:68
Definition: qgpgmesignjob.h:56
Definition: qgpgmekeygenerationjob.h:51
An abstract base class for asynchronous importers.
Definition: importjob.h:65
Definition: qgpgmechangeexpiryjob.h:45
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:62
Definition: qgpgmeexportjob.h:45
Definition: qgpgmesecretkeyexportjob.h:54
Definition: protocol.h:105
virtual WKSPublishJob * wksPublishJob() const =0
Definition: qgpgmewkspublishjob.h:48
An abstract base class for asynchronous verification of opaque signatures.
Definition: verifyopaquejob.h:67
Definition: qgpgmekeylistjob.h:56
Definition: qgpgmebackend.h:43
Definition: qgpgmeimportfromkeyserverjob.h:51
An abstract base class for asynchronous key listers.
Definition: keylistjob.h:75