// untrusted key (oder gar keiner) gefunden wurde, verweigert gpg
// das signieren.
}
-
+
gpgme_release (ctx);
return bOk;
const char** cleartext,
const char* certificate )
{
- GpgmeCtx ctx;
- GpgmeData gCiphertext, gPlaintext;
- size_t rCLen;
- char* rCiph = 0;
- bool bOk = false;
+ GpgmeCtx ctx;
+ GpgmeError err;
+ GpgmeData gCiphertext, gPlaintext;
+ size_t rCLen = 0;
+ char* rCiph = 0;
+ bool bOk = false;
struct passphrase_cb_info_s info;
+
+
+
+ if( !ciphertext )
+ return false;
+
+ err = gpgme_new (&ctx);
+ gpgme_set_protocol (ctx, GPGMEPLUG_PROTOCOL);
+
+
+
+
+
/*
temporary code!!
- gpgme_new( &ctx );
- gpgme_data_new_from_mem( &gCiphertext, ciphertext,
- 1+strlen( ciphertext ), 1 );
- gpgme_data_new( &gPlaintext );
- gpgme_op_decrypt( ctx, gCiphertext, gPlaintext );
- gpgme_data_release( gCiphertext );
+ gpgme_data_new_from_mem( &gCiphertext, ciphertext,
+ 1+strlen( ciphertext ), 1 );
+ gpgme_data_new( &gPlaintext );
- rCiph = gpgme_data_release_and_get_mem( gPlaintext, &rCLen );
+ gpgme_op_decrypt( ctx, gCiphertext, gPlaintext );
+ gpgme_data_release( gCiphertext );
- *cleartext = malloc( rCLen + 1 );
- if( *cleartext ) {
- if( rCLen ) {
- bOk = true;
- strncpy((char*)*cleartext, rCiph, rCLen );
- }
- ((char*)(*cleartext))[rCLen] = 0;
- }
+ rCiph = gpgme_data_release_and_get_mem( gPlaintext, &rCLen );
- free( rCiph );
- gpgme_release( ctx );
- return bOk;
+ *cleartext = malloc( rCLen + 1 );
+ if( *cleartext ) {
+ if( rCLen ) {
+ bOk = true;
+ strncpy((char*)*cleartext, rCiph, rCLen );
+ }
+ ((char*)(*cleartext))[rCLen] = 0;
+ }
+
+ free( rCiph );
+ gpgme_release( ctx );
+ return bOk;
}
bool decryptAndCheckMessage( const char* ciphertext,