2001-12-19 Marcus Brinkmann <marcus@g10code.de>
[gpgme.git] / gpgmeplug / gpgmeplug.c
index 1fc8801..35c723c 100644 (file)
@@ -926,9 +926,26 @@ bool encryptMessage( const char* cleartext,
   err = gpgme_data_new ( &gCiphertext );
 
   gpgme_recipients_new (&rset);
-  gpgme_recipients_add_name (rset, addressee);
+
+
+  if( GPGMEPLUG_PROTOCOL == GPGME_PROTOCOL_CMS )
+  {
+    gpgme_recipients_add_name_with_validity (rset, 
+      "/CN=test cert 1,OU=Aegypten Project,O=g10 Code GmbH,L=Düsseldorf,C=DE",
+      GPGME_VALIDITY_FULL );
+    fputs( "\nGPGSMPLUG encryptMessage() using test key of Aegypten Project\n", stderr );
+  }
+  else
+  {
+    gpgme_recipients_add_name (rset, addressee);
+    fprintf( stderr, "\nGPGMEPLUG encryptMessage() using addressee %s\n", addressee );
+  }
+
 
   err = gpgme_op_encrypt (ctx, rset, gPlaintext, gCiphertext );
+  if( err )
+    fprintf( stderr, "gpgme_op_encrypt() returned this error code:  %i\n\n", err );
+
   gpgme_recipients_release (rset);
   gpgme_data_release (gPlaintext);
 
@@ -951,9 +968,11 @@ bool encryptMessage( const char* cleartext,
     // untrusted key (oder gar keiner) gefunden wurde, verweigert gpg
     // das signieren.
   }
-  
+
   gpgme_release (ctx);
 
+  fflush( stderr );
+
   return bOk;
 }
 
@@ -966,11 +985,12 @@ bool decryptMessage( const char* ciphertext,
                      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;
 
 
 
@@ -984,6 +1004,19 @@ bool decryptMessage( const char* ciphertext,
   struct passphrase_cb_info_s info;
 
 
+
+
+
+  if( !ciphertext )
+    return false;
+
+  err = gpgme_new (&ctx);
+  gpgme_set_protocol (ctx, GPGMEPLUG_PROTOCOL);
+
+
+
+
+
 /*
   temporary code!!
 
@@ -999,28 +1032,28 @@ bool decryptMessage( const char* ciphertext,
 
 
 
-    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,