#include "lib/mem.h"
#include "lib/intl.h"
#include "lib/str.h"
+#include "lib/debug.h"
#include <sys/wait.h>
#include <string.h>
* General helper functions.
*/
-/* return true when S pints to a didgit or letter. */
+/* return true when S points to a didgit or letter. */
static int digit_or_letter (const unsigned char *s)
{
- return ((*s >= '0' && *s < '9')
+ return ((*s >= '0' && *s <= '9')
|| (*s >= 'A' && *s <= 'Z')
|| (*s >= 'a' && *s <= 'z'));
}
rv |= CRYPT_KV_STRONGID;
if (addr->mailbox && u_addr->mailbox
- && mutt_strcasecmp (addr->mailbox, u_addr->mailbox) == 0)
+ && safe_strcasecmp (addr->mailbox, u_addr->mailbox) == 0)
rv |= CRYPT_KV_ADDR;
if (addr->personal && u_addr->personal
- && mutt_strcasecmp (addr->personal, u_addr->personal) == 0)
+ && safe_strcasecmp (addr->personal, u_addr->personal) == 0)
rv |= CRYPT_KV_STRING;
return rv;
err = gpgme_new (&ctx);
if (err) {
- mutt_error ("error creating gpgme context: %s\n", gpgme_strerror (err));
+ mutt_error (_("error creating gpgme context: %s\n"), gpgme_strerror (err));
sleep (2);
mutt_exit (1);
}
if (for_smime) {
err = gpgme_set_protocol (ctx, GPGME_PROTOCOL_CMS);
if (err) {
- mutt_error ("error enabling CMS protocol: %s\n", gpgme_strerror (err));
+ mutt_error (_("error enabling CMS protocol: %s\n"), gpgme_strerror (err));
sleep (2);
mutt_exit (1);
}
err = gpgme_data_new (&data);
if (err) {
- mutt_error ("error creating gpgme data object: %s\n",
+ mutt_error (_("error creating gpgme data object: %s\n"),
gpgme_strerror (err));
sleep (2);
mutt_exit (1);
}
unlink (tempfile);
if (err) {
- mutt_error ("error allocating data object: %s\n", gpgme_strerror (err));
+ mutt_error (_("error allocating data object: %s\n"), gpgme_strerror (err));
return NULL;
}
err = gpgme_data_new_from_filepart (&data, NULL, fp, offset, length);
if (err) {
- mutt_error ("error allocating data object: %s\n", gpgme_strerror (err));
+ mutt_error (_("error allocating data object: %s\n"), gpgme_strerror (err));
return NULL;
}
err = ((gpgme_data_seek (data, 0, SEEK_SET) == -1)
? gpgme_error_from_errno (errno) : 0);
if (err) {
- mutt_error ("error rewinding data object: %s\n", gpgme_strerror (err));
+ mutt_error (_("error rewinding data object: %s\n"), gpgme_strerror (err));
return -1;
}
}
}
if (nread == -1) {
- mutt_error ("error reading data object: %s\n", strerror (errno));
+ mutt_error (_("error reading data object: %s\n"), strerror (errno));
return -1;
}
return 0;
else
fclose (fp);
if (nread == -1) {
- mutt_error ("error reading data object: %s\n", gpgme_strerror (err));
+ mutt_error (_("error reading data object: %s\n"), gpgme_strerror (err));
unlink (tempfile);
fclose (fp);
return NULL;
rset[rset_n++] = key;
}
else {
- mutt_error ("error adding recipient `%s': %s\n",
+ mutt_error (_("error adding recipient `%s': %s\n"),
buf, gpgme_strerror (err));
FREE (&rset);
return NULL;
plaintext, ciphertext);
mutt_need_hard_redraw ();
if (err) {
- mutt_error ("error encrypting data: %s\n", gpgme_strerror (err));
+ mutt_error (_("error encrypting data: %s\n"), gpgme_strerror (err));
gpgme_data_release (ciphertext);
gpgme_release (ctx);
return NULL;
if (err) {
gpgme_data_release (signature);
gpgme_release (ctx);
- mutt_error ("error signing data: %s\n", gpgme_strerror (err));
+ mutt_error (_("error signing data: %s\n"), gpgme_strerror (err));
return NULL;
}
err = gpgme_data_new_from_file (&message, tempfile, 1);
if (err) {
gpgme_data_release (signature);
- mutt_error ("error allocating data object: %s\n", gpgme_strerror (err));
+ mutt_error (_("error allocating data object: %s\n"), gpgme_strerror (err));
return -1;
}
ctx = create_gpgme_context (is_smime);
gpgme_release (ctx);
state_attach_puts (_("[-- End signature information --]\n\n"), s);
- dprint (1, (debugfile, "verify_one: returning %d.\n", badsig));
+ debug_print (1, ("returning %d.\n", badsig));
return badsig ? 1 : anywarn ? 2 : 0;
}
}
while (fgets (buf, sizeof (buf), tfp)) {
- if (!mutt_strncmp ("-----BEGIN PGP ", buf, 15)) {
+ if (!safe_strncmp ("-----BEGIN PGP ", buf, 15)) {
if (!mutt_strcmp ("MESSAGE-----\n", buf + 15))
enc = 1;
else if (!mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15))
char body_charset[STRING]; /* Only used for clearsigned messages. */
- dprint (2, (debugfile, "Entering pgp_application_pgp handler\n"));
+ debug_print (2, ("Entering pgp_application_pgp handler\n"));
/* For clearsigned messages we won't be able to get a character set
but we know that this may only be text thus we assume Latin-1
bytes -= (offset - last_pos); /* don't rely on mutt_strlen(buf) */
last_pos = offset;
- if (!mutt_strncmp ("-----BEGIN PGP ", buf, 15)) {
+ if (!safe_strncmp ("-----BEGIN PGP ", buf, 15)) {
clearsign = 0;
start_pos = last_pos;
" of PGP message! --]\n\n"), s);
return;
}
- dprint (2, (debugfile, "Leaving pgp_application_pgp handler\n"));
+ debug_print (2, ("Leaving pgp_application_pgp handler\n"));
}
/*
BODY *orig_body = a;
int is_signed;
- dprint (2, (debugfile, "Entering pgp_encrypted handler\n"));
+ debug_print (2, ("Entering pgp_encrypted handler\n"));
a = a->parts;
if (!a || a->type != TYPEAPPLICATION || !a->subtype
|| ascii_strcasecmp ("pgp-encrypted", a->subtype)
fclose (fpout);
mutt_unlink (tempfile);
- dprint (2, (debugfile, "Leaving pgp_encrypted handler\n"));
+ debug_print (2, ("Leaving pgp_encrypted handler\n"));
}
/* Support for application/smime */
int is_signed;
- dprint (2, (debugfile, "Entering smime_encrypted handler\n"));
+ debug_print (2, ("Entering smime_encrypted handler\n"));
a->warnsig = 0;
mutt_mktemp (tempfile);
fclose (fpout);
mutt_unlink (tempfile);
- dprint (2, (debugfile, "Leaving smime_encrypted handler\n"));
+ debug_print (2, ("Leaving smime_encrypted handler\n"));
}
crypt_key_t **t = (crypt_key_t **) b;
int r;
- if ((r = mutt_strcasecmp ((*s)->uid, (*t)->uid)))
+ if ((r = safe_strcasecmp ((*s)->uid, (*t)->uid)))
return r > 0;
else
- return mutt_strcasecmp (crypt_keyid (*s), crypt_keyid (*t)) > 0;
+ return safe_strcasecmp (crypt_keyid (*s), crypt_keyid (*t)) > 0;
}
static int crypt_compare_address (const void *a, const void *b)
crypt_key_t **t = (crypt_key_t **) b;
int r;
- if ((r = mutt_strcasecmp (crypt_keyid (*s), crypt_keyid (*t))))
+ if ((r = safe_strcasecmp (crypt_keyid (*s), crypt_keyid (*t))))
return r > 0;
else
- return mutt_strcasecmp ((*s)->uid, (*t)->uid) > 0;
+ return safe_strcasecmp ((*s)->uid, (*t)->uid) > 0;
}
static int crypt_compare_keyid (const void *a, const void *b)
if (ts < tt)
return 0;
- return mutt_strcasecmp ((*s)->uid, (*t)->uid) > 0;
+ return safe_strcasecmp ((*s)->uid, (*t)->uid) > 0;
}
static int crypt_compare_date (const void *a, const void *b)
if (ts < tt)
return 0;
- if ((r = mutt_strcasecmp ((*s)->uid, (*t)->uid)))
+ if ((r = safe_strcasecmp ((*s)->uid, (*t)->uid)))
return r > 0;
- return (mutt_strcasecmp (crypt_keyid ((*s)), crypt_keyid ((*t)))) > 0;
+ return (safe_strcasecmp (crypt_keyid ((*s)), crypt_keyid ((*t)))) > 0;
}
static int crypt_compare_trust (const void *a, const void *b)
mutt_mktemp (tempfile);
if (!(fp = safe_fopen (tempfile, "w"))) {
- mutt_perror _("Can't create temporary file");
+ mutt_perror (_("Can't create temporary file"));
return;
}
err = gpgme_new (&ctx);
if (err) {
- mutt_error ("gpgme_new failed: %s", gpgme_strerror (err));
+ mutt_error (_("gpgme_new failed: %s"), gpgme_strerror (err));
FREE (&pattern);
return NULL;
}
FREE (&patarr[n]);
FREE (&patarr);
if (err) {
- mutt_error ("gpgme_op_keylist_start failed: %s", gpgme_strerror (err));
+ mutt_error (_("gpgme_op_keylist_start failed: %s"), gpgme_strerror (err));
gpgme_release (ctx);
FREE (&pattern);
return NULL;
}
}
if (gpg_err_code (err) != GPG_ERR_EOF)
- mutt_error ("gpgme_op_keylist_next failed: %s", gpgme_strerror (err));
+ mutt_error (_("gpgme_op_keylist_next failed: %s"), gpgme_strerror (err));
gpgme_op_keylist_end (ctx);
no_pgphints:
;
gpgme_set_protocol (ctx, GPGME_PROTOCOL_CMS);
err = gpgme_op_keylist_start (ctx, pattern, 0);
if (err) {
- mutt_error ("gpgme_op_keylist_start failed: %s", gpgme_strerror (err));
+ mutt_error (_("gpgme_op_keylist_start failed: %s"), gpgme_strerror (err));
gpgme_release (ctx);
FREE (&pattern);
return NULL;
}
}
if (gpg_err_code (err) != GPG_ERR_EOF)
- mutt_error ("gpgme_op_keylist_next failed: %s", gpgme_strerror (err));
+ mutt_error (_("gpgme_op_keylist_next failed: %s"), gpgme_strerror (err));
gpgme_op_keylist_end (ctx);
}
if (!keys)
return NULL;
- dprint (5, (debugfile, "crypt_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 = k->next) {
- dprint (5, (debugfile, " looking at key: %s `%.15s'\n",
- crypt_keyid (k), k->uid));
+ debug_print (5, (" looking at key: %s `%.15s'\n", crypt_keyid (k), k->uid));
if (abilities && !(k->flags & abilities)) {
- dprint (5, (debugfile, " insufficient abilities: Has %x, want %x\n",
- k->flags, abilities));
+ debug_print (5, (" insufficient abilities: Has %x, want %x\n", k->flags, abilities));
continue;
}
continue;
match = 0;
- dprint (5, (debugfile, "crypt_getkeybystr: matching \"%s\" against "
- "key %s, \"%s\": ", p, crypt_keyid (k), k->uid));
+ debug_print (5, ("matching \"%s\" against " "key %s, \"%s\":\n", p, crypt_keyid (k), k->uid));
- if (!*p || !mutt_strcasecmp (p, crypt_keyid (k))
- || (!mutt_strncasecmp (p, "0x", 2)
- && !mutt_strcasecmp (p + 2, crypt_keyid (k)))
+ if (!*p || !safe_strcasecmp (p, crypt_keyid (k))
+ || (!safe_strncasecmp (p, "0x", 2)
+ && !safe_strcasecmp (p + 2, crypt_keyid (k)))
|| (option (OPTPGPLONGIDS)
- && !mutt_strncasecmp (p, "0x", 2)
- && !mutt_strcasecmp (p + 2, crypt_keyid (k) + 8))
- || mutt_stristr (k->uid, p)) {
+ && !safe_strncasecmp (p, "0x", 2)
+ && !safe_strcasecmp (p + 2, crypt_keyid (k) + 8))
+ || str_isstr (k->uid, p)) {
crypt_key_t *tmp;
- dprint (5, (debugfile, "match.\n"));
+ debug_print (5, ("match.\n"));
*matches_endp = tmp = crypt_copy_key (k);
matches_endp = &tmp->next;
if (whatfor) {
for (l = id_defaults; l; l = l->next)
- if (!mutt_strcasecmp (whatfor, l->what)) {
+ if (!safe_strcasecmp (whatfor, l->what)) {
strfcpy (resp, NONULL (l->dflt), sizeof (resp));
break;
}
if (whatfor) {
if (l)
- mutt_str_replace (&l->dflt, resp);
+ str_replace (&l->dflt, resp);
else {
l = safe_malloc (sizeof (struct crypt_cache));
l->next = id_defaults;
is_smime ? APPLICATION_SMIME :
APPLICATION_PGP, NULL))) {
snprintf (input_signas, sizeof (input_signas), "0x%s", crypt_keyid (p));
- mutt_str_replace (is_smime ? &SmimeDefaultKey : &PgpSignAs,
+ str_replace (is_smime ? &SmimeDefaultKey : &PgpSignAs,
input_signas);
crypt_free_key (&p);