diff options
author | Bruno Wagner <bwgpro@gmail.com> | 2015-06-05 17:16:26 -0300 |
---|---|---|
committer | Bruno Wagner <bwgpro@gmail.com> | 2015-06-05 17:16:26 -0300 |
commit | 68acde0220c3f895300b5491f941ca611212a206 (patch) | |
tree | a177784cc70c0f5f777c19a8e962eab6005587b8 /service/pixelated/extensions/incoming_decrypt_header.py | |
parent | 7f60e3eb5136444c86401bb3a1c3ae27fce668a1 (diff) |
Moved extensions to their own folder, so support has more meaning
Diffstat (limited to 'service/pixelated/extensions/incoming_decrypt_header.py')
-rw-r--r-- | service/pixelated/extensions/incoming_decrypt_header.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/service/pixelated/extensions/incoming_decrypt_header.py b/service/pixelated/extensions/incoming_decrypt_header.py new file mode 100644 index 00000000..2db5dd1d --- /dev/null +++ b/service/pixelated/extensions/incoming_decrypt_header.py @@ -0,0 +1,35 @@ +import leap.mail.imap.fetch as fetch + + +def mark_as_encrypted_inline(f): + + def w(*args, **kwargs): + msg, valid_sign = f(*args) + is_encrypted = fetch.PGP_BEGIN in args[1].as_string() and fetch.PGP_END in args[1].as_string() + decrypted_successfully = fetch.PGP_BEGIN not in msg.as_string() and fetch.PGP_END not in msg.as_string() + + if not is_encrypted: + encrypted = 'false' + else: + if decrypted_successfully: + encrypted = 'true' + else: + encrypted = 'fail' + + msg.add_header('X-Pixelated-encryption-status', encrypted) + return msg, valid_sign + + return w + + +def mark_as_encrypted_multipart(f): + + def w(*args, **kwargs): + msg, valid_sign = f(*args) + msg.add_header('X-Pixelated-encryption-status', 'true') + return msg, valid_sign + return w + + +fetch.LeapIncomingMail._maybe_decrypt_inline_encrypted_msg = mark_as_encrypted_inline(fetch.LeapIncomingMail._maybe_decrypt_inline_encrypted_msg) +fetch.LeapIncomingMail._decrypt_multipart_encrypted_msg = mark_as_encrypted_multipart(fetch.LeapIncomingMail._decrypt_multipart_encrypted_msg) |