diff --git a/enzevalos_iphone/OutgoingMail.swift b/enzevalos_iphone/OutgoingMail.swift index 6b34d58d34cf1f877d92c51bd9f0c0766c8ada6d..55c681cf54603ad66434c9d0db0aebe5b3f87b7d 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 cdee31bc94d7df41f4baeb734ac55db8b7ce4015..1d8db52f9c36eec5b17b6cadb8ba1fda3cc3a5c5 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 {