diff --git a/enzevalos_iphone/AddressHandler.swift b/enzevalos_iphone/AddressHandler.swift index 93daf09e5db1bca37504601aed3e2ce40f5226e5..9afada17598cfc0f32a76546f9b34d93d3957556 100644 --- a/enzevalos_iphone/AddressHandler.swift +++ b/enzevalos_iphone/AddressHandler.swift @@ -21,7 +21,6 @@ class AddressHandler { try AppDelegate.getAppDelegate().contactStore.enumerateContacts(with: CNContactFetchRequest(keysToFetch: [CNContactFormatter.descriptorForRequiredKeys(for: CNContactFormatterStyle.fullName), CNContactEmailAddressesKey as CNKeyDescriptor, CNContactImageDataKey as CNKeyDescriptor, CNContactThumbnailImageDataKey as CNKeyDescriptor]), usingBlock: { ( c: CNContact, stop) -> Void in -// print(c) for email in c.emailAddresses { let addr = email.value as String var type: UIImage? = nil diff --git a/enzevalos_iphone/DataHandler.swift b/enzevalos_iphone/DataHandler.swift index b375fde825e5f661478da9ec4a891a22926f728e..42832758699398c08ca059a8821b22069aa28dac 100644 --- a/enzevalos_iphone/DataHandler.swift +++ b/enzevalos_iphone/DataHandler.swift @@ -95,41 +95,9 @@ class DataHandler { return false } - func checkRecords(records: [KeyRecord]) { - for record in records { - if record.addresses.count == 0 { - print("Record has no addresses: \(record)") - } - if record.mails.count < record.mailsInFolder(folder: record.folder).count { - print("Wrong matching of mails: \(record)") - } - for mail in record.mails { - checkMail(mail: mail) - } - for mail in record.mailsInFolder(folder: record.folder) { - checkMail(mail: mail) - } - } - } - - func checkMail(mail: PersistentMail) { - if mail.to.count == 0 && mail.cc == nil { - print("Mail has no receiver: \(mail)") - } - } + - func checkFolder(folderName: String) { - let folder = findFolder(with: folderName) - if let mails = folder.mails { - for m in mails { - let mail = m as! PersistentMail - checkMail(mail: mail) - } - } - let records = folder.records - checkRecords(records: records) - checkRecords(records: folder.records) - } + @@ -397,13 +365,23 @@ class DataHandler { } func newPublicKey(keyID: String, cryptoType: CryptoScheme, adr: String, autocrypt: Bool, firstMail: PersistentMail? = nil, newGenerated: Bool = false) -> PersistentKey { - let date = Date.init() as NSDate + var date = Date.init() + if let mail = firstMail{ + print("Date: \(date) mail date: \(mail.date)") + if date.compare(mail.date).rawValue > 0{ + date = mail.date + } + } let adr = getMailAddress(adr, temporary: false) as! Mail_Address var pk: PersistentKey if let search = findKey(keyID: keyID) { - search.lastSeen = date + if search.lastSeen < date{ + search.lastSeen = date + } if autocrypt { - search.lastSeenAutocrypt = date + if search.lastSeenAutocrypt < date{ + search.lastSeenAutocrypt = date + } search.sentOwnPublicKey = true } search.addToMailaddress(adr) @@ -428,7 +406,7 @@ class DataHandler { pk.discoveryDate = date pk.firstMail = firstMail if autocrypt { - pk.lastSeenAutocrypt = date + pk.lastSeenAutocrypt = date pk.sentOwnPublicKey = true } var found = false @@ -453,7 +431,15 @@ class DataHandler { } // } } - adr.primaryKeyID = pk.keyID + if let prim = adr.primaryKey, let last = prim.lastSeen, let currentLast = pk.lastSeen{ + if last < currentLast { + adr.primaryKeyID = pk.keyID + } + } + else{ + adr.primaryKeyID = keyID + } + save(during: "new PK") return pk } diff --git a/enzevalos_iphone/DebugSettings.swift b/enzevalos_iphone/DebugSettings.swift index b0091380aa959fc18d5a10528045aa98300ddc77..ad7a299b46e9d7a6aed0ad643cb37405c3d28a13 100644 --- a/enzevalos_iphone/DebugSettings.swift +++ b/enzevalos_iphone/DebugSettings.swift @@ -27,6 +27,7 @@ func setupStudyPublicKeys(studyMode: Bool){ func loadTestAcc(){ + //loadAliceEnzevalos() //loadBobEnzevalos() //loadAlice2005() //loadCharlieEnzevalos() @@ -68,6 +69,11 @@ func loadCharlieEnzevalos(){ userdefaults(defaults: user) } +func loadAliceEnzevalos(){ + let user = enzevalos(name: "alice", pw: "egOavOpeecOntew") + userdefaults(defaults: user) +} + // Enzevalos! // static let name = "bob" // static let pw = "VagotOshaicceov" @@ -120,8 +126,7 @@ private func importPublicKey(file: String, type: String, adr: String){ do{ let ids = try pgp.importKeysFromFile(file: path, pw: nil) for id in ids{ - let k = datahandler.newPublicKey(keyID: id, cryptoType: CryptoScheme.PGP, adr: adr, autocrypt: false) - print("New public key of \(adr) with id \(k.keyID)") + _ = datahandler.newPublicKey(keyID: id, cryptoType: CryptoScheme.PGP, adr: adr, autocrypt: false) } } catch _ { diff --git a/enzevalos_iphone/FolderListViewController.swift b/enzevalos_iphone/FolderListViewController.swift index d88616a0cbccfe8269ea6d6dfd65382f3419dbdd..9984611e1336fc123b1c8029a64caa75252e7a78 100644 --- a/enzevalos_iphone/FolderListViewController.swift +++ b/enzevalos_iphone/FolderListViewController.swift @@ -15,7 +15,6 @@ class FolderListViewController: UITableViewController { override func viewDidLoad() { super.viewDidLoad() self.navigationItem.title = folder.name - print("Hallo") } override func numberOfSections(in tableView: UITableView) -> Int { diff --git a/enzevalos_iphone/FolderViewController.swift b/enzevalos_iphone/FolderViewController.swift index 778adb791aa3a20295b6bc80d0b5488901530204..c933aadac3005e3ec4bd64b52e3a216b4050ad6f 100644 --- a/enzevalos_iphone/FolderViewController.swift +++ b/enzevalos_iphone/FolderViewController.swift @@ -181,7 +181,6 @@ class FolderViewController: UITableViewController { refreshControl?.endRefreshing() } func newMails(mail: PersistentMail?) { - print("newMails") } func getImage(for path: String) -> UIImage { diff --git a/enzevalos_iphone/HockeySDK.swift b/enzevalos_iphone/HockeySDK.swift index 6b815704b004ee6cc95d71c801cdd95557d492b7..825d56b31003e98aeb819c77a552fa60c73e3a59 100644 --- a/enzevalos_iphone/HockeySDK.swift +++ b/enzevalos_iphone/HockeySDK.swift @@ -27,7 +27,6 @@ struct HockeySDK { static func setup() { - print(self.isDebugBuild) guard let _identifierKey = Bundle.main.object(forInfoDictionaryKey: identifierKey) as? String else { print("Info: You have to set the `\(identifierKey)` key in the info plist.") return diff --git a/enzevalos_iphone/InboxViewController.swift b/enzevalos_iphone/InboxViewController.swift index bb854e9fa87b1e656d1695bf7ae347ec07ffa47f..629de6694c28f6151f9facdf6d2db37094ade4a7 100644 --- a/enzevalos_iphone/InboxViewController.swift +++ b/enzevalos_iphone/InboxViewController.swift @@ -288,7 +288,6 @@ extension InboxViewController { let reload_distance: CGFloat = 200 if y > h + reload_distance && !loading { - print("loading new mail because we scrolled to the bottom") loading = true AppDelegate.getAppDelegate().mailHandler.loadMailsForInbox(newMailCallback: addNewMail, completionCallback: doneLoading) diff --git a/enzevalos_iphone/InitViewController.swift b/enzevalos_iphone/InitViewController.swift index 3a7a58eab08d1474daaf86f13ab7a42f01eb5b9f..7cb825b471fda75ba59648ef33d15cd074694046 100644 --- a/enzevalos_iphone/InitViewController.swift +++ b/enzevalos_iphone/InitViewController.swift @@ -20,23 +20,6 @@ class InitViewController : UIViewController { let manager = MCOMailProvidersManager.shared()!//.init() //sharedManager() let path = Bundle.main.path(forResource: "providers", ofType: "json") manager.registerProviders(withFilename: path) - print(manager.provider(forEmail: "alice2005@web.de") == nil) - print(manager.provider(forEmail: "alice2005@aol.com") == nil) //x - print(manager.provider(forEmail: "aol.com") == nil) - print(manager.provider(forMX: "imap.aol.com") == nil) - print(manager.provider(forMX: "web") == nil) //x - print(manager.provider(forMX: "web.de") == nil) //x - print(manager.provider(forIdentifier: "web") == nil) //x - print(manager.provider(forIdentifier: "web.de") == nil) - print(manager.provider(forIdentifier: "alice2005@aol.com") == nil) - print(manager.provider(forIdentifier: "aol") == nil) //x - print(manager.provider(forIdentifier: "aol.com") == nil) - - print(manager.provider(forMX: "web.de").imapServices()) - print(manager.provider(forMX: "web.de").smtpServices()) - - let nService : MCONetService = (manager.provider(forMX: "web.de").smtpServices() as! [MCONetService])[0] - print(nService.info()) } } diff --git a/enzevalos_iphone/ListViewController.swift b/enzevalos_iphone/ListViewController.swift index eeda70a4fbfd965bcc8d96d0f8a2de44f925e09c..9aba5ae2cdaa8dbe14dd1d620948691005523978 100644 --- a/enzevalos_iphone/ListViewController.swift +++ b/enzevalos_iphone/ListViewController.swift @@ -214,7 +214,6 @@ class ListViewController: UITableViewController { let reload_distance: CGFloat = 50 if y > h + reload_distance && !loading { - print("loading new mail because we scrolled to the bottom") loading = true AppDelegate.getAppDelegate().mailHandler.loadMailsForRecord(contact!, folderPath: UserManager.backendInboxFolderPath, newMailCallback: addNewMail, completionCallback: doneLoading) tableView.reloadData() diff --git a/enzevalos_iphone/MailHandler.swift b/enzevalos_iphone/MailHandler.swift index 730210ea61bf78ab78972e2d7dbef38d0630f171..292a3e986aa517b2dadc266126fa0d91e3e21010 100644 --- a/enzevalos_iphone/MailHandler.swift +++ b/enzevalos_iphone/MailHandler.swift @@ -538,7 +538,6 @@ class MailHandler { let y = imapsession.folderStatusOperation(INBOX) y?.start{(error, status) -> Void in - print("Folder status: \(status.debugDescription)") // TODO: UIDValality check here! let uidValidity = status?.uidValidity let nextId = status?.uidNext @@ -580,7 +579,6 @@ class MailHandler { if let c = capabilities { self.IMAPIdleSupported = c.contains(UInt64(MCOIMAPCapability.idle.rawValue)) - print("IMAP Idle is \(self.IMAPIdleSupported! ? "" : "not ")supported!") self.startIMAPIdleIfSupported(addNewMail: addNewMail) } }) @@ -676,7 +674,6 @@ class MailHandler { let fetchOperation: MCOIMAPFetchMessagesOperation = self.IMAPSession.fetchMessagesOperation(withFolder: folderPath, requestKind: requestKind, uids: uids) fetchOperation.extraHeaders = [AUTOCRYPTHEADER, SETUPMESSAGE] if uids.count() == 0{ - print("NO UIDS to call!") completionCallback(false) return } @@ -829,22 +826,20 @@ class MailHandler { if let header = header, let from = header.from, let date = header.date { let mail = DataHandler.handler.createMail(UInt64(message.uid), sender: from, receivers: rec, cc: cc, time: date, received: true, subject: header.subject ?? "", body: body, flags: message.flags, record: record, autocrypt: autocrypt, decryptedData: dec, folderPath: folderPath, secretKey: secretKey, references: references, mailagent: userAgent, messageID: msgID) - - let pgp = SwiftPGP() - if let autoc = autocrypt{ - let publickeys = try! pgp.importKeys(key: autoc.key, pw: nil, isSecretKey: false, autocrypt: true) - for pk in publickeys{ - _ = DataHandler.handler.newPublicKey(keyID: pk, cryptoType: CryptoScheme.PGP, adr: from.mailbox, autocrypt: true, firstMail: mail) + if let m = mail{ + let pgp = SwiftPGP() + if let autoc = autocrypt{ + let publickeys = try! pgp.importKeys(key: autoc.key, pw: nil, isSecretKey: false, autocrypt: true) + for pk in publickeys{ + _ = DataHandler.handler.newPublicKey(keyID: pk, cryptoType: CryptoScheme.PGP, adr: from.mailbox, autocrypt: true, firstMail: mail) + } } - } - for keyId in newKeyIds{ - _ = DataHandler.handler.newPublicKey(keyID: keyId, cryptoType: CryptoScheme.PGP, adr: from.mailbox, autocrypt: false, firstMail: mail) - } -// Logger.queue.async(flags: .barrier) { - if let mail = mail { - Logger.log(received: mail) + for keyId in newKeyIds{ + _ = DataHandler.handler.newPublicKey(keyID: keyId, cryptoType: CryptoScheme.PGP, adr: from.mailbox, autocrypt: false, firstMail: mail) } -// } + // Logger.queue.async(flags: .barrier) { + Logger.log(received: m) + } if newMailCallback != nil{ newMailCallback!(mail) } diff --git a/enzevalos_iphone/Mail_Address+CoreDataClass.swift b/enzevalos_iphone/Mail_Address+CoreDataClass.swift index 841e70691bd18b24ec2c07484d0e0444d9e7915d..388ae72fc47c1dc5026e54785109632200ad0131 100644 --- a/enzevalos_iphone/Mail_Address+CoreDataClass.swift +++ b/enzevalos_iphone/Mail_Address+CoreDataClass.swift @@ -18,6 +18,7 @@ open class Mail_Address: NSManagedObject, MailAddress { get{ if hasKey{ for key in publicKeys{ + print(key.keyID) if key.keyID == primaryKeyID { return key } diff --git a/enzevalos_iphone/PersistentKey+CoreDataClass.swift b/enzevalos_iphone/PersistentKey+CoreDataClass.swift index 6929ad5d035b90d205e1d32d3de6e4a86c399e55..4d2792daa5c19c6a7197c70fe657603ac399ea3a 100644 --- a/enzevalos_iphone/PersistentKey+CoreDataClass.swift +++ b/enzevalos_iphone/PersistentKey+CoreDataClass.swift @@ -29,7 +29,7 @@ public class PersistentKey: NSManagedObject { } func verify(){ - self.verifiedDate = Date.init() as NSDate + self.verifiedDate = Date.init() } func isVerified() -> Bool{ diff --git a/enzevalos_iphone/PersistentKey+CoreDataProperties.swift b/enzevalos_iphone/PersistentKey+CoreDataProperties.swift index b8c68b435375fb7c25feaf14740621d7822bbc37..70fb66376809c077f686470c6afd0b29f2f9b5d3 100644 --- a/enzevalos_iphone/PersistentKey+CoreDataProperties.swift +++ b/enzevalos_iphone/PersistentKey+CoreDataProperties.swift @@ -17,10 +17,10 @@ extension PersistentKey { } @NSManaged public var keyID: String - @NSManaged public var verifiedDate: NSDate? - @NSManaged public var lastSeen: NSDate? - @NSManaged public var lastSeenAutocrypt: NSDate? - @NSManaged public var discoveryDate: NSDate? + @NSManaged public var verifiedDate: Date? + @NSManaged public var lastSeen: Date? + @NSManaged public var lastSeenAutocrypt: Date? + @NSManaged public var discoveryDate: Date? @NSManaged public var mailaddress: NSSet? @NSManaged public var firstMail: PersistentMail? @NSManaged public var pseudonym: String diff --git a/enzevalos_iphone/PersistentMail +CoreDataProperties.swift b/enzevalos_iphone/PersistentMail +CoreDataProperties.swift index 4eb48ed77ebbe135a38417919b0f25b5b91396f2..46b8cea60311e0346ea2dae231fd51e1181d4707 100644 --- a/enzevalos_iphone/PersistentMail +CoreDataProperties.swift +++ b/enzevalos_iphone/PersistentMail +CoreDataProperties.swift @@ -154,7 +154,6 @@ extension PersistentMail { if let range = (body.range(of: key)?.upperBound){ pw = body.substring(from: range) if let split = pw?.components(separatedBy: CharacterSet.whitespacesAndNewlines){ - print(split) if split.count > 0 && split[0].count > 0{ pw = split[0] } diff --git a/enzevalos_iphone/SwiftPGP.swift b/enzevalos_iphone/SwiftPGP.swift index 221ee0502eb487f370b34f670203a67c0ac765cb..ff3b1d9cd1cc808255a605aa36b796130a5a1fff 100644 --- a/enzevalos_iphone/SwiftPGP.swift +++ b/enzevalos_iphone/SwiftPGP.swift @@ -264,7 +264,6 @@ class SwiftPGP: Encryption{ else{ armoredKey = Armor.armored(key, as: PGPArmorType.publicKey) } - print(armoredKey) if isSecretKey && autocrypt{ // Create Autocrypt Setup-message // See: https://autocrypt.readthedocs.io/en/latest/level1.html#autocrypt-setup-message