Browse Source

delete all unnecessary headers in PGP

Son NK 5 years ago
parent
commit
69198ff08a
4 changed files with 24 additions and 1 deletions
  1. 9 0
      app/email_utils.py
  2. 12 0
      email_handler.py
  3. 2 0
      init_app.py
  4. 1 1
      server.py

+ 9 - 0
app/email_utils.py

@@ -307,6 +307,15 @@ def delete_header(msg: Message, header: str):
             del msg._headers[i]
             del msg._headers[i]
 
 
 
 
+def delete_all_headers_except(msg: Message, headers: [str]):
+    headers = [h.lower() for h in headers]
+
+    for i in reversed(range(len(msg._headers))):
+        header_name = msg._headers[i][0].lower()
+        if header_name not in headers:
+            del msg._headers[i]
+
+
 def email_belongs_to_alias_domains(email: str) -> bool:
 def email_belongs_to_alias_domains(email: str) -> bool:
     """return True if an email ends with one of the alias domains provided by SimpleLogin"""
     """return True if an email ends with one of the alias domains provided by SimpleLogin"""
     for domain in ALIAS_DOMAINS:
     for domain in ALIAS_DOMAINS:

+ 12 - 0
email_handler.py

@@ -64,6 +64,7 @@ from app.email_utils import (
     email_belongs_to_alias_domains,
     email_belongs_to_alias_domains,
     render,
     render,
     get_orig_message_from_bounce,
     get_orig_message_from_bounce,
+    delete_all_headers_except,
 )
 )
 from app.extensions import db
 from app.extensions import db
 from app.log import LOG
 from app.log import LOG
@@ -269,6 +270,17 @@ def prepare_pgp_message(orig_msg: Message, pgp_fingerprint: str):
         if header_name != "Content-Type".lower():
         if header_name != "Content-Type".lower():
             msg[header_name] = orig_msg._headers[i][1]
             msg[header_name] = orig_msg._headers[i][1]
 
 
+    # Delete unnecessary headers in orig_msg except to save space
+    delete_all_headers_except(
+        orig_msg,
+        [
+            "MIME-Version",
+            "Content-Type",
+            "Content-Disposition",
+            "Content-Transfer-Encoding",
+        ],
+    )
+
     first = MIMEApplication(
     first = MIMEApplication(
         _subtype="pgp-encrypted", _encoder=encoders.encode_7or8bit, _data=""
         _subtype="pgp-encrypted", _encoder=encoders.encode_7or8bit, _data=""
     )
     )

+ 2 - 0
init_app.py

@@ -22,6 +22,8 @@ def load_pgp_public_keys(app):
 
 
         db.session.commit()
         db.session.commit()
 
 
+    LOG.d("Finish load_pgp_public_keys")
+
 
 
 if __name__ == "__main__":
 if __name__ == "__main__":
     app = create_app()
     app = create_app()

+ 1 - 1
server.py

@@ -151,7 +151,7 @@ def fake_data():
     db.session.commit()
     db.session.commit()
 
 
     api_key = ApiKey.create(user_id=user.id, name="Chrome")
     api_key = ApiKey.create(user_id=user.id, name="Chrome")
-    api_key.code = "codeCH"
+    api_key.code = "code"
 
 
     api_key = ApiKey.create(user_id=user.id, name="Firefox")
     api_key = ApiKey.create(user_id=user.id, name="Firefox")
     api_key.code = "codeFF"
     api_key.code = "codeFF"