https://www.ietf.org/id/draft-autocrypt-lamps-protected-headers-02.html
Makes it clear that the "Legacy Display" part of an encrypted message
with protected headers can (and indeed, should) be of content-type
text/plain, though some clients still generate the Legacy Display part
as content-type text/rfc822-headers. Notmuch should recognize the
part whichever of the two content-types it uses.
See also discussion in
https://github.com/autocrypt/protected-headers/issues/23 for why the
community of implementers is moving in the direction of text/plain.
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
if (g_mime_multipart_get_count (mpayload) != 2)
return false;
first = g_mime_multipart_get_part (mpayload, 0);
if (g_mime_multipart_get_count (mpayload) != 2)
return false;
first = g_mime_multipart_get_part (mpayload, 0);
- if (! g_mime_content_type_is_type (g_mime_object_get_content_type (first),
- "text", "rfc822-headers"))
+ /* Early implementations that generated "Legacy Display" parts used
+ Content-Type: text/rfc822-headers, but text/plain is more widely
+ rendered, so it is now the standard choice. We accept either as a
+ Legacy Display part. */
+ if (! (g_mime_content_type_is_type (g_mime_object_get_content_type (first),
+ "text", "plain") ||
+ g_mime_content_type_is_type (g_mime_object_get_content_type (first),
+ "text", "rfc822-headers")))
return false;
protected_header_parameter = g_mime_object_get_content_type_parameter (first, "protected-headers");
if ((! protected_header_parameter) || strcmp (protected_header_parameter, "v1"))
return false;
protected_header_parameter = g_mime_object_get_content_type_parameter (first, "protected-headers");
if ((! protected_header_parameter) || strcmp (protected_header_parameter, "v1"))