diff options
author | ubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2009-09-19 23:02:45 +0000 |
---|---|---|
committer | ubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2009-09-19 23:02:45 +0000 |
commit | 11d720efd34559125bbc01111a7b428c5a4ae83e (patch) | |
tree | 0817852a8053de2cfd0510e53a32ef2f93c0789b /context.cpp | |
parent | commented out delete-selected-keys action outside keymanagement (diff) | |
download | gpg4usb-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.cpp | 27 |
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(); +} + } |