Pārlūkot izejas kodu

use pgpy if python-gnupg fails

Son NK 4 gadi atpakaļ
vecāks
revīzija
5a190ed840
1 mainītis faili ar 11 papildinājumiem un 4 dzēšanām
  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(