From 8c7f9a6b900709ba8bac1f36bf3772ce97ec86e0 Mon Sep 17 00:00:00 2001
From: Lauren Elden <B.Lauren1695@gmail.com>
Date: Sun, 8 Mar 2020 16:57:07 +0100
Subject: [PATCH] #265: Fixing some errors (not done yet)

---
 enzevalos_iphone/OutgoingMail.swift      | 16 ++++++++++++++--
 enzevalos_iphone/mail/IncomingMail.swift |  2 +-
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/enzevalos_iphone/OutgoingMail.swift b/enzevalos_iphone/OutgoingMail.swift
index 6b34d58d..55c681cf 100644
--- a/enzevalos_iphone/OutgoingMail.swift
+++ b/enzevalos_iphone/OutgoingMail.swift
@@ -116,7 +116,11 @@ class OutgoingMail {
         self.sendEncryptedIfPossible = sendEncryptedIfPossible
         self.attachments = attachments
         self.orderReceivers()
-        self.attachedSignature = IncomingMail.extractPGPSignature(attachment: attachments)
+        let signature = OutgoingMail.extractPGPSignature(attachment: attachments.first!)
+        guard let SignatureData =  signature.first?.data(using: .utf8) else {
+            return
+        }
+        self.attachedSignature = SignatureData
     }
     
     init(mail: PersistentMail){
@@ -250,7 +254,15 @@ class OutgoingMail {
         return true
     }
     
-   
+    private static func extractPGPSignature(attachment: MCOAttachment) -> [String] {
+        if let content = attachment.decodedString() {
+            return PGPPart.SIGNATURE.findPGPPartInString(content: content)
+        }
+        else if let content = String(data: attachment.data, encoding: .ascii){
+            return PGPPart.SIGNATURE.findPGPPartInString(content: content)
+        }
+        return []
+    }
     
     private func createPlainData() -> Data {
         let builder = createBuilder()
diff --git a/enzevalos_iphone/mail/IncomingMail.swift b/enzevalos_iphone/mail/IncomingMail.swift
index cdee31bc..1d8db52f 100644
--- a/enzevalos_iphone/mail/IncomingMail.swift
+++ b/enzevalos_iphone/mail/IncomingMail.swift
@@ -388,7 +388,7 @@ class IncomingMail {
             }
             if let signedData = text?.data(using: .utf8) { // No Signed Data!
                 // First Signature as main attachedSignature for mail -- not optimal
-                self.attachedSignature = try? Armor.readArmored(signaturesRaw.first)
+                self.attachedSignature = try? Armor.readArmored(signaturesRaw.first!)
                 for sig in signaturesRaw {
                     if let signature = try? Armor.readArmored(sig), let adr = from?.mailbox {
                         for id in fromKeyIds {
-- 
GitLab