Blame src/status-table.c

Packit Service 30b792
/* status-table.c - Status codes from gnupg.
Packit Service 30b792
 * Copyright (C) 2000 Werner Koch (dd9jn)
Packit Service 30b792
 * Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2012 g10 Code GmbH
Packit Service 30b792
 *
Packit Service 30b792
 * This file is part of GPGME.
Packit Service 30b792
 *
Packit Service 30b792
 * GPGME is free software; you can redistribute it and/or modify it
Packit Service 30b792
 * under the terms of the GNU Lesser General Public License as
Packit Service 30b792
 * published by the Free Software Foundation; either version 2.1 of
Packit Service 30b792
 * the License, or (at your option) any later version.
Packit Service 30b792
 *
Packit Service 30b792
 * GPGME is distributed in the hope that it will be useful, but
Packit Service 30b792
 * WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 30b792
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 30b792
 * Lesser General Public License for more details.
Packit Service 30b792
 *
Packit Service 30b792
 * You should have received a copy of the GNU Lesser General Public
Packit Service 30b792
 * License along with this program; if not, see <https://gnu.org/licenses/>.
Packit Service 30b792
 * SPDX-License-Identifier: LGPL-2.1-or-later
Packit Service 30b792
 */
Packit d7e8d0
Packit d7e8d0
#if HAVE_CONFIG_H
Packit d7e8d0
#include <config.h>
Packit d7e8d0
#endif
Packit d7e8d0
Packit d7e8d0
#include <stdlib.h>
Packit d7e8d0
#include <string.h>
Packit d7e8d0
Packit d7e8d0
#include "util.h"
Packit d7e8d0
Packit d7e8d0
struct status_table_s {
Packit d7e8d0
    const char *name;
Packit d7e8d0
    gpgme_status_code_t code;
Packit d7e8d0
};
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
/* Lexicographically sorted ('_' comes after any letter).  You can use
Packit d7e8d0
   the Emacs command M-x sort-lines.  But don't sweat it, the table is
Packit d7e8d0
   sorted at start up, too.  */
