X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=lib-crypt%2Fpgp.c;h=ab978d0f29e9ba47381faf09334a954da2b76fe4;hb=cef32312aa7c285411e817304de98f3873cba6be;hp=1cbcc6f842e7784bf5a5bfcf8e1b90094dc14118;hpb=69f4685e616347559d4ec714fd826d7f97a472ef;p=apps%2Fmadmutt.git diff --git a/lib-crypt/pgp.c b/lib-crypt/pgp.c index 1cbcc6f..ab978d0 100644 --- a/lib-crypt/pgp.c +++ b/lib-crypt/pgp.c @@ -17,49 +17,25 @@ * a message. */ -#if HAVE_CONFIG_H -# include "config.h" -#endif +#include -#include -#include -#include -#include -#include +#ifdef HAVE_SYS_RESOURCE_H +# include +#endif #include +#include #include #include #include +#include -#include "mutt.h" #include "handler.h" #include "pgp.h" #include "copy.h" #include "attach.h" - -#include -#include -#include -#include -#include -#include -#include - -#ifdef HAVE_LOCALE_H -#include -#endif - -#ifdef HAVE_SYS_TIME_H -# include -#endif - -#ifdef HAVE_SYS_RESOURCE_H -# include -#endif - #include "crypt.h" @@ -611,61 +587,6 @@ int pgp_verify_one (BODY * sigbdy, STATE * s, const char *tempfile) /* Extract pgp public keys from messages or attachments */ -void pgp_extract_keys_from_messages (HEADER * h) -{ - int i; - char tempfname[_POSIX_PATH_MAX]; - FILE *fpout; - - if (h) { - mutt_parse_mime_message (Context, h); - if (h->security & PGPENCRYPT && !pgp_valid_passphrase ()) - return; - } - - mutt_mktemp (tempfname); - if (!(fpout = safe_fopen (tempfname, "w"))) { - mutt_perror (tempfname); - return; - } - - set_option (OPTDONTHANDLEPGPKEYS); - - if (!h) { - for (i = 0; i < Context->vcount; i++) { - if (Context->hdrs[Context->v2r[i]]->tagged) { - mutt_parse_mime_message (Context, Context->hdrs[Context->v2r[i]]); - if (Context->hdrs[Context->v2r[i]]->security & PGPENCRYPT - && !pgp_valid_passphrase ()) { - fclose (fpout); - goto bailout; - } - mutt_copy_message (fpout, Context, Context->hdrs[Context->v2r[i]], - M_CM_DECODE | M_CM_CHARCONV, 0); - } - } - } - else { - mutt_parse_mime_message (Context, h); - if (h->security & PGPENCRYPT && !pgp_valid_passphrase ()) { - fclose (fpout); - goto bailout; - } - mutt_copy_message (fpout, Context, h, M_CM_DECODE | M_CM_CHARCONV, 0); - } - - fclose (fpout); - mutt_endwin (NULL); - pgp_invoke_import (tempfname); - mutt_any_key_to_continue (NULL); - -bailout: - - mutt_unlink (tempfname); - unset_option (OPTDONTHANDLEPGPKEYS); - -} - static void pgp_extract_keys_from_attachment (FILE * fp, BODY * top) { STATE s; @@ -914,7 +835,7 @@ int pgp_encrypted_handler (BODY * a, STATE * s) state_attach_puts (_("[-- End of PGP/MIME encrypted data --]\n"), s); } - mutt_free_body (&tattach); + body_list_wipe(&tattach); /* clear 'Invoking...' message, since there's no error */ mutt_message _("PGP message successfully decrypted."); } else { @@ -1023,7 +944,7 @@ BODY *pgp_sign_message (BODY * a) return (NULL); /* fatal error while signing */ } - t = mutt_new_body (); + t = body_new(); t->type = TYPEMULTIPART; t->subtype = m_strdup("signed"); t->encoding = ENC7BIT; @@ -1037,7 +958,7 @@ BODY *pgp_sign_message (BODY * a) t->parts = a; a = t; - t->parts->next = mutt_new_body (); + t->parts->next = body_new(); t = t->parts->next; t->type = TYPEAPPLICATION; t->subtype = m_strdup("pgp-signature"); @@ -1069,7 +990,8 @@ static short is_numerical_keyid (const char *s) */ char *pgp_findKeys (address_t * to, address_t * cc, address_t * bcc) { - char *keyID, *keylist = NULL, *t; + char *keylist = NULL, *t; + const char *keyID; size_t keylist_size = 0; size_t keylist_used = 0; address_t *tmp = NULL, *addr = NULL; @@ -1103,7 +1025,7 @@ char *pgp_findKeys (address_t * to, address_t * cc, address_t * bcc) 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]; @@ -1269,7 +1191,7 @@ BODY *pgp_encrypt_message (BODY * a, char *keylist, int sign) return (NULL); } - t = mutt_new_body (); + t = body_new(); t->type = TYPEMULTIPART; t->subtype = m_strdup("encrypted"); t->encoding = ENC7BIT; @@ -1279,12 +1201,12 @@ BODY *pgp_encrypt_message (BODY * a, char *keylist, int sign) 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; @@ -1437,7 +1359,7 @@ BODY *pgp_traditional_encryptsign (BODY * a, int flags, char *keylist) return NULL; } - b = mutt_new_body (); + b = body_new(); b->encoding = ENC7BIT;