json: Implement op:encrypt
[gpgme.git] / src / signers.c
index b2e8cfa..f540d70 100644 (file)
@@ -66,7 +66,7 @@ gpgme_error_t
 gpgme_signers_add (gpgme_ctx_t ctx, const gpgme_key_t key)
 {
   TRACE_BEG2 (DEBUG_CTX, "gpgme_signers_add", ctx,
-             "key=%p (%s)", key, (key->subkeys && key->subkeys->fpr) ?
+             "key=%p (%s)", key, (key && key->subkeys && key->subkeys->fpr) ?
              key->subkeys->fpr : "invalid");
 
   if (!ctx || !key)
@@ -80,7 +80,7 @@ gpgme_signers_add (gpgme_ctx_t ctx, const gpgme_key_t key)
 
       newarr = realloc (ctx->signers, n * sizeof (*newarr));
       if (!newarr)
-       return TRACE_ERR (gpg_error_from_errno (errno));
+       return TRACE_ERR (gpg_error_from_syserror ());
       for (j = ctx->signers_size; j < n; j++)
        newarr[j] = NULL;
       ctx->signers = newarr;
@@ -93,6 +93,14 @@ gpgme_signers_add (gpgme_ctx_t ctx, const gpgme_key_t key)
 }
 
 
+/* Return the number of signers in CTX.  */
+unsigned int
+gpgme_signers_count (const gpgme_ctx_t ctx)
+{
+  return ctx? ctx->signers_len : 0;
+}
+
+
 /* Return the SEQth signer's key in CTX with one reference.  */
 gpgme_key_t
 gpgme_signers_enum (const gpgme_ctx_t ctx, int seq)