From db0f3d149f19e29b2a9c202cf346b590ebb0c010 Mon Sep 17 00:00:00 2001
From: Oliver Wiese <oliver.wiese@fu-berlin.de>
Date: Thu, 26 Oct 2017 15:04:38 +0200
Subject: [PATCH] fix #116

---
 enzevalos_iphone/MailHandler.swift                | 15 ++++++++++-----
 .../ObjectivePGP/Packets/PGPSignaturePacket.m     |  3 +++
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/enzevalos_iphone/MailHandler.swift b/enzevalos_iphone/MailHandler.swift
index f587d283..191a19b1 100644
--- a/enzevalos_iphone/MailHandler.swift
+++ b/enzevalos_iphone/MailHandler.swift
@@ -38,6 +38,7 @@ fileprivate func > <T : Comparable>(lhs: T?, rhs: T?) -> Bool {
 
 
 let AUTOCRYPTHEADER = "Autocrypt"
+let SETUPMESSAGE = "Autocrypt-Setup-Message"
 let ADDR = "adr"
 let TYPE = "type"
 let ENCRYPTION = "prefer-encrypted"
@@ -236,8 +237,8 @@ class MailHandler {
         let builder = MCOMessageBuilder()
         let userID :MCOAddress = MCOAddress(displayName: useraddr, mailbox: useraddr)
       
-        createHeader(builder, toEntrys: [useraddr], ccEntrys: [], bccEntrys: [], subject: "Autocrypt Setup Message 2")
-        builder.header.setExtraHeaderValue("v0", forName: "Autocrypt-Setup-Message")
+        createHeader(builder, toEntrys: [useraddr], ccEntrys: [], bccEntrys: [], subject: "Autocrypt Setup Message")
+        builder.header.setExtraHeaderValue("v0", forName: SETUPMESSAGE)
         
         
         /*
@@ -516,8 +517,12 @@ class MailHandler {
         let requestKind = MCOIMAPMessagesRequestKind(rawValue: MCOIMAPMessagesRequestKind.headers.rawValue | MCOIMAPMessagesRequestKind.flags.rawValue)
 
         let fetchOperation: MCOIMAPFetchMessagesOperation = self.IMAPSession.fetchMessagesOperation(withFolder: folderPath, requestKind: requestKind, uids: uids)
-        fetchOperation.extraHeaders = [AUTOCRYPTHEADER]
-        
+        fetchOperation.extraHeaders = [AUTOCRYPTHEADER, SETUPMESSAGE]
+        if uids.count() == 0{
+            print("NO UIDS to call!")
+            completionCallback(false)
+            return
+        }
         fetchOperation.start { (err, msg, vanished) -> Void in
             guard err == nil else {
                 print("Error while fetching inbox: \(String(describing: err))")
@@ -570,7 +575,7 @@ class MailHandler {
             autocrypt = AutocryptContact(header: header!)
         }
         
-        if let _ = header?.extraHeaderValue(forName: "Autocrypt-Setup-Message"){
+        if let _ = header?.extraHeaderValue(forName: SETUPMESSAGE){
             // own key export message -> Drop message?.
             // TODO: Distinguish between other keys (future work)
             if newMailCallback != nil{
diff --git a/enzevalos_iphone/ObjectivePGP/Packets/PGPSignaturePacket.m b/enzevalos_iphone/ObjectivePGP/Packets/PGPSignaturePacket.m
index 1583fa2c..fd4f0778 100644
--- a/enzevalos_iphone/ObjectivePGP/Packets/PGPSignaturePacket.m
+++ b/enzevalos_iphone/ObjectivePGP/Packets/PGPSignaturePacket.m
@@ -293,6 +293,9 @@ NS_ASSUME_NONNULL_BEGIN
         }
     }
 
+    if (signingKeyPacket == NULL){
+        return NO;
+    }
     switch (signingKeyPacket.publicKeyAlgorithm) {
         case PGPPublicKeyAlgorithmRSA:
         case PGPPublicKeyAlgorithmRSASignOnly:
-- 
GitLab