Commit 667a4710 authored by Kevin J. McCarthy's avatar Kevin J. McCarthy

Add missing setup calls when resuming encrypted drafts.

Calls to get the passphrase were missing for app/pgp and app/smime.
App/smime was also missing a call to crypt_smime_getkeys().

If a failure occurs, report it back, rather than just continuing.
Otherwise, postponed messages could be completely lost.
parent a37a2c4d
......@@ -592,18 +592,14 @@ int mutt_prepare_template (FILE *fp, CONTEXT *ctx, HEADER *newhdr, HEADER *hdr,
{
newhdr->security |= sec_type;
if (!crypt_valid_passphrase (sec_type))
goto err;
goto bail;
mutt_message _("Decrypting message...");
if ((crypt_pgp_decrypt_mime (fp, &bfp, newhdr->content, &b) == -1)
|| b == NULL)
{
err:
mx_close_message (ctx, &msg);
mutt_free_envelope (&newhdr->env);
mutt_free_body (&newhdr->content);
mutt_error _("Decryption failed.");
return -1;
goto bail;
}
mutt_free_body (&newhdr->content);
......@@ -692,7 +688,18 @@ int mutt_prepare_template (FILE *fp, CONTEXT *ctx, HEADER *newhdr, HEADER *hdr,
if ((WithCrypto & APPLICATION_PGP) &&
((sec_type = mutt_is_application_pgp (b)) & (ENCRYPT|SIGN)))
{
mutt_body_handler (b, &s);
if (sec_type & ENCRYPT)
{
if (!crypt_valid_passphrase (APPLICATION_PGP))
goto bail;
mutt_message _("Decrypting message...");
}
if (mutt_body_handler (b, &s) < 0)
{
mutt_error _("Decryption failed.");
goto bail;
}
newhdr->security |= sec_type;
......@@ -703,7 +710,19 @@ int mutt_prepare_template (FILE *fp, CONTEXT *ctx, HEADER *newhdr, HEADER *hdr,
else if ((WithCrypto & APPLICATION_SMIME) &&
((sec_type = mutt_is_application_smime (b)) & (ENCRYPT|SIGN)))
{
mutt_body_handler (b, &s);
if (sec_type & ENCRYPT)
{
if (!crypt_valid_passphrase (APPLICATION_SMIME))
goto bail;
crypt_smime_getkeys (newhdr->env);
mutt_message _("Decrypting message...");
}
if (mutt_body_handler (b, &s) < 0)
{
mutt_error _("Decryption failed.");
goto bail;
}
newhdr->security |= sec_type;
b->type = TYPETEXT;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment