aboutsummaryrefslogtreecommitdiffstats
path: root/lang/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'lang/cpp/src')
-rw-r--r--lang/cpp/src/context.cpp42
-rw-r--r--lang/cpp/src/context.h14
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