#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 "pager.h"
#include "recvattach.h"
#include "sort.h"
+#include "crypt-gpgme.h"
/*
* Helper macros.
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;
}
buf[0] = c;
gpgme_data_write (data, buf, 1);
}
- fclose (fptmp);
gpgme_data_seek (data, 0, SEEK_SET);
- }
- else {
- fclose (fptmp);
+ } else {
err = gpgme_data_new_from_file (&data, tempfile, 1);
}
+ m_fclose(&fptmp);
unlink (tempfile);
if (err) {
mutt_error (_("error allocating data object: %s\n"), gpgme_strerror (err));
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;
}
while ((nread = gpgme_data_read (data, buf, sizeof (buf)))) {
if (fwrite (buf, nread, 1, fp) != 1) {
mutt_perror (tempfile);
- fclose (fp);
+ m_fclose(&fp);
unlink (tempfile);
return NULL;
}
if (ret_fp)
rewind (fp);
else
- fclose (fp);
+ m_fclose(&fp);
if (nread == -1) {
mutt_error (_("error reading data object: %s\n"), gpgme_strerror (err));
unlink (tempfile);
- fclose (fp);
+ m_fclose(&fp);
return NULL;
}
if (ret_fp)
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);
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);
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);
b->type = saved_b_type;
b->length = saved_b_length;
b->offset = saved_b_offset;
- fclose (tmpfp);
+ m_fclose(&tmpfp);
rewind (*fpout);
if (*cur && !is_signed && !(*cur)->parts
&& mutt_is_application_smime (*cur)) {
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);
bb->length = ftello (s.fpout);
bb->offset = 0;
rewind (tmpfp);
- fclose (*fpout);
+ m_fclose(&*fpout);
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);
bb->type = saved_b_type;
bb->length = saved_b_length;
bb->offset = saved_b_offset;
- fclose (tmpfp);
+ m_fclose(&tmpfp);
rewind (*fpout);
body_list_wipe(cur);
*cur = tmp_b;
sgn = 1;
}
}
- safe_fclose (&tfp);
+ m_fclose(&tfp);
unlink (tempfile);
if (!enc && !sgn)
}
fgetconv_close (&fc);
- fclose (fp);
+ m_fclose(&fp);
}
}
if (pgpout) {
- safe_fclose (&pgpout);
+ m_fclose(&pgpout);
}
}
else {
/* 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);
body_list_wipe(&tattach);
}
- fclose (fpout);
+ m_fclose(&fpout);
mutt_unlink (tempfile);
return (rc);
}
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);
body_list_wipe(&tattach);
}
- fclose (fpout);
+ m_fclose(&fpout);
mutt_unlink (tempfile);
return (rc);
}
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...");
leave:
gpgme_key_release (k);
gpgme_release (listctx);
- fclose (fp);
+ m_fclose(&fp);
mutt_clear_error ();
snprintf (cmd, sizeof (cmd), _("Key ID: 0x%s"), crypt_keyid (key));
mutt_do_pager (cmd, tempfile, 0, NULL);
}
-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;
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;
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) {
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);
{
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__ */
msg->security |= (is_smime ? SMIMESIGN : PGPSIGN);
}
-#if 0
- else {
- msg->security &= (is_smime ? ~SMIMESIGN : ~PGPSIGN);
- }
-#endif
*redraw = REDRAW_FULL;
break;