For W32 use a build number instead of abbreviated commit id.
[gpgme.git] / src / encrypt.c
index 4744090d715eac1cf8dc63efb7edd39e68e1ad24..641e90046bdf31837de01a56093a51aeafc28cf5 100644 (file)
@@ -27,6 +27,7 @@
 #include <errno.h>
 
 #include "gpgme.h"
+#include "debug.h"
 #include "context.h"
 #include "ops.h"
 
@@ -66,12 +67,33 @@ gpgme_op_encrypt_result (gpgme_ctx_t ctx)
   op_data_t opd;
   gpgme_error_t err;
 
+  TRACE_BEG (DEBUG_CTX, "gpgme_op_encrypt_result", ctx);
+
   err = _gpgme_op_data_lookup (ctx, OPDATA_ENCRYPT, &hook, -1, NULL);
   opd = hook;
 
   if (err || !opd)
-    return NULL;
+    {
+      TRACE_SUC0 ("result=(null)");
+      return NULL;
+    }
 
+  if (_gpgme_debug_trace ())
+    {
+      gpgme_invalid_key_t invkeys = opd->result.invalid_recipients;
+      int i = 0;
+
+      while (invkeys)
+       {
+         TRACE_LOG3 ("invalid_recipients[%i] = %s (%s)",
+                     i, invkeys->fpr ? invkeys->fpr : "(null)",
+                     gpg_strerror (invkeys->reason));
+         invkeys = invkeys->next;
+         i++;
+       }
+    }
+  
+  TRACE_SUC1 ("result=%p", &opd->result);
   return &opd->result;
 }
 
@@ -205,7 +227,29 @@ gpgme_op_encrypt_start (gpgme_ctx_t ctx, gpgme_key_t recp[],
                        gpgme_encrypt_flags_t flags,
                        gpgme_data_t plain, gpgme_data_t cipher)
 {
-  return encrypt_start (ctx, 0, recp, flags, plain, cipher);
+  gpgme_error_t err;
+
+  TRACE_BEG3 (DEBUG_CTX, "gpgme_op_encrypt_start", ctx,
+             "flags=0x%x, plain=%p, cipher=%p", flags, plain, cipher);
+
+  if (!ctx)
+    return TRACE_ERR (gpg_error (GPG_ERR_INV_VALUE));
+  
+  if (_gpgme_debug_trace () && recp)
+    {
+      int i = 0;
+
+      while (recp[i])
+       {
+         TRACE_LOG3 ("recipient[%i] = %p (%s)", i, recp[i],
+                     (recp[i]->subkeys && recp[i]->subkeys->fpr) ? 
+                     recp[i]->subkeys->fpr : "invalid");
+         i++;
+       }
+    }
+
+  err = encrypt_start (ctx, 0, recp, flags, plain, cipher);
+  return TRACE_ERR (err);
 }
 
 
@@ -216,8 +260,29 @@ gpgme_op_encrypt (gpgme_ctx_t ctx, gpgme_key_t recp[],
                  gpgme_encrypt_flags_t flags,
                  gpgme_data_t plain, gpgme_data_t cipher)
 {
-  gpgme_error_t err = encrypt_start (ctx, 1, recp, flags, plain, cipher);
+  gpgme_error_t err;
+
+  TRACE_BEG3 (DEBUG_CTX, "gpgme_op_encrypt", ctx,
+             "flags=0x%x, plain=%p, cipher=%p", flags, plain, cipher);
+
+  if (!ctx)
+    return TRACE_ERR (gpg_error (GPG_ERR_INV_VALUE));
+
+  if (_gpgme_debug_trace () && recp)
+    {
+      int i = 0;
+
+      while (recp[i])
+       {
+         TRACE_LOG3 ("recipient[%i] = %p (%s)", i, recp[i],
+                     (recp[i]->subkeys && recp[i]->subkeys->fpr) ? 
+                     recp[i]->subkeys->fpr : "invalid");
+         i++;
+       }
+    }
+
+  err = encrypt_start (ctx, 1, recp, flags, plain, cipher);
   if (!err)
     err = _gpgme_wait_one (ctx);
-  return err;
+  return TRACE_ERR (err);
 }