Browse Source

use pgpy if python-gnupg fails

Son NK 4 năm trước cách đây
mục cha
commit
5a190ed840
1 tập tin đã thay đổi với 11 bổ sung4 xóa
  1. 11 4
      email_handler.py

+ 11 - 4
email_handler.py

@@ -424,10 +424,17 @@ def prepare_pgp_message(orig_msg: Message, pgp_fingerprint: str, public_key: str
     x = random.randint(0, 9)
     if x >= 5:
         LOG.d("encrypt using python-gnupg")
-        encrypted_data = pgp_utils.encrypt_file(
-            BytesIO(orig_msg.as_bytes()), pgp_fingerprint
-        )
-        second.set_payload(encrypted_data)
+        try:
+            encrypted_data = pgp_utils.encrypt_file(
+                BytesIO(orig_msg.as_bytes()), pgp_fingerprint
+            )
+            second.set_payload(encrypted_data)
+        except PGPException:
+            LOG.exception("Cannot encrypt using python-gnupg, use pgpy")
+            encrypted_data = pgp_utils.encrypt_file_with_pgpy(
+                orig_msg.as_bytes(), public_key
+            )
+            second.set_payload(str(encrypted_data))
     else:
         LOG.d("encrypt using pgpy")
         encrypted_data = pgp_utils.encrypt_file_with_pgpy(