X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-crypt%2Fcrypt-gpgme.c;h=b3304f5c1c8bc5d9919612089b1a48fb9f4024d6;hp=428b872a6afd2364c11c4223ecc53fe2bebb072b;hb=b62cf5fb77a75e17b176141d232655e5bd8b7fe1;hpb=a0aa4a45870f1607e8b41760866071692675c84d diff --git a/lib-crypt/crypt-gpgme.c b/lib-crypt/crypt-gpgme.c index 428b872..b3304f5 100644 --- a/lib-crypt/crypt-gpgme.c +++ b/lib-crypt/crypt-gpgme.c @@ -42,6 +42,7 @@ #include "pager.h" #include "recvattach.h" #include "sort.h" +#include "crypt-gpgme.h" /* * Helper macros. @@ -347,10 +348,9 @@ static gpgme_data_t body_to_data_object (BODY * a, int convert) int err = 0; gpgme_data_t data; - mutt_mktemp (tempfile); - fptmp = safe_fopen (tempfile, "w+"); + fptmp = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL); if (!fptmp) { - mutt_perror (tempfile); + mutt_perror (_("Can't create temporary file")); return NULL; } @@ -456,10 +456,9 @@ static char *data_object_to_tempfile (gpgme_data_t data, FILE ** ret_fp) FILE *fp; ssize_t nread = 0; - mutt_mktemp (tempfile); - fp = safe_fopen (tempfile, "w+"); + fp = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL); if (!fp) { - mutt_perror (tempfile); + mutt_perror (_("Can't create temporary file")); return NULL; } @@ -1468,9 +1467,9 @@ int pgp_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b, BODY ** cur) p_clear(&s, 1); s.fpin = fpin; - mutt_mktemp (tempfile); - if (!(*fpout = safe_fopen (tempfile, "w+"))) { - mutt_perror (tempfile); + *fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL); + if (!*fpout) { + mutt_perror (_("Can't create temporary file")); return -1; } unlink (tempfile); @@ -1513,9 +1512,9 @@ int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b, p_clear(&s, 1); s.fpin = fpin; fseeko (s.fpin, b->offset, 0); - mutt_mktemp (tempfile); - if (!(tmpfp = safe_fopen (tempfile, "w+"))) { - mutt_perror (tempfile); + tmpfp = m_tempfile (tempfile, sizeof(tempfile), NONULL(Tempdir), NULL); + if (!tmpfp) { + mutt_perror (_("Can't create temporary file")); return -1; } mutt_unlink (tempfile); @@ -1530,9 +1529,9 @@ int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b, p_clear(&s, 1); s.fpin = tmpfp; s.fpout = 0; - mutt_mktemp (tempfile); - if (!(*fpout = safe_fopen (tempfile, "w+"))) { - mutt_perror (tempfile); + *fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL); + if (!*fpout) { + mutt_perror (_("Can't create temporary file")); return -1; } mutt_unlink (tempfile); @@ -1565,9 +1564,9 @@ int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b, p_clear(&s, 1); s.fpin = *fpout; fseeko (s.fpin, bb->offset, 0); - mutt_mktemp (tempfile); - if (!(tmpfp = safe_fopen (tempfile, "w+"))) { - mutt_perror (tempfile); + tmpfp = m_tempfile (tempfile, sizeof(tempfile), NONULL(Tempdir), NULL); + if (!tmpfp) { + mutt_perror (_("Can't create temporary file")); return -1; } mutt_unlink (tempfile); @@ -1583,9 +1582,9 @@ int smime_gpgme_decrypt_mime (FILE * fpin, FILE ** fpout, BODY * b, p_clear(&s, 1); s.fpin = tmpfp; s.fpout = 0; - mutt_mktemp (tempfile); - if (!(*fpout = safe_fopen (tempfile, "w+"))) { - mutt_perror (tempfile); + *fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL); + if (!*fpout) { + mutt_perror (_("Can't create temporary file")); return -1; } mutt_unlink (tempfile); @@ -1644,7 +1643,7 @@ static int pgp_check_traditional_one_body (FILE * fp, BODY * b, sgn = 1; } } - safe_fclose (&tfp); + m_fclose(&tfp); unlink (tempfile); if (!enc && !sgn) @@ -1945,7 +1944,7 @@ int pgp_gpgme_application_handler (BODY * m, STATE * s) } if (pgpout) { - safe_fclose (&pgpout); + m_fclose(&pgpout); } } else { @@ -1994,8 +1993,8 @@ int pgp_gpgme_encrypted_handler (BODY * a, STATE * s) /* Move forward to the application/pgp-encrypted body. */ a = a->next; - mutt_mktemp (tempfile); - if (!(fpout = safe_fopen (tempfile, "w+"))) { + fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL); + if (!fpout) { if (s->flags & M_DISPLAY) state_attach_puts (_("[-- Error: could not create temporary file! " "--]\n"), s); @@ -2054,8 +2053,8 @@ int smime_gpgme_application_handler (BODY * a, STATE * s) int rc = 0; a->warnsig = 0; - mutt_mktemp (tempfile); - if (!(fpout = safe_fopen (tempfile, "w+"))) { + fpout = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL); + if (!fpout) { if (s->flags & M_DISPLAY) state_attach_puts (_("[-- Error: could not create temporary file! " "--]\n"), s); @@ -2926,10 +2925,9 @@ static void verify_key (crypt_key_t * key) gpgme_key_t k = NULL; int maxdepth = 100; - mutt_mktemp (tempfile); - if (!(fp = safe_fopen (tempfile, "w"))) { + fp = m_tempfile (tempfile, sizeof(tempfile), NONULL(Tempdir), NULL); + if (!fp) { mutt_perror (_("Can't create temporary file")); - return; } mutt_message _("Collecting data..."); @@ -3502,7 +3500,7 @@ static crypt_key_t *crypt_getkeybyaddr (address_t * a, short abilities, } -static crypt_key_t *crypt_getkeybystr (char *p, short abilities, +static crypt_key_t *crypt_getkeybystr (const char *p, short abilities, unsigned int app, int *forced_valid) { string_list_t *hints = NULL; @@ -3616,7 +3614,8 @@ static crypt_key_t *crypt_ask_for_key (char *tag, static char *find_keys (address_t * to, address_t * cc, address_t * bcc, unsigned int app) { - char *keyID, *keylist = NULL, *t; + char *keylist = NULL, *t; + const char *keyID; ssize_t keylist_size = 0; ssize_t keylist_used = 0; address_t *tmp = NULL, *addr = NULL; @@ -3676,13 +3675,8 @@ static char *find_keys (address_t * to, address_t * cc, address_t * bcc, q = addr; } else { -#if 0 - k_info = crypt_getkeybystr (keyID, KEYFLAG_CANENCRYPT, - *r_application, &forced_valid); -#else k_info = crypt_getkeybystr (keyID, KEYFLAG_CANENCRYPT, app, &forced_valid); -#endif } } else if (r == -1) { @@ -3699,11 +3693,7 @@ static char *find_keys (address_t * to, address_t * cc, address_t * bcc, snprintf (buf, sizeof (buf), _("Enter keyID for %s: "), q->mailbox); if ((key = crypt_ask_for_key (buf, q->mailbox, KEYFLAG_CANENCRYPT, -#if 0 - *r_application, -#else app, -#endif &forced_valid)) == NULL) { p_delete(&keylist); address_list_wipe(&tmp); @@ -3717,13 +3707,6 @@ static char *find_keys (address_t * to, address_t * cc, address_t * bcc, { const char *s = crypt_fpr (key); -#if 0 - if (key->flags & KEYFLAG_ISX509) - *r_application &= ~APPLICATION_PGP; - if (!(key->flags & KEYFLAG_ISX509)) - *r_application &= ~APPLICATION_SMIME; -#endif - keylist_size += m_strlen(s) + 4 + 1; p_realloc(&keylist, keylist_size); sprintf (keylist + keylist_used, "%s0x%s%s", /* __SPRINTF_CHECKED__ */ @@ -3817,11 +3800,6 @@ static int gpgme_send_menu (HEADER * msg, int *redraw, int is_smime) msg->security |= (is_smime ? SMIMESIGN : PGPSIGN); } -#if 0 - else { - msg->security &= (is_smime ? ~SMIMESIGN : ~PGPSIGN); - } -#endif *redraw = REDRAW_FULL; break;