diff options
| author | Andre Heinecke <[email protected]> | 2020-07-16 15:00:28 +0000 | 
|---|---|---|
| committer | Andre Heinecke <[email protected]> | 2020-07-16 15:00:28 +0000 | 
| commit | 690d967196d9f888e2b7c12d8c77ad752d7e15bf (patch) | |
| tree | 303f1cdcea12846cc305407bf6a2c3f19c6ab7dd /lang/cpp/src | |
| parent | core: Also allow GPGME_EXPORT_MODE_SSH for gpgme_op_export. (diff) | |
| download | gpgme-690d967196d9f888e2b7c12d8c77ad752d7e15bf.tar.gz gpgme-690d967196d9f888e2b7c12d8c77ad752d7e15bf.zip | |
qt, cpp: Support export modes
* lang/cpp/context.cpp, lang/cpp/context.h
(Context::startPublicKeyExport, Context::exportPublicKeys): Extend
with flags paramenter.
(Context::ExportMode): New.
* lang/qt/src/exportjob.h (ExportJob::setExportMode): New.
* lang/qt/src/qgpgmeexportjob.cpp, lang/qt/src/qgpgmeexportjob.h:
Update accordingly.
--
This adds the C++ and Qt API for export modes.
Diffstat (limited to 'lang/cpp/src')
| -rw-r--r-- | lang/cpp/src/context.cpp | 42 | ||||
| -rw-r--r-- | lang/cpp/src/context.h | 14 | 
2 files changed, 46 insertions, 10 deletions
| diff --git a/lang/cpp/src/context.cpp b/lang/cpp/src/context.cpp index 002b20f5..2560a338 100644 --- a/lang/cpp/src/context.cpp +++ b/lang/cpp/src/context.cpp @@ -563,44 +563,66 @@ KeyGenerationResult Context::keyGenerationResult() const      }  } -Error Context::exportPublicKeys(const char *pattern, Data &keyData) +Error Context::exportPublicKeys(const char *pattern, Data &keyData, unsigned int flags)  {      d->lastop = Private::Export;      Data::Private *const dp = keyData.impl(); -    return Error(d->lasterr = gpgme_op_export(d->ctx, pattern, 0, dp ? dp->data : nullptr)); +    return Error(d->lasterr = gpgme_op_export(d->ctx, pattern, flags, dp ? dp->data : nullptr));  } -Error Context::exportPublicKeys(const char *patterns[], Data &keyData) +Error Context::exportPublicKeys(const char *patterns[], Data &keyData, unsigned int flags)  {      d->lastop = Private::Export;  #ifndef HAVE_GPGME_EXT_KEYLIST_MODE_EXTERNAL_NONBROKEN      if (!patterns || !patterns[0] || !patterns[1]) {          // max. one pattern -> use the non-ext version -        return exportPublicKeys(patterns ? patterns[0] : nullptr, keyData); +        return exportPublicKeys(patterns ? patterns[0] : nullptr, keyData, flags);      }  #endif      Data::Private *const dp = keyData.impl(); -    return Error(d->lasterr = gpgme_op_export_ext(d->ctx, patterns, 0, dp ? dp->data : nullptr)); +    return Error(d->lasterr = gpgme_op_export_ext(d->ctx, patterns, flags, dp ? dp->data : nullptr));  } -Error Context::startPublicKeyExport(const char *pattern, Data &keyData) +Error Context::startPublicKeyExport(const char *pattern, Data &keyData, unsigned int flags)  {      d->lastop = Private::Export;      Data::Private *const dp = keyData.impl(); -    return Error(d->lasterr = gpgme_op_export_start(d->ctx, pattern, 0, dp ? dp->data : nullptr)); +    return Error(d->lasterr = gpgme_op_export_start(d->ctx, pattern, flags, dp ? dp->data : nullptr));  } -Error Context::startPublicKeyExport(const char *patterns[], Data &keyData) +Error Context::startPublicKeyExport(const char *patterns[], Data &keyData, unsigned int flags)  {      d->lastop = Private::Export;  #ifndef HAVE_GPGME_EXT_KEYLIST_MODE_EXTERNAL_NONBROKEN      if (!patterns || !patterns[0] || !patterns[1]) {          // max. one pattern -> use the non-ext version -        return startPublicKeyExport(patterns ? patterns[0] : nullptr, keyData); +        return startPublicKeyExport(patterns ? patterns[0] : nullptr, keyData, flags);      }  #endif      Data::Private *const dp = keyData.impl(); -    return Error(d->lasterr = gpgme_op_export_ext_start(d->ctx, patterns, 0, dp ? dp->data : nullptr)); +    return Error(d->lasterr = gpgme_op_export_ext_start(d->ctx, patterns, flags, dp ? dp->data : nullptr)); +} + + +/* Same as above but without flags  */ +Error Context::exportPublicKeys(const char *pattern, Data &keyData) +{ +    return exportPublicKeys(pattern, keyData, 0); +} + +Error Context::exportPublicKeys(const char *patterns[], Data &keyData) +{ +    return exportPublicKeys(patterns, keyData, 0); +} + +Error Context::startPublicKeyExport(const char *pattern, Data &keyData) +{ +    return startPublicKeyExport(pattern, keyData, 0); +} + +Error Context::startPublicKeyExport(const char *patterns[], Data &keyData) +{ +    return startPublicKeyExport(patterns, keyData, 0);  }  ImportResult Context::importKeys(const Data &data) diff --git a/lang/cpp/src/context.h b/lang/cpp/src/context.h index b6b902a9..70f1c429 100644 --- a/lang/cpp/src/context.h +++ b/lang/cpp/src/context.h @@ -182,11 +182,25 @@ public:      //      // Key Export      // +    enum ExportMode { +        ExportDefault = 0, +        ExportExtern = 2, +        ExportMinimal = 4, +        ExportSecret = 16, +        ExportRaw = 32, +        ExportPKCS12 = 64, +        ExportNoUID = 128, +        ExportSSH = 256, +    };      GpgME::Error exportPublicKeys(const char *pattern, Data &keyData); +    GpgME::Error exportPublicKeys(const char *pattern, Data &keyData, unsigned int flags);      GpgME::Error exportPublicKeys(const char *pattern[], Data &keyData); +    GpgME::Error exportPublicKeys(const char *pattern[], Data &keyData, unsigned int export_mode);      GpgME::Error startPublicKeyExport(const char *pattern, Data &keyData); +    GpgME::Error startPublicKeyExport(const char *pattern, Data &keyData, unsigned int flags);      GpgME::Error startPublicKeyExport(const char *pattern[], Data &keyData); +    GpgME::Error startPublicKeyExport(const char *pattern[], Data &keyData, unsigned int export_mode);      //      // Key Import | 
