aboutsummaryrefslogtreecommitdiffstats
path: root/src/trustlist.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2025-02-21 09:56:00 +0000
committerWerner Koch <[email protected]>2025-02-21 10:01:28 +0000
commit7e6a65e66a96278bed5fed6d0b75887c0f032c4e (patch)
tree25605585dad3d04e4a24d4cef3c4c43bbfb41416 /src/trustlist.c
parentRemove long deprecated functions. (diff)
downloadgpgme-7e6a65e66a96278bed5fed6d0b75887c0f032c4e.tar.gz
gpgme-7e6a65e66a96278bed5fed6d0b75887c0f032c4e.zip
Remove the long deprecated and never working trust list functions.
* src/trust-item.c: Remove file. * src/trustlist.c: Remove file. * src/Makefile.am (main_sources): Remove those files. * src/gpgme.h.in (GPGME_EVENT_NEXT_TRUSTITEM): Remove. (gpgme_trust_item_t, GpgmeTrustItem): Remove. (gpgme_op_trustlist_start): Remove. (gpgme_op_trustlist_next): Remove. (gpgme_op_trustlist_end): Remove. (gpgme_trust_item_ref): Remove. (gpgme_trust_item_unref, gpgme_trust_item_release): Remove. * src/gpgme.def: Remove removed functions. * src/libgpgme.vers: Ditto. -- The GPGME_ATTR_foo based functions are deprecated since 2003 and it is time to remove them now. The trustlist functions never worked: This never worked in reality because the required feature has been removed from GnuPG version 1.3.2 soon after introduction of this feature in gpgme in 2003. It was anyway marked as experimental. They even returned GPG_ERR_NOT_IMPLEMENTED since gpgme 1.14.0 (summer 2000) instead of failing with a incomprehensible error code. GnuPG-bug-id: 4834
Diffstat (limited to 'src/trustlist.c')
-rw-r--r--src/trustlist.c279
1 files changed, 0 insertions, 279 deletions
diff --git a/src/trustlist.c b/src/trustlist.c
deleted file mode 100644
index e31c2456..00000000
--- a/src/trustlist.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/* trustlist.c - Trust item listing.
- * Copyright (C) 2000 Werner Koch (dd9jn)
- * Copyright (C) 2001, 2002, 2003, 2004 g10 Code GmbH
- *
- * This file is part of GPGME.
- *
- * GPGME is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * GPGME is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, see <https://gnu.org/licenses/>.
- * SPDX-License-Identifier: LGPL-2.1-or-later
- */
-
-#if HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <errno.h>
-
-#include "gpgme.h"
-#include "debug.h"
-#include "util.h"
-#include "context.h"
-#include "ops.h"
-
-
-struct trust_queue_item_s
-{
- struct trust_queue_item_s *next;
- gpgme_trust_item_t item;
-};
-
-typedef struct
-{
- /* Something new is available. */
- int trust_cond;
- struct trust_queue_item_s *trust_queue;
-} *op_data_t;
-
-
-
-static gpgme_error_t
-trustlist_status_handler (void *priv, gpgme_status_code_t code, char *args)
-{
- (void)priv;
- (void)code;
- (void)args;
- return 0;
-}
-
-
-/* This handler is used to parse the output of --list-trust-path:
- Format:
- level:keyid:type:recno:ot:val:mc:cc:name:
- With TYPE = U for a user ID
- K for a key
- The RECNO is either the one of the dir record or the one of the uid
- record. OT is the usual trust letter and only available on K
- lines. VAL is the calculated validity MC is the marginal trust
- counter and only available on U lines CC is the same for the
- complete count NAME ist the username and only printed on U
- lines. */
-static gpgme_error_t
-trustlist_colon_handler (void *priv, char *line)
-{
- gpgme_ctx_t ctx = (gpgme_ctx_t) priv;
- gpgme_error_t err;
- char *p, *pend;
- int field = 0;
- gpgme_trust_item_t item = NULL;
-
- if (!line)
- return 0; /* EOF */
-
- for (p = line; p; p = pend)
- {
- field++;
- pend = strchr (p, ':');
- if (pend)
- *pend++ = 0;
-
- switch (field)
- {
- case 1: /* level */
- err = _gpgme_trust_item_new (&item);
- if (err)
- return err;
- item->level = atoi (p);
- break;
- case 2: /* long keyid */
- if (strlen (p) == DIM(item->keyid) - 1)
- strcpy (item->keyid, p);
- break;
- case 3: /* type */
- item->type = *p == 'K'? 1 : *p == 'U'? 2 : 0;
- break;
- case 5: /* owner trust */
- item->_owner_trust[0] = *p;
- break;
- case 6: /* validity */
- item->_validity[0] = *p;
- break;
- case 9: /* user ID */
- item->name = strdup (p);
- if (!item->name)
- {
- int saved_err = gpg_error_from_syserror ();
- gpgme_trust_item_unref (item);
- return saved_err;
- }
- break;
- }
- }
-
- if (item)
- _gpgme_engine_io_event (ctx->engine, GPGME_EVENT_NEXT_TRUSTITEM, item);
- return 0;
-}
-
-
-void
-_gpgme_op_trustlist_event_cb (void *data, gpgme_event_io_t type,
- void *type_data)
-{
- gpgme_ctx_t ctx = (gpgme_ctx_t) data;
- gpgme_error_t err;
- void *hook;
- op_data_t opd;
- gpgme_trust_item_t item = (gpgme_trust_item_t) type_data;
- struct trust_queue_item_s *q, *q2;
-
- assert (type == GPGME_EVENT_NEXT_TRUSTITEM);
-
- err = _gpgme_op_data_lookup (ctx, OPDATA_TRUSTLIST, &hook, -1, NULL);
- opd = hook;
- if (err)
- return;
-
- q = malloc (sizeof *q);
- if (!q)
- {
- gpgme_trust_item_unref (item);
- /* FIXME: GPGME_Out_Of_Core; */
- return;
- }
- q->item = item;
- q->next = NULL;
- /* FIXME: Use a tail pointer */
- q2 = opd->trust_queue;
- if (!q2)
- opd->trust_queue = q;
- else
- {
- while (q2->next)
- q2 = q2->next;
- q2->next = q;
- }
- /* FIXME: unlock queue */
- opd->trust_cond = 1;
-}
-
-
-gpgme_error_t
-gpgme_op_trustlist_start (gpgme_ctx_t ctx, const char *pattern, int max_level)
-{
- gpgme_error_t err = 0;
- void *hook;
- op_data_t opd;
-
- TRACE_BEG (DEBUG_CTX, "gpgme_op_trustlist_start", ctx,
- "pattern=%s, max_level=%i", pattern, max_level);
-
- if (!ctx || !pattern || !*pattern)
- return TRACE_ERR (gpg_error (GPG_ERR_INV_VALUE));
-
- err = _gpgme_op_reset (ctx, 2);
- if (err)
- return TRACE_ERR (err);
-
- err = _gpgme_op_data_lookup (ctx, OPDATA_TRUSTLIST, &hook,
- sizeof (*opd), NULL);
- opd = hook;
- if (err)
- return TRACE_ERR (err);
-
- _gpgme_engine_set_status_handler (ctx->engine,
- trustlist_status_handler, ctx);
- err = _gpgme_engine_set_colon_line_handler (ctx->engine,
- trustlist_colon_handler, ctx);
- if (err)
- return TRACE_ERR (err);
-
- err = _gpgme_engine_op_trustlist (ctx->engine, pattern);
- return TRACE_ERR (err);
-}
-
-
-gpgme_error_t
-gpgme_op_trustlist_next (gpgme_ctx_t ctx, gpgme_trust_item_t *r_item)
-{
- gpgme_error_t err;
- void *hook;
- op_data_t opd;
- struct trust_queue_item_s *q;
-
- TRACE_BEG (DEBUG_CTX, "gpgme_op_trustlist_next", ctx, "");
-
- if (!ctx || !r_item)
- return TRACE_ERR (gpg_error (GPG_ERR_INV_VALUE));
- *r_item = NULL;
- if (!ctx)
- return TRACE_ERR (gpg_error (GPG_ERR_INV_VALUE));
-
- err = _gpgme_op_data_lookup (ctx, OPDATA_TRUSTLIST, &hook, -1, NULL);
- opd = hook;
- if (err)
- return TRACE_ERR (err);
- if (opd == NULL)
- return TRACE_ERR (gpg_error (GPG_ERR_INV_VALUE));
-
- if (!opd->trust_queue)
- {
- err = _gpgme_wait_on_condition (ctx, &opd->trust_cond, NULL);
- if (err)
- return TRACE_ERR (err);
- if (!opd->trust_cond)
- return TRACE_ERR (gpg_error (GPG_ERR_EOF));
- opd->trust_cond = 0;
- assert (opd->trust_queue);
- }
- q = opd->trust_queue;
- opd->trust_queue = q->next;
-
- *r_item = q->item;
- free (q);
- if ((*r_item)->type == 1)
- {
- TRACE_SUC ("trust_item=%p: %s: owner trust %s with level %i "
- "and validity %s", *r_item, (*r_item)->keyid,
- (*r_item)->owner_trust, (*r_item)->level,
- (*r_item)->validity);
- }
- else if ((*r_item)->type == 2)
- {
- TRACE_SUC ("trust_item=%p: %s: UID %s with level %i "
- "and validity %s", *r_item, (*r_item)->keyid,
- (*r_item)->name, (*r_item)->level, (*r_item)->validity);
- }
- else
- {
- TRACE_SUC ("trust_item=%p: %s: unknown type %i with level %i "
- "and validity %s", *r_item, (*r_item)->keyid,
- (*r_item)->type, (*r_item)->level, (*r_item)->validity);
- }
- return 0;
-}
-
-
-/* Terminate a pending trustlist operation within CTX. */
-gpgme_error_t
-gpgme_op_trustlist_end (gpgme_ctx_t ctx)
-{
- TRACE (DEBUG_CTX, "gpgme_op_trustlist_end", ctx, "");
-
- if (!ctx)
- return gpg_error (GPG_ERR_INV_VALUE);
-
- return 0;
-}