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