This matches the behavior for S/MIME classic mode: OpenSSL converts
the line endings to cr/lf before encrypting. Although Mutt always
canonicalizes the line endings before verifying the signature, some
clients do not do this for encrypted messages.
Thanks to cooler for the patch!
if (!rset)
return NULL;
- plaintext = body_to_data_object (a, 0);
+ /* OpenSSL converts line endings to crlf when encrypting. Some
+ * clients depend on this for signed+encrypted messages: they do not
+ * convert line endings between decrypting and checking the
+ * signature. See #3904. */
+ plaintext = body_to_data_object (a, 1);
if (!plaintext)
{
free_recipient_set (&rset);