aboutsummaryrefslogtreecommitdiffstats
path: root/gpgmeplug/gpgmeplug.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--gpgmeplug/gpgmeplug.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/gpgmeplug/gpgmeplug.c b/gpgmeplug/gpgmeplug.c
index 74fb3c26..342c7bd3 100644
--- a/gpgmeplug/gpgmeplug.c
+++ b/gpgmeplug/gpgmeplug.c
@@ -1510,9 +1510,24 @@ bool decryptAndCheckMessage( const char* ciphertext,
const char* requestCertificateDialog(){ return 0; }
-bool requestDecentralCertificate( const char* name, const char*
- email, const char* organization, const char* department,
- const char* ca_address ){ return true; }
+bool requestDecentralCertificate( const char* certparms, char** generatedKey )
+{
+ GpgmeCtx ctx;
+ GpgmeError err = gpgme_new (&ctx);
+ if( err != GPGME_No_Error )
+ return false;
+
+ gpgme_set_protocol (ctx, GPGMEPLUG_PROTOCOL);
+
+ gpgme_set_armor (ctx, __GPGMEPLUG_SIGNATURE_CODE_IS_BINARY ? 0 : 1);
+
+ if( gpgme_op_genkey( ctx, certparms, NULL, NULL ) == GPGME_No_Error )
+ return true;
+ else
+ return false;
+
+ gpgme_release( ctx );
+}
bool requestCentralCertificateAndPSE( const char* name,
const char* email, const char* organization, const char* department,