aboutsummaryrefslogtreecommitdiffstats
path: root/src/encrypt.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/encrypt.c64
1 files changed, 60 insertions, 4 deletions
diff --git a/src/encrypt.c b/src/encrypt.c
index 4744090d..c59292ff 100644
--- a/src/encrypt.c
+++ b/src/encrypt.c
@@ -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,23 @@ 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);
+ TRACE_BEG3 (DEBUG_CTX, "gpgme_op_encrypt_start", ctx,
+ "flags=0x%x, plain=%p, cipher=%p", flags, plain, cipher);
+
+ 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++;
+ }
+ }
+
+ return TRACE_ERR (encrypt_start (ctx, 0, recp, flags, plain, cipher));
}
@@ -216,8 +254,26 @@ 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 (_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);
}