X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=util%2Frepair.h;h=492f5a205bc993979a7bc77a20fbe62a0bd44456;hp=70e2b7bcc9d6733104a1a7ebc19b6eb2f93bd9ee;hb=HEAD;hpb=1b29822cf55eb53e1d45a71c2a3e4a2c2a4574d1 diff --git a/util/repair.h b/util/repair.h index 70e2b7bc..492f5a20 100644 --- a/util/repair.h +++ b/util/repair.h @@ -11,6 +11,33 @@ extern "C" { * techniques that are designed to improve the user experience of * notmuch */ +/* If payload is a cryptographic payload within an encrypted message, and + * it has a "legacy display" part, then we can skip over it and jump + * to the actual content, because notmuch already handles protected + * headers appropriately. + * + * This function either returns payload directly (if it does not have + * a "legacy display" part), or it returns a pointer to its + * content-bearing subpart, with the "legacy display" part and the + * surrounding multipart/mixed object bypassed. + * + * No new objects are created by calling this function, and the + * returned object will only be released when the original part is + * disposed of. + */ + +GMimeObject * +_notmuch_repair_crypto_payload_skip_legacy_display (GMimeObject *payload); + +/* Detecting and repairing "Mixed-Up MIME mangling". see + * https://tools.ietf.org/html/draft-dkg-openpgp-pgpmime-message-mangling-00#section-4.1 + * If this returns NULL, the message was probably not "Mixed up". If + * it returns non-NULL, then there is a newly-allocated MIME part that + * represents the repaired version. The caller is responsible for + * ensuring that any returned object is freed with g_object_unref. */ +GMimeObject * +_notmuch_repair_mixed_up_mangled (GMimeObject *part); + #ifdef __cplusplus } #endif