/*
+ * Copyright notice from original mutt:
* Copyright (C) 1998-2000 Werner Koch <werner.koch@guug.de>
* Copyright (C) 1999-2000 Thomas Roessler <roessler@does-not-exist.org>
*
- * 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.
*/
/*
/* for hexval */
#include "mime.h"
+#include "lib/mem.h"
+#include "lib/str.h"
+#include "lib/debug.h"
+
/****************
* Read the GNUPG keys. For now we read the complete keyring by
* calling gnupg in a special mode.
char *ob;
size_t ibl, obl;
- buf = safe_malloc (n + 1);
+ buf = mem_malloc (n + 1);
ib = uid, ibl = d - uid + 1, ob = buf, obl = n;
iconv (cd, &ib, &ibl, &ob, &obl);
if (!ibl) {
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, str_len (buf) < n))
memcpy (uid, buf, n);
}
- FREE (&buf);
+ mem_free (&buf);
iconv_close (cd);
}
}
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, ':')))
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 (!str_cmp (p, "pub"));
+ else if (!str_cmp (p, "sub"))
*is_subkey = 1;
- else if (!mutt_strcmp (p, "sec"));
- else if (!mutt_strcmp (p, "ssb"))
+ else if (!str_cmp (p, "sec"));
+ else if (!str_cmp (p, "ssb"))
*is_subkey = 1;
- else if (!mutt_strcmp (p, "uid"))
+ else if (!str_cmp (p, "uid"))
is_uid = 1;
else
return NULL;
if (!(is_uid || (*is_subkey && option (OPTPGPIGNORESUB))))
- k = safe_calloc (sizeof *k, 1);
+ k = mem_calloc (sizeof *k, 1);
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':
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 */
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);
}
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;
}
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;
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 = mem_calloc (sizeof (pgp_uid_t), 1);
fix_uid (p);
- uid->addr = safe_strdup (p);
+ uid->addr = str_dup (p);
uid->trust = trust;
uid->flags |= flags;
uid->parent = 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++) {
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);