* gpgme.texi (Key Listing Mode): Doc KEYLIST_MODE_VALIDATE.
[gpgme.git] / gpgme / signers.c
index 8d39a1e..a5662a2 100644 (file)
 #include <stdio.h>
 #include <stdlib.h>
 #include <assert.h>
+#include <errno.h>
 
 #include "util.h"
 #include "context.h"
 
-/* The signers are directly stored in the context.  So this is quite
-   different to a recipient set.  */
-
-
+\f
 /* Delete all signers from CTX.  */
 void
-gpgme_signers_clear (GpgmeCtx ctx)
+gpgme_signers_clear (gpgme_ctx_t ctx)
 {
-  int i;
+  unsigned int i;
 
   if (!ctx || !ctx->signers)
     return;
@@ -52,21 +50,21 @@ gpgme_signers_clear (GpgmeCtx ctx)
 }
 
 /* Add KEY to list of signers in CTX.  */
-GpgmeError
-gpgme_signers_add (GpgmeCtx ctx, const GpgmeKey key)
+gpgme_error_t
+gpgme_signers_add (gpgme_ctx_t ctx, const gpgme_key_t key)
 {
   if (!ctx || !key)
-    return GPGME_Invalid_Value;
+    return gpg_error (GPG_ERR_INV_VALUE);
 
   if (ctx->signers_len == ctx->signers_size)
     {
-      GpgmeKey *newarr;
+      gpgme_key_t *newarr;
       int n = ctx->signers_size + 5;
       int j;
 
       newarr = realloc (ctx->signers, n * sizeof (*newarr));
       if (!newarr)
-       return GPGME_Out_Of_Core;
+       return gpg_error_from_errno (errno);
       for (j = ctx->signers_size; j < n; j++)
        newarr[j] = NULL;
       ctx->signers = newarr;
@@ -80,15 +78,17 @@ gpgme_signers_add (GpgmeCtx ctx, const GpgmeKey key)
 
 
 /* Return the SEQth signer's key in CTX with one reference.  */
-GpgmeKey
-gpgme_signers_enum (const GpgmeCtx ctx, int seq)
+gpgme_key_t
+gpgme_signers_enum (const gpgme_ctx_t ctx, int seq)
 {
+  unsigned int seqno;
+
   if (!ctx || seq < 0)
     return NULL;
 
-  if (seq >= ctx->signers_len)
+  seqno = (unsigned int) seq;
+  if (seqno >= ctx->signers_len)
     return NULL;
-
-  gpgme_key_ref (ctx->signers[seq]);
-  return ctx->signers[seq];
+  gpgme_key_ref (ctx->signers[seqno]);
+  return ctx->signers[seqno];
 }