]> granicus.if.org Git - neomutt/commitdiff
Canonicalize line endings for GPGME S/MIME encryption. (closes #3904)
authorKevin McCarthy <kevin@8t8.us>
Sun, 1 Jan 2017 03:57:07 +0000 (19:57 -0800)
committerRichard Russon <rich@flatcap.org>
Fri, 10 Feb 2017 03:32:55 +0000 (03:32 +0000)
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

index f24ccda012b8f26cd0d879ff36479597b02a7bb5..35f9cd5c1126c938039b11a9d0f3451c4e60f842 100644 (file)
@@ -1107,7 +1107,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);