diff options
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 |