diff options
author | Ingo Klöcker <[email protected]> | 2022-01-04 14:50:59 +0000 |
---|---|---|
committer | Ingo Klöcker <[email protected]> | 2022-01-04 14:50:59 +0000 |
commit | e5c7fc3e022841be8f68fad8b9b64dd601b89ba7 (patch) | |
tree | 25de71f031d4408653cb01f3794af0314c9231d5 /lang/cpp/src/context.cpp | |
parent | qt: Remove obsolete QGpgMESecretKeyExportJob (diff) | |
download | gpgme-e5c7fc3e022841be8f68fad8b9b64dd601b89ba7.tar.gz gpgme-e5c7fc3e022841be8f68fad8b9b64dd601b89ba7.zip |
cpp: Allow export of secret subkeys
* lang/cpp/src/context.h (enum Context::ExportMode): Add value
ExportSecretSubkey.
(class Context): Add member functions exportSecretSubkeys and
startSecretSubkeyExport.
* lang/cpp/src/context.cpp (Context::exportPublicKeys,
Context::startPublicKeyExport): Return error if ExportSecretSubkey
mode flag is set.
(Context::exportSecretSubkeys, Context::startSecretSubkeyExport):
Implement.
--
GnuPG-bug-id: 5757
Diffstat (limited to 'lang/cpp/src/context.cpp')
-rw-r--r-- | lang/cpp/src/context.cpp | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/lang/cpp/src/context.cpp b/lang/cpp/src/context.cpp index 174a3c3b..e8e57dc8 100644 --- a/lang/cpp/src/context.cpp +++ b/lang/cpp/src/context.cpp @@ -612,7 +612,7 @@ Error Context::startKeyExport(const char *patterns[], Data &keyData, unsigned in Error Context::exportPublicKeys(const char *pattern, Data &keyData, unsigned int mode) { - if (mode & ExportSecret) { + if (mode & (ExportSecret | ExportSecretSubkey)) { return Error::fromCode(GPG_ERR_INV_FLAG); } return exportKeys(pattern, keyData, mode); @@ -620,7 +620,7 @@ Error Context::exportPublicKeys(const char *pattern, Data &keyData, unsigned int Error Context::exportPublicKeys(const char *patterns[], Data &keyData, unsigned int mode) { - if (mode & ExportSecret) { + if (mode & (ExportSecret | ExportSecretSubkey)) { return Error::fromCode(GPG_ERR_INV_FLAG); } return exportKeys(patterns, keyData, mode); @@ -628,7 +628,7 @@ Error Context::exportPublicKeys(const char *patterns[], Data &keyData, unsigned Error Context::startPublicKeyExport(const char *pattern, Data &keyData, unsigned int mode) { - if (mode & ExportSecret) { + if (mode & (ExportSecret | ExportSecretSubkey)) { return Error::fromCode(GPG_ERR_INV_FLAG); } return startKeyExport(pattern, keyData, mode); @@ -636,7 +636,7 @@ Error Context::startPublicKeyExport(const char *pattern, Data &keyData, unsigned Error Context::startPublicKeyExport(const char *patterns[], Data &keyData, unsigned int mode) { - if (mode & ExportSecret) { + if (mode & (ExportSecret | ExportSecretSubkey)) { return Error::fromCode(GPG_ERR_INV_FLAG); } return startKeyExport(patterns, keyData, mode); @@ -695,6 +695,26 @@ Error Context::startSecretKeyExport(const char *patterns[], Data &keyData, unsig return startKeyExport(patterns, keyData, mode|ExportSecret); } +Error Context::exportSecretSubkeys(const char *pattern, Data &keyData, unsigned int mode) +{ + return exportKeys(pattern, keyData, mode|ExportSecretSubkey); +} + +Error Context::exportSecretSubkeys(const char *patterns[], Data &keyData, unsigned int mode) +{ + return exportKeys(patterns, keyData, mode|ExportSecretSubkey); +} + +Error Context::startSecretSubkeyExport(const char *pattern, Data &keyData, unsigned int mode) +{ + return startKeyExport(pattern, keyData, mode|ExportSecretSubkey); +} + +Error Context::startSecretSubkeyExport(const char *patterns[], Data &keyData, unsigned int mode) +{ + return startKeyExport(patterns, keyData, mode|ExportSecretSubkey); +} + ImportResult Context::importKeys(const Data &data) { d->lastop = Private::Import; |