Hi Peter!

Am 25.11.19 18:45 schrieb(en) Albrecht Dreß:
Hi Peter!

Am 25.11.19 05:01 schrieb(en) Peter Bloomfield:
So, as of commit 8cfe5a7ebc7bce9c960da8932de2152020e39de7, I can build the 
branch and run it. It still shows current messages' signatures as broken. But 
if I send a signed, not encrypted, message to myself, the signature is OK. 
Don't know what this means!

I guess the gmime3 branch somehow confuses line endings, both when creating and 
checking signatures.  Remember that the RFC's for GPG and S/MIME all *require* 
canonical line endings (e.g. RFC 3156, sect. 5).


As result of a /very/ quick look I think you just used the wrong encoding 
direction for the canonical line endings:

<snip>
diff --git a/libbalsa/gmime-multipart-crypt.c b/libbalsa/gmime-multipart-crypt.c
index 7526eee54..68c3db948 100644
--- a/libbalsa/gmime-multipart-crypt.c
+++ b/libbalsa/gmime-multipart-crypt.c
@@ -133,7 +133,7 @@ g_mime_gpgme_mps_sign(GMimeMultipartSigned * mps, 
GMimeObject * content,

     /* Note: see rfc2015 or rfc3156, section 5.1 */
     filtered = g_mime_stream_filter_new(stream);
-    filter = g_mime_filter_dos2unix_new(TRUE);
+    filter = g_mime_filter_unix2dos_new(TRUE);
     g_mime_stream_filter_add(GMIME_STREAM_FILTER(filtered), filter);
     g_object_unref(filter);

@@ -278,7 +278,7 @@ g_mime_gpgme_mps_verify(GMimeMultipartSigned * mps, GError 
** error)
     filtered_stream = g_mime_stream_filter_new(stream);

     /* Note: see rfc2015 or rfc3156, section 5.1 */
-    crlf_filter = g_mime_filter_dos2unix_new(TRUE);
+    crlf_filter = g_mime_filter_unix2dos_new(TRUE);
     g_mime_stream_filter_add(GMIME_STREAM_FILTER(filtered_stream),
                             crlf_filter);
     g_object_unref(crlf_filter);
</snip>

At least RFC 3156 signed messages are now validated correctly.  I didn't check 
signing and S/MIME (RFC 8551) yet, but I *think* it will also fix the issue.  
I'm not sure if the “TRUE” arg for the filters is correct, at least for 
validation.

Interestingly, RFC 4880 (old single-part OpenPGP) validates without further 
changes.  Of course, we must also ensure proper line endings there…

Cheers,
Albrecht.

Attachment: pgpqFB7Lbtasa.pgp
Description: PGP signature

_______________________________________________
balsa-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/balsa-list

Reply via email to