X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=pgpkey.c;h=05ca27a2209533f30f78638b1ed2360b9ce67804;hp=4fd24ac44a243873449c1b80b460ed385a1aea48;hb=eed5352e46df93f8921d2e6dfdc95b027bad6e1e;hpb=df70e07e24add1869bcc9b7af2277d9d0c09a281 diff --git a/pgpkey.c b/pgpkey.c index 4fd24ac..05ca27a 100644 --- a/pgpkey.c +++ b/pgpkey.c @@ -1,30 +1,25 @@ /* + * Copyright notice from original mutt: * Copyright (C) 1996,1997 Michael R. Elkins * Copyright (c) 1998,1999 Thomas Roessler - * - * This program is free software; you can redistribute it - * and/or modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later - * version. - * - * This program 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 General Public License for more - * details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111, USA. + * + * This file is part of mutt-ng, see http://www.muttng.org/. + * It's licensed under the GNU General Public License, + * please see the file GPL in the top level source directory. */ #if HAVE_CONFIG_H # include "config.h" #endif +#include +#include +#include +#include + #include "mutt.h" +#include "enter.h" +#include "recvattach.h" #include "mutt_curses.h" #include "mutt_menu.h" #include "mime.h" @@ -32,6 +27,8 @@ #include "pager.h" #include "sort.h" +#include "lib/debug.h" + #include #include #include @@ -285,10 +282,10 @@ static int _pgp_compare_address (const void *a, const void *b) pgp_uid_t **s = (pgp_uid_t **) a; pgp_uid_t **t = (pgp_uid_t **) b; - if ((r = mutt_strcasecmp ((*s)->addr, (*t)->addr))) + if ((r = str_casecmp ((*s)->addr, (*t)->addr))) return r > 0; else - return (mutt_strcasecmp (_pgp_keyid ((*s)->parent), + return (str_casecmp (_pgp_keyid ((*s)->parent), _pgp_keyid ((*t)->parent)) > 0); } @@ -307,11 +304,11 @@ static int _pgp_compare_keyid (const void *a, const void *b) pgp_uid_t **s = (pgp_uid_t **) a; pgp_uid_t **t = (pgp_uid_t **) b; - if ((r = mutt_strcasecmp (_pgp_keyid ((*s)->parent), + if ((r = str_casecmp (_pgp_keyid ((*s)->parent), _pgp_keyid ((*t)->parent)))) return r > 0; else - return (mutt_strcasecmp ((*s)->addr, (*t)->addr)) > 0; + return (str_casecmp ((*s)->addr, (*t)->addr)) > 0; } static int pgp_compare_keyid (const void *a, const void *b) @@ -328,7 +325,7 @@ static int _pgp_compare_date (const void *a, const void *b) if ((r = ((*s)->parent->gen_time - (*t)->parent->gen_time))) return r > 0; - return (mutt_strcasecmp ((*s)->addr, (*t)->addr)) > 0; + return (str_casecmp ((*s)->addr, (*t)->addr)) > 0; } static int pgp_compare_date (const void *a, const void *b) @@ -353,9 +350,9 @@ static int _pgp_compare_trust (const void *a, const void *b) return r < 0; if ((r = ((*s)->parent->gen_time - (*t)->parent->gen_time))) return r < 0; - if ((r = mutt_strcasecmp ((*s)->addr, (*t)->addr))) + if ((r = str_casecmp ((*s)->addr, (*t)->addr))) return r > 0; - return (mutt_strcasecmp (_pgp_keyid ((*s)->parent), + return (str_casecmp (_pgp_keyid ((*s)->parent), _pgp_keyid ((*t)->parent))) > 0; } @@ -414,11 +411,11 @@ static int pgp_id_matches_addr (ADDRESS * addr, ADDRESS * u_addr, rv |= PGP_KV_STRONGID; if (addr->mailbox && u_addr->mailbox - && mutt_strcasecmp (addr->mailbox, u_addr->mailbox) == 0) + && str_casecmp (addr->mailbox, u_addr->mailbox) == 0) rv |= PGP_KV_ADDR; if (addr->personal && u_addr->personal - && mutt_strcasecmp (addr->personal, u_addr->personal) == 0) + && str_casecmp (addr->personal, u_addr->personal) == 0) rv |= PGP_KV_STRING; return rv; @@ -457,7 +454,7 @@ static pgp_key_t pgp_select_key (pgp_key_t keys, ADDRESS * p, const char *s) if (i == keymax) { keymax += 5; - safe_realloc (&KeyTable, sizeof (pgp_uid_t *) * keymax); + p_realloc(&KeyTable, keymax); } KeyTable[i++] = a; @@ -526,13 +523,13 @@ static pgp_key_t pgp_select_key (pgp_key_t keys, ADDRESS * p, const char *s) mutt_mktemp (tempfile); if ((devnull = fopen ("/dev/null", "w")) == NULL) { /* __FOPEN_CHECKED__ */ - mutt_perror _("Can't open /dev/null"); + mutt_perror (_("Can't open /dev/null")); break; } if ((fp = safe_fopen (tempfile, "w")) == NULL) { fclose (devnull); - mutt_perror _("Can't create temporary file"); + mutt_perror (_("Can't create temporary file")); break; } @@ -546,7 +543,7 @@ static pgp_key_t pgp_select_key (pgp_key_t keys, ADDRESS * p, const char *s) if ((thepid = pgp_invoke_verify_key (NULL, NULL, NULL, -1, fileno (fp), fileno (devnull), tmpbuf)) == -1) { - mutt_perror _("Can't create filter"); + mutt_perror (_("Can't create filter")); unlink (tempfile); fclose (fp); @@ -585,7 +582,7 @@ static pgp_key_t pgp_select_key (pgp_key_t keys, ADDRESS * p, const char *s) if (option (OPTPGPCHECKTRUST) && (!pgp_id_is_valid (KeyTable[menu->current]) || !pgp_id_is_strong (KeyTable[menu->current]))) { - char *s = ""; + const char *s = ""; char buff[LONG_STRING]; if (KeyTable[menu->current]->flags & KEYFLAG_CANTUSE) @@ -629,7 +626,7 @@ static pgp_key_t pgp_select_key (pgp_key_t keys, ADDRESS * p, const char *s) } mutt_menuDestroy (&menu); - FREE (&KeyTable); + p_delete(&KeyTable); set_option (OPTNEEDREDRAW); @@ -649,27 +646,27 @@ pgp_key_t pgp_ask_for_key (char *tag, char *whatfor, if (whatfor) { for (l = id_defaults; l; l = l->next) - if (!mutt_strcasecmp (whatfor, l->what)) { + if (!str_casecmp (whatfor, l->what)) { strfcpy (resp, NONULL (l->dflt), sizeof (resp)); break; } } - FOREVER { + for (;;) { resp[0] = 0; if (mutt_get_field (tag, resp, sizeof (resp), M_CLEAR) != 0) return NULL; if (whatfor) { if (l) - mutt_str_replace (&l->dflt, resp); + str_replace (&l->dflt, resp); else { - l = safe_malloc (sizeof (struct pgp_cache)); + l = p_new(struct pgp_cache, 1); l->next = id_defaults; id_defaults = l; - l->what = safe_strdup (whatfor); - l->dflt = safe_strdup (resp); + l->what = m_strdup(whatfor); + l->dflt = m_strdup(resp); } } @@ -711,13 +708,13 @@ BODY *pgp_make_key_attachment (char *tempf) } if ((tempfp = safe_fopen (tempf, tempf == tempfb ? "w" : "a")) == NULL) { - mutt_perror _("Can't create temporary file"); + mutt_perror (_("Can't create temporary file")); return NULL; } if ((devnull = fopen ("/dev/null", "w")) == NULL) { /* __FOPEN_CHECKED__ */ - mutt_perror _("Can't open /dev/null"); + mutt_perror (_("Can't open /dev/null")); fclose (tempfp); if (tempf == tempfb) @@ -731,7 +728,7 @@ BODY *pgp_make_key_attachment (char *tempf) if ((thepid = pgp_invoke_export (NULL, NULL, NULL, -1, fileno (tempfp), fileno (devnull), tmp)) == -1) { - mutt_perror _("Can't create filter"); + mutt_perror (_("Can't create filter")); unlink (tempf); fclose (tempfp); @@ -745,13 +742,13 @@ BODY *pgp_make_key_attachment (char *tempf) fclose (devnull); att = mutt_new_body (); - att->filename = safe_strdup (tempf); + att->filename = m_strdup(tempf); att->unlink = 1; att->use_disp = 0; att->type = TYPEAPPLICATION; - att->subtype = safe_strdup ("pgp-keys"); + att->subtype = m_strdup("pgp-keys"); snprintf (buff, sizeof (buff), _("PGP Key %s."), tmp); - att->description = safe_strdup (buff); + att->description = m_strdup(buff); mutt_update_encoding (att); stat (tempf, &sb); @@ -765,16 +762,16 @@ static LIST *pgp_add_string_to_hints (LIST * hints, const char *str) char *scratch; char *t; - if ((scratch = safe_strdup (str)) == NULL) + if ((scratch = m_strdup(str)) == NULL) return hints; for (t = strtok (scratch, " ,.:\"()<>\n"); t; t = strtok (NULL, " ,.:\"()<>\n")) { - if (strlen (t) > 3) + if (m_strlen(t) > 3) hints = mutt_add_list (hints, t); } - FREE (&scratch); + p_delete(&scratch); return hints; } @@ -819,17 +816,15 @@ pgp_key_t pgp_getkeybyaddr (ADDRESS * a, short abilities, pgp_ring_t keyring) if (!keys) return NULL; - dprint (5, (debugfile, "pgp_getkeybyaddr: looking for %s <%s>.", - a->personal, a->mailbox)); - + debug_print (5, ("looking for %s <%s>\n", a->personal, a->mailbox)); for (k = keys; k; k = kn) { kn = k->next; - dprint (5, (debugfile, " looking at key: %s\n", pgp_keyid (k))); + debug_print (5, (" looking at key: %s\n", pgp_keyid (k))); if (abilities && !(k->flags & abilities)) { - dprint (5, (debugfile, " insufficient abilities: Has %x, want %x\n", + debug_print (5, (" insufficient abilities: Has %x, want %x\n", k->flags, abilities)); continue; } @@ -936,17 +931,14 @@ pgp_key_t pgp_getkeybystr (char *p, short abilities, pgp_ring_t keyring) match = 0; for (a = k->address; a; a = a->next) { - dprint (5, - (debugfile, - "pgp_getkeybystr: matching \"%s\" against key %s, \"%s\": ", p, - pgp_keyid (k), a->addr)); - if (!*p || mutt_strcasecmp (p, pgp_keyid (k)) == 0 - || (!mutt_strncasecmp (p, "0x", 2) - && !mutt_strcasecmp (p + 2, pgp_keyid (k))) - || (option (OPTPGPLONGIDS) && !mutt_strncasecmp (p, "0x", 2) - && !mutt_strcasecmp (p + 2, k->keyid + 8)) - || mutt_stristr (a->addr, p)) { - dprint (5, (debugfile, "match.\n")); + debug_print (5, ("matching \"%s\" against key %s, \"%s\":\n", p, pgp_keyid (k), a->addr)); + if (!*p || str_casecmp (p, pgp_keyid (k)) == 0 + || (!str_ncasecmp (p, "0x", 2) + && !str_casecmp (p + 2, pgp_keyid (k))) + || (option (OPTPGPLONGIDS) && !str_ncasecmp (p, "0x", 2) + && !str_casecmp (p + 2, k->keyid + 8)) + || str_isstr (a->addr, p)) { + debug_print (5, ("match.\n")); match = 1; break; }