Packit d7e8d0
static struct status_table_s status_table[] =
Packit d7e8d0
{
Packit d7e8d0
  { "ABORT", GPGME_STATUS_ABORT },
Packit d7e8d0
  { "ALREADY_SIGNED", GPGME_STATUS_ALREADY_SIGNED },
Packit d7e8d0
  { "ATTRIBUTE",         GPGME_STATUS_ATTRIBUTE        },
Packit d7e8d0
  { "BACKUP_KEY_CREATED", GPGME_STATUS_BACKUP_KEY_CREATED },
Packit d7e8d0
  { "BADARMOR", GPGME_STATUS_BADARMOR },
Packit d7e8d0
  { "BADMDC", GPGME_STATUS_BADMDC },
Packit d7e8d0
  { "BADSIG", GPGME_STATUS_BADSIG },
Packit d7e8d0
  { "BAD_PASSPHRASE", GPGME_STATUS_BAD_PASSPHRASE },
Packit d7e8d0
  { "BEGIN_DECRYPTION", GPGME_STATUS_BEGIN_DECRYPTION },
Packit d7e8d0
  { "BEGIN_ENCRYPTION", GPGME_STATUS_BEGIN_ENCRYPTION },
Packit d7e8d0
  { "BEGIN_SIGNING",     GPGME_STATUS_BEGIN_SIGNING    },
Packit d7e8d0
  { "BEGIN_STREAM", GPGME_STATUS_BEGIN_STREAM },
Packit d7e8d0
  { "CARDCTRL", GPGME_STATUS_CARDCTRL },
Packit d7e8d0
  { "DECRYPTION_FAILED", GPGME_STATUS_DECRYPTION_FAILED },
Packit d7e8d0
  { "DECRYPTION_INFO",   GPGME_STATUS_DECRYPTION_INFO  },
Packit d7e8d0
  { "DECRYPTION_OKAY", GPGME_STATUS_DECRYPTION_OKAY },
Packit d7e8d0
  { "DELETE_PROBLEM", GPGME_STATUS_DELETE_PROBLEM },
Packit d7e8d0
  { "DECRYPTION_COMPLIANCE_MODE", GPGME_STATUS_DECRYPTION_COMPLIANCE_MODE },
Packit d7e8d0
  { "ENC_TO", GPGME_STATUS_ENC_TO },
Packit d7e8d0
  { "END_DECRYPTION", GPGME_STATUS_END_DECRYPTION },
Packit d7e8d0
  { "END_ENCRYPTION", GPGME_STATUS_END_ENCRYPTION },
Packit d7e8d0
  { "END_STREAM", GPGME_STATUS_END_STREAM },
Packit d7e8d0
  { "ENTER", GPGME_STATUS_ENTER },
Packit d7e8d0
  { "ERRMDC", GPGME_STATUS_ERRMDC },
Packit d7e8d0
  { "ERROR", GPGME_STATUS_ERROR },
Packit d7e8d0
  { "ERRSIG", GPGME_STATUS_ERRSIG },
Packit d7e8d0
  { "EXPKEYSIG", GPGME_STATUS_EXPKEYSIG },
Packit d7e8d0
  { "EXPSIG", GPGME_STATUS_EXPSIG },
Packit d7e8d0
  { "FAILURE", GPGME_STATUS_FAILURE },
Packit d7e8d0
  { "FILE_DONE", GPGME_STATUS_FILE_DONE },
Packit d7e8d0
  { "FILE_ERROR", GPGME_STATUS_FILE_ERROR },
Packit d7e8d0
  { "FILE_START", GPGME_STATUS_FILE_START },
Packit d7e8d0
  { "GET_BOOL", GPGME_STATUS_GET_BOOL },
Packit d7e8d0
  { "GET_HIDDEN", GPGME_STATUS_GET_HIDDEN },
Packit d7e8d0
  { "GET_LINE", GPGME_STATUS_GET_LINE },
Packit d7e8d0
  { "GOODMDC", GPGME_STATUS_GOODMDC },
Packit d7e8d0
  { "GOODSIG", GPGME_STATUS_GOODSIG },
Packit d7e8d0
  { "GOOD_PASSPHRASE", GPGME_STATUS_GOOD_PASSPHRASE },
Packit d7e8d0
  { "GOT_IT", GPGME_STATUS_GOT_IT },
Packit d7e8d0
  { "IMPORTED", GPGME_STATUS_IMPORTED },
Packit d7e8d0
  { "IMPORT_OK", GPGME_STATUS_IMPORT_OK },
Packit d7e8d0
  { "IMPORT_PROBLEM", GPGME_STATUS_IMPORT_PROBLEM },
Packit d7e8d0
  { "IMPORT_RES", GPGME_STATUS_IMPORT_RES },
Packit d7e8d0
  { "INQUIRE_MAXLEN", GPGME_STATUS_INQUIRE_MAXLEN },
Packit d7e8d0
  { "INV_RECP", GPGME_STATUS_INV_RECP },
Packit d7e8d0
  { "INV_SGNR", GPGME_STATUS_INV_SGNR },
Packit d7e8d0
  { "KEYEXPIRED", GPGME_STATUS_KEYEXPIRED },
Packit d7e8d0
  { "KEYREVOKED", GPGME_STATUS_KEYREVOKED },
Packit d7e8d0
  { "KEY_CONSIDERED", GPGME_STATUS_KEY_CONSIDERED },
Packit d7e8d0
  { "KEY_CREATED", GPGME_STATUS_KEY_CREATED },
Packit d7e8d0
  { "KEY_NOT_CREATED",   GPGME_STATUS_KEY_NOT_CREATED  },
Packit d7e8d0
  { "LEAVE", GPGME_STATUS_LEAVE },
Packit d7e8d0
  { "MISSING_PASSPHRASE", GPGME_STATUS_MISSING_PASSPHRASE },
Packit d7e8d0
  { "MOUNTPOINT",        GPGME_STATUS_MOUNTPOINT       },
Packit d7e8d0
  { "NEED_PASSPHRASE", GPGME_STATUS_NEED_PASSPHRASE },
Packit d7e8d0
  { "NEED_PASSPHRASE_PIN", GPGME_STATUS_NEED_PASSPHRASE_PIN },
Packit d7e8d0
  { "NEED_PASSPHRASE_SYM", GPGME_STATUS_NEED_PASSPHRASE_SYM },
Packit d7e8d0
  { "NEWSIG", GPGME_STATUS_NEWSIG },
Packit d7e8d0
  { "NODATA", GPGME_STATUS_NODATA },
Packit d7e8d0
  { "NOTATION_DATA", GPGME_STATUS_NOTATION_DATA },
Packit d7e8d0
  { "NOTATION_FLAGS", GPGME_STATUS_NOTATION_FLAGS },
Packit d7e8d0
  { "NOTATION_NAME", GPGME_STATUS_NOTATION_NAME },
Packit d7e8d0
  { "NO_PUBKEY", GPGME_STATUS_NO_PUBKEY },
Packit d7e8d0
  { "NO_RECP", GPGME_STATUS_NO_RECP },
Packit d7e8d0
  { "NO_SECKEY", GPGME_STATUS_NO_SECKEY },
Packit d7e8d0
  { "NO_SGNR", GPGME_STATUS_NO_SGNR },
Packit d7e8d0
  { "PINENTRY_LAUNCHED", GPGME_STATUS_PINENTRY_LAUNCHED},
Packit d7e8d0
  { "PKA_TRUST_BAD", GPGME_STATUS_PKA_TRUST_BAD },
Packit d7e8d0
  { "PKA_TRUST_GOOD", GPGME_STATUS_PKA_TRUST_GOOD },
Packit d7e8d0
  { "PLAINTEXT", GPGME_STATUS_PLAINTEXT },
Packit d7e8d0
  { "PLAINTEXT_LENGTH",  GPGME_STATUS_PLAINTEXT_LENGTH },
Packit d7e8d0
  { "POLICY_URL", GPGME_STATUS_POLICY_URL },
Packit d7e8d0
  { "PROGRESS", GPGME_STATUS_PROGRESS },
Packit d7e8d0
  { "REVKEYSIG", GPGME_STATUS_REVKEYSIG },
Packit d7e8d0
  { "RSA_OR_IDEA", GPGME_STATUS_RSA_OR_IDEA },
Packit d7e8d0
  { "SC_OP_FAILURE", GPGME_STATUS_SC_OP_FAILURE },
Packit d7e8d0
  { "SC_OP_SUCCESS", GPGME_STATUS_SC_OP_SUCCESS },
Packit d7e8d0
  { "SESSION_KEY", GPGME_STATUS_SESSION_KEY },
Packit d7e8d0
  { "SHM_GET", GPGME_STATUS_SHM_GET },
Packit d7e8d0
  { "SHM_GET_BOOL", GPGME_STATUS_SHM_GET_BOOL },
Packit d7e8d0
  { "SHM_GET_HIDDEN", GPGME_STATUS_SHM_GET_HIDDEN },
Packit d7e8d0
  { "SHM_INFO", GPGME_STATUS_SHM_INFO },
Packit d7e8d0
  { "SIGEXPIRED", GPGME_STATUS_SIGEXPIRED },
Packit d7e8d0
  { "SIG_CREATED", GPGME_STATUS_SIG_CREATED },
Packit d7e8d0
  { "SIG_ID", GPGME_STATUS_SIG_ID },
Packit d7e8d0
  { "SIG_SUBPACKET", GPGME_STATUS_SIG_SUBPACKET },
Packit d7e8d0
  { "SUCCESS", GPGME_STATUS_SUCCESS },
Packit d7e8d0
  { "TOFU_STATS", GPGME_STATUS_TOFU_STATS },
Packit d7e8d0
  { "TOFU_STATS_LONG", GPGME_STATUS_TOFU_STATS_LONG },
Packit d7e8d0
  { "TOFU_USER", GPGME_STATUS_TOFU_USER },
Packit d7e8d0
  { "TRUNCATED", GPGME_STATUS_TRUNCATED },
Packit d7e8d0
  { "TRUST_FULLY", GPGME_STATUS_TRUST_FULLY },
Packit d7e8d0
  { "TRUST_MARGINAL", GPGME_STATUS_TRUST_MARGINAL },
Packit d7e8d0
  { "TRUST_NEVER", GPGME_STATUS_TRUST_NEVER },
Packit d7e8d0
  { "TRUST_ULTIMATE", GPGME_STATUS_TRUST_ULTIMATE },
Packit d7e8d0
  { "TRUST_UNDEFINED", GPGME_STATUS_TRUST_UNDEFINED },
Packit d7e8d0
  { "UNEXPECTED", GPGME_STATUS_UNEXPECTED },
Packit d7e8d0
  { "USERID_HINT", GPGME_STATUS_USERID_HINT },
Packit d7e8d0
  { "VALIDSIG", GPGME_STATUS_VALIDSIG },
Packit d7e8d0
  { "VERIFICATION_COMPLIANCE_MODE", GPGME_STATUS_VERIFICATION_COMPLIANCE_MODE },
Packit d7e8d0
  {NULL, 0}
Packit d7e8d0
};
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
static int
Packit d7e8d0
status_cmp (const void *ap, const void *bp)
Packit d7e8d0
{
Packit d7e8d0
  const struct status_table_s *a = ap;
Packit d7e8d0
  const struct status_table_s *b = bp;
Packit d7e8d0
Packit d7e8d0
  return strcmp (a->name, b->name);
Packit d7e8d0
}
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
void
Packit d7e8d0
_gpgme_status_init (void)
Packit d7e8d0
{
Packit d7e8d0
  qsort (status_table,
Packit d7e8d0
	 DIM(status_table) - 1, sizeof (status_table[0]),
Packit d7e8d0
	 status_cmp);
Packit d7e8d0
}
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
gpgme_status_code_t
Packit d7e8d0
_gpgme_parse_status (const char *name)
Packit d7e8d0
{
Packit d7e8d0
  struct status_table_s t, *r;
Packit d7e8d0
  t.name = name;
Packit d7e8d0
  r = bsearch (&t, status_table, DIM(status_table) - 1,
Packit d7e8d0
	       sizeof t, status_cmp);
Packit d7e8d0
  return r ? r->code : -1;
Packit d7e8d0
}
Packit d7e8d0
Packit d7e8d0
Packit d7e8d0
const char *
Packit d7e8d0
_gpgme_status_to_string (gpgme_status_code_t code)
Packit d7e8d0
{
Packit d7e8d0
  int i;
Packit d7e8d0
Packit d7e8d0
  for (i=0; i < DIM(status_table); i++)
Packit d7e8d0
    if (status_table[i].code == code)
Packit d7e8d0
      return status_table[i].name? status_table[i].name : "";
Packit d7e8d0
  return "status_code_lost";
Packit d7e8d0
}