aboutsummaryrefslogtreecommitdiffstats
path: root/context.cpp
diff options
context:
space:
mode:
authorubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2009-09-19 23:02:45 +0000
committerubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2009-09-19 23:02:45 +0000
commit11d720efd34559125bbc01111a7b428c5a4ae83e (patch)
tree0817852a8053de2cfd0510e53a32ef2f93c0789b /context.cpp
parentcommented out delete-selected-keys action outside keymanagement (diff)
downloadgpg4usb-11d720efd34559125bbc01111a7b428c5a4ae83e.tar.gz
gpg4usb-11d720efd34559125bbc01111a7b428c5a4ae83e.zip
add method for private-key export to context
git-svn-id: http://cpunk.de/svn/src/gpg4usb/trunk@222 34ebc366-c3a9-4b3c-9f84-69acf7962910
Diffstat (limited to 'context.cpp')
-rw-r--r--context.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/context.cpp b/context.cpp
index 947aacb..1d32000 100644
--- a/context.cpp
+++ b/context.cpp
@@ -429,6 +429,33 @@ void Context::checkErr(gpgme_error_t err) const
}
}
+
+/** export private key, TODO errohandling, e.g. like in seahorse (seahorse-gpg-op.c) **/
+
+void Context::exportSecretKey(QString uid, QByteArray *outBuffer)
+{
+ QStringList arguments;
+ arguments << "--armor" << "--export-secret-key" << uid;
+ QByteArray *err = new QByteArray();
+ executeGpgCommand(arguments, outBuffer, err);
+}
+
+/** return type should be gpgme_error_t*/
+void Context::executeGpgCommand(QStringList arguments, QByteArray *stdOut, QByteArray *stdErr)
+{
+ gpgme_engine_info_t engine = gpgme_ctx_get_engine_info(mCtx);
+
+ QStringList args;
+ args << "--homedir" << engine->home_dir << "--batch" << arguments;
+
+ QProcess gpg;
+ gpg.start(engine->file_name, args);
+ gpg.waitForFinished();
+
+ *stdOut = gpg.readAllStandardOutput();
+ *stdErr = gpg.readAllStandardError();
+}
+
}