diff --git a/GpgMEWorker.cpp b/GpgMEWorker.cpp index 7a2d03f..20f4aa9 100644 --- a/GpgMEWorker.cpp +++ b/GpgMEWorker.cpp @@ -273,10 +273,25 @@ const Error GpgMEWorker::ExportPrivateKey(const char * pattern, string& buffer, Error e = ctx->exportPublicKeys(pattern, kData, flags); buffer = kData.toString(); // Empty - + delete ppp; delete ctx; return e; } #endif + +const Error GpgMEWorker::ExportPublicKey(const char* pattern, string& buffer) +{ + GpgME::Data kData; + Context * ctx = Context::createForProtocol(Protocol::OpenPGP); + ctx->setArmor(true); + uint flags = Context::ExportDefault; + + Error e = ctx->exportPublicKeys(pattern, kData, flags); + buffer = kData.toString(); + + delete ctx; + + return e; +} diff --git a/GpgMEWorker.h b/GpgMEWorker.h index 8bdee87..31b6535 100644 --- a/GpgMEWorker.h +++ b/GpgMEWorker.h @@ -146,9 +146,15 @@ public: * @return */ const Error ExportPrivateKey(const char * pattern, string& buffer, - const string& passphrase = ""); + const string& passphrase = ""); #endif - + /** + * Export a public key. + * @param pattern : a key fingerprint + * @param buffer : returns data in armor mode + * @return + */ + const Error ExportPublicKey(const char * pattern, string& buffer); private: Context * m_ctx; // GPG will fetch a password here.