* please see the file GPL in the top level source directory.
*/
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include <lib-lib/lib-lib.h>
#ifdef CRYPT_BACKEND_GPGME
-#include <sys/wait.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#include <errno.h>
-#include <ctype.h>
-
#ifdef HAVE_LOCALE_H
# include <locale.h>
#endif
#ifdef HAVE_LANGINFO_D_T_FMT
# include <langinfo.h>
#endif
-#ifdef HAVE_SYS_TIME_H
-# include <sys/time.h>
-#endif
#ifdef HAVE_SYS_RESOURCE_H
# include <sys/resource.h>
#endif
#include <gpgme.h>
-#include <lib-lib/mem.h>
-#include <lib-lib/str.h>
-#include <lib-lib/ascii.h>
-#include <lib-lib/macros.h>
-#include <lib-lib/file.h>
-#include <lib-lib/debug.h>
-
#include <lib-mime/mime.h>
#include <lib-ui/curses.h>
#include <lib-ui/enter.h>
#include <lib-ui/menu.h>
-#include "mutt.h"
+#include "lib.h"
#include "alias.h"
#include <lib-crypt/crypt.h>
#include "handler.h"
return NULL;
}
- t = mutt_new_body ();
+ t = body_new();
t->type = TYPEMULTIPART;
t->subtype = m_strdup("signed");
t->encoding = ENC7BIT;
t->use_disp = 0;
t->disposition = DISPINLINE;
- mutt_generate_boundary (&t->parameter);
- mutt_set_parameter ("protocol",
- use_smime ? "application/pkcs7-signature"
- : "application/pgp-signature", &t->parameter);
+ parameter_set_boundary(&t->parameter);
+ parameter_setval(&t->parameter, "protocol",
+ use_smime ? "application/pkcs7-signature"
+ : "application/pgp-signature");
/* Get the micalg from gpgme. Old gpgme versions don't support this
for S/MIME so we assume sha-1 in this case. */
if (!get_micalg (ctx, buf, sizeof buf))
- mutt_set_parameter ("micalg", buf, &t->parameter);
+ parameter_setval(&t->parameter, "micalg", buf);
else if (use_smime)
- mutt_set_parameter ("micalg", "sha1", &t->parameter);
+ parameter_setval(&t->parameter, "micalg", "sha1");
gpgme_release (ctx);
t->parts = a;
a = t;
- t->parts->next = mutt_new_body ();
+ t->parts->next = body_new();
t = t->parts->next;
t->type = TYPEAPPLICATION;
if (use_smime) {
t->subtype = m_strdup("pkcs7-signature");
- mutt_set_parameter ("name", "smime.p7s", &t->parameter);
+ parameter_setval(&t->parameter, "name", "smime.p7s");
t->encoding = ENCBASE64;
t->use_disp = 1;
t->disposition = DISPATTACH;
if (!outfile)
return NULL;
- t = mutt_new_body ();
+ t = body_new();
t->type = TYPEMULTIPART;
t->subtype = m_strdup("encrypted");
t->encoding = ENC7BIT;
t->use_disp = 0;
t->disposition = DISPINLINE;
- mutt_generate_boundary (&t->parameter);
- mutt_set_parameter ("protocol", "application/pgp-encrypted", &t->parameter);
+ parameter_set_boundary(&t->parameter);
+ parameter_setval(&t->parameter, "protocol", "application/pgp-encrypted");
- t->parts = mutt_new_body ();
+ t->parts = body_new();
t->parts->type = TYPEAPPLICATION;
t->parts->subtype = m_strdup("pgp-encrypted");
t->parts->encoding = ENC7BIT;
- t->parts->next = mutt_new_body ();
+ t->parts->next = body_new();
t->parts->next->type = TYPEAPPLICATION;
t->parts->next->subtype = m_strdup("octet-stream");
t->parts->next->encoding = ENC7BIT;
if (!outfile)
return NULL;
- t = mutt_new_body ();
+ t = body_new();
t->type = TYPEAPPLICATION;
t->subtype = m_strdup("pkcs7-mime");
- mutt_set_parameter ("name", "smime.p7m", &t->parameter);
- mutt_set_parameter ("smime-type", "enveloped-data", &t->parameter);
+ parameter_setval(&t->parameter, "name", "smime.p7m");
+ parameter_setval(&t->parameter, "smime-type", "enveloped-data");
t->encoding = ENCBASE64; /* The output of OpenSSL SHOULD be binary */
t->use_disp = 1;
t->disposition = DISPATTACH;
gpgme_release (ctx);
state_attach_puts (_("[-- End signature information --]\n\n"), s);
- debug_print (1, ("returning %d.\n", badsig));
return badsig ? 1 : anywarn ? 2 : 0;
}
bb->offset = saved_b_offset;
fclose (tmpfp);
rewind (*fpout);
- mutt_free_body (cur);
+ body_list_wipe(cur);
*cur = tmp_b;
}
return *cur ? 0 : -1;
/* fix the content type */
- mutt_set_parameter ("format", "fixed", &b->parameter);
- mutt_set_parameter ("x-action", enc ? "pgp-encrypted" : "pgp-signed",
- &b->parameter);
-
+ parameter_setval(&b->parameter, "format", "fixed");
+ parameter_setval(&b->parameter, "x-action",
+ enc ? "pgp-encrypted" : "pgp-signed");
return 1;
}
{
char buf[HUGE_STRING];
short complete, armor_header;
- FGETCONV *fc;
+ fgetconv_t *fc;
char *fname;
FILE *fp;
char body_charset[STRING]; /* Only used for clearsigned messages. */
- 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
here. */
copy_clearsigned (armored_data, s, body_charset);
}
else if (pgpout) {
- FGETCONV *fc;
+ fgetconv_t *fc;
int c;
rewind (pgpout);
" of PGP message! --]\n\n"), s);
return (-1);
}
- debug_print (2, ("Leaving pgp_application_pgp handler\n"));
return (err);
}
int is_signed;
int rc = 0;
- debug_print (2, ("Entering pgp_encrypted handler\n"));
a = a->parts;
if (!a || a->type != TYPEAPPLICATION || !a->subtype
|| ascii_strcasecmp ("pgp-encrypted", a->subtype)
: _("[-- End of PGP/MIME encrypted data --]\n"), s);
}
- mutt_free_body (&tattach);
+ body_list_wipe(&tattach);
}
fclose (fpout);
mutt_unlink (tempfile);
- debug_print (2, ("Leaving pgp_encrypted handler\n"));
return (rc);
}
int is_signed;
int rc = 0;
- debug_print (2, ("Entering smime_encrypted handler\n"));
-
a->warnsig = 0;
mutt_mktemp (tempfile);
if (!(fpout = safe_fopen (tempfile, "w+"))) {
_("[-- End of S/MIME encrypted data --]\n"), s);
}
- mutt_free_body (&tattach);
+ body_list_wipe(&tattach);
}
fclose (fpout);
mutt_unlink (tempfile);
- debug_print (2, ("Leaving smime_encrypted handler\n"));
return (rc);
}
if (!keys)
return NULL;
- debug_print (5, ("looking for %s <%s>.\n", a->personal, a->mailbox));
-
for (k = keys; k; k = k->next) {
- debug_print (5, (" looking at key: %s `%.15s'\n", crypt_keyid (k), k->uid));
-
if (abilities && !(k->flags & abilities)) {
- debug_print (5, (" insufficient abilities: Has %x, want %x\n", k->flags, abilities));
continue;
}
continue;
match = 0;
- debug_print (5, ("matching \"%s\" against " "key %s, \"%s\":\n", p, crypt_keyid (k), k->uid));
if (!*p || !m_strcasecmp(p, crypt_keyid (k))
|| (!m_strncasecmp(p, "0x", 2)
|| m_stristr(k->uid, p)) {
crypt_key_t *tmp;
- debug_print (5, ("match.\n"));
-
*matches_endp = tmp = crypt_copy_key (k);
matches_endp = &tmp->next;
}
if (fqdn)
rfc822_qualify (tmp, fqdn);
- tmp = mutt_remove_duplicates (tmp);
+ address_list_uniq(tmp);
for (p = tmp; p; p = p->next) {
char buf[LONG_STRING];