From 17030b4700a498161ff5ab1eda28f0750cdbceb2 Mon Sep 17 00:00:00 2001 From: Kevin McCarthy Date: Sat, 31 Dec 2016 19:57:07 -0800 Subject: [PATCH] Canonicalize line endings for GPGME S/MIME encryption. (closes #3904) 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! --- crypt-gpgme.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crypt-gpgme.c b/crypt-gpgme.c index e8e0b135..26974b99 100644 --- a/crypt-gpgme.c +++ b/crypt-gpgme.c @@ -1091,7 +1091,11 @@ BODY *smime_gpgme_build_smime_entity (BODY *a, char *keylist) 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); -- 2.40.0