]> granicus.if.org Git - mutt/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)
committerKevin McCarthy <kevin@8t8.us>
Sun, 1 Jan 2017 03:57:07 +0000 (19:57 -0800)
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 e8e0b1352395df63f1aa36c80841be7290c40b4e..26974b991e23c09a99ae1dbdc50ec3ac505f65e4 100644 (file)
@@ -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);