Summary: | openPGP/MIME Signatures are invalid | ||
---|---|---|---|
Product: | [Applications] kmail2 | Reporter: | gigadoc2 |
Component: | crypto | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | RESOLVED NOT A BUG | ||
Severity: | normal | CC: | hgeerts |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
example of a PGP/MIME signed mail by kmail
signed mail that fails verification on command line and in enigmail-1.7 |
Description
gigadoc2
2014-10-24 21:49:12 UTC
Created attachment 89310 [details]
example of a PGP/MIME signed mail by kmail
Created attachment 89627 [details]
signed mail that fails verification on command line and in enigmail-1.7
I have the same problem with kmail 4.14.1 on ubuntu 14.10
I just tried to verify my mbox mail with https://www.gnupg.org/documentation/manuals/gnupg/gpgparsemail.html and that seems to succeed the signature check. Which gave me a reason to question the manual method described above as well as enigmail. I found http://sourceforge.net/p/enigmail/bugs/301/ and forced my coworker to upgrade to the enigmail nightly at https://www.enigmail.net/download/nightly.php and with that version the kmail signature is valid. Changing the python script to convert line endings from LF to CR LF also makes the signature valid in the manual check. Well, this adds to my confusion. I can't figure out wether the change in Enigmail 1.8 is really a bugfix or only a compatibility feature for broken clients. So, is the kmail/gpgparsemail behaviour the right one or that of old enigmail (and basically every other mailclient)? The manual python check was broken anyway since it did not convert newlines to CRLF. I think the fix in enigmail was commit http://sourceforge.net/p/enigmail/source/ci/8d7fa201ba8bda6f33df348d83923ff0cc876958/tree/package/mimeVerify.jsm?diff=33b2cc9979a933c57430a11ad479108dd04de886 which removes the trailing newline of a mimepart (e.g. if it precedes a mail boundary) Searching for this lead me to http://bugs.python.org/issue14983 which references https://tools.ietf.org/html/rfc3156#page-5 Note: The accepted OpenPGP convention is for signed data to end with a <CR><LF> sequence. Note that the <CR><LF> sequence immediately preceding a MIME boundary delimiter line is considered to be part of the delimiter in [3], 5.1. Thus, it is not part of the signed data preceding the delimiter line. An implementation which elects to adhere to the OpenPGP convention has to make sure it inserts a <CR><LF> pair on the last line of the data to be signed and transmitted (signed message and transmitted message MUST be identical). So I think this was a bug in enigmail but as is noted in the python bug there seems to be a conflict between the spec and the rfc so it is possible other clients suffer the same problem. Which other clients failed to verify the signature? note: this is not my in my field of expertise so it would be great if someone with actual knowledge about this subject could comment on this. Now I am starting to understand this, thanks for explaining. The clients failing to verify are Enigmail, Evolution and Sylpheed. I just recently noticed that Claws Mail has an openPGP-plugin, and it actually shows my mails as valid. Apart from those, I don't know any clients with openPGP capabilities. Anyway, I should probably close this, as it is not a bug in kmail. |