X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=gnupgparse.c;h=b9f00bad4ac8052b050b4b5278a106d34893a222;hp=f2e740cefb0633420750998bb3df518d96e3c668;hb=86cf852af75aa1f893b25a5fd615ac1fdb1b6033;hpb=df70e07e24add1869bcc9b7af2277d9d0c09a281 diff --git a/gnupgparse.c b/gnupgparse.c index f2e740c..b9f00ba 100644 --- a/gnupgparse.c +++ b/gnupgparse.c @@ -1,23 +1,11 @@ /* + * Copyright notice from original mutt: * Copyright (C) 1998-2000 Werner Koch * Copyright (C) 1999-2000 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. */ /* @@ -45,12 +33,16 @@ #include #include +#include +#include + +#include + #include "mutt.h" #include "pgp.h" #include "charset.h" -/* for hexval */ -#include "mime.h" +#include "lib/debug.h" /**************** * Read the GNUPG keys. For now we read the complete keyring by @@ -92,22 +84,22 @@ static void fix_uid (char *uid) if (_chs && (cd = mutt_iconv_open (_chs, "utf-8", 0)) != (iconv_t) - 1) { int n = s - uid + 1; /* chars available in original buffer */ char *buf; - ICONV_CONST char *ib; + const char *ib; char *ob; size_t ibl, obl; - buf = safe_malloc (n + 1); + buf = p_new(char, n + 1); ib = uid, ibl = d - uid + 1, ob = buf, obl = n; - iconv (cd, &ib, &ibl, &ob, &obl); + my_iconv(cd, &ib, &ibl, &ob, &obl); if (!ibl) { if (ob - buf < n) { memcpy (uid, buf, ob - buf); uid[ob - buf] = '\0'; } - else if (ob - buf == n && (buf[n] = 0, strlen (buf) < n)) + else if (ob - buf == n && (buf[n] = 0, m_strlen(buf) < n)) memcpy (uid, buf, n); } - FREE (&buf); + p_delete(&buf); iconv_close (cd); } } @@ -124,7 +116,7 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k) if (!*buf) return NULL; - dprint (2, (debugfile, "parse_pub_line: buf = `%s'\n", buf)); + debug_print (2, ("buf = `%s'\n", buf)); for (p = buf; p; p = pend) { if ((pend = strchr (p, ':'))) @@ -136,27 +128,27 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k) switch (field) { case 1: /* record type */ { - dprint (2, (debugfile, "record type: %s\n", p)); + debug_print (2, ("record type: %s\n", p)); - if (!mutt_strcmp (p, "pub")); - else if (!mutt_strcmp (p, "sub")) + if (!m_strcmp(p, "pub")); + else if (!m_strcmp(p, "sub")) *is_subkey = 1; - else if (!mutt_strcmp (p, "sec")); - else if (!mutt_strcmp (p, "ssb")) + else if (!m_strcmp(p, "sec")); + else if (!m_strcmp(p, "ssb")) *is_subkey = 1; - else if (!mutt_strcmp (p, "uid")) + else if (!m_strcmp(p, "uid")) is_uid = 1; else return NULL; if (!(is_uid || (*is_subkey && option (OPTPGPIGNORESUB)))) - k = safe_calloc (sizeof *k, 1); + k = pgp_new_keyinfo(); break; } case 2: /* trust info */ { - dprint (2, (debugfile, "trust info: %s\n", p)); + debug_print (2, ("trust info: %s\n", p)); switch (*p) { /* look only at the first letter */ case 'e': @@ -190,7 +182,7 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k) case 3: /* key length */ { - dprint (2, (debugfile, "key len: %s\n", p)); + debug_print (2, ("key len: %s\n", p)); if (!(*is_subkey && option (OPTPGPIGNORESUB))) k->keylen = atoi (p); /* fixme: add validation checks */ @@ -199,7 +191,7 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k) case 4: /* pubkey algo */ { - dprint (2, (debugfile, "pubkey algorithm: %s\n", p)); + debug_print (2, ("pubkey algorithm: %s\n", p)); if (!(*is_subkey && option (OPTPGPIGNORESUB))) { k->numalg = atoi (p); @@ -209,10 +201,10 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k) } case 5: /* 16 hex digits with the long keyid. */ { - dprint (2, (debugfile, "key id: %s\n", p)); + debug_print (2, ("key id: %s\n", p)); if (!(*is_subkey && option (OPTPGPIGNORESUB))) - mutt_str_replace (&k->keyid, p); + str_replace (&k->keyid, p); break; } @@ -221,14 +213,14 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k) char tstr[11]; struct tm time; - dprint (2, (debugfile, "time stamp: %s\n", p)); + debug_print (2, ("time stamp: %s\n", p)); if (!p) break; time.tm_sec = 0; time.tm_min = 0; time.tm_hour = 12; - strncpy (tstr, p, 11); + m_strcpy(tstr, sizeof(tstr), p); tstr[4] = '\0'; time.tm_year = atoi (tstr) - 1900; tstr[7] = '\0'; @@ -252,11 +244,11 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k) if (!is_uid && (*is_subkey && option (OPTPGPIGNORESUB))) break; - dprint (2, (debugfile, "user ID: %s\n", p)); + debug_print (2, ("user ID: %s\n", p)); - uid = safe_calloc (sizeof (pgp_uid_t), 1); + uid = p_new(pgp_uid_t, 1); fix_uid (p); - uid->addr = safe_strdup (p); + uid->addr = m_strdup(p); uid->trust = trust; uid->flags |= flags; uid->parent = k; @@ -273,7 +265,7 @@ static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k) case 11: /* signature class */ break; case 12: /* key capabilities */ - dprint (2, (debugfile, "capabilities info: %s\n", p)); + debug_print (2, ("capabilities info: %s\n", p)); while (*p) { switch (*p++) { @@ -318,7 +310,7 @@ pgp_key_t pgp_get_candidates (pgp_ring_t keyring, LIST * hints) if ((devnull = open ("/dev/null", O_RDWR)) == -1) return NULL; - mutt_str_replace (&_chs, Charset); + str_replace (&_chs, Charset); thepid = pgp_invoke_list_keys (NULL, &fp, NULL, -1, -1, devnull, keyring, hints);