Bläddra i källkod

fix checkTrustedChallenge [rollback] + host

Signed-off-by: marinofaggiana <marino@marinofaggiana.com>
marinofaggiana 3 år sedan
förälder
incheckning
4ebb6a8d36

+ 2 - 1
iOSClient/NCGlobal.swift

@@ -201,7 +201,8 @@ class NCGlobal: NSObject {
     let certificate                                 = "certificate.der"
     let certificateTmp                              = "tmp.der"
     let certificateTmpV2                            = "certificatetmp.der"
-    
+    let certificatePushNotificationServerProxy      = "certificatePushNotificationServerProxytmp.der"
+
     // Extension
     @objc let extensionPreview                      = "ico"
     

+ 8 - 2
iOSClient/Networking/NCNetworking.swift

@@ -163,8 +163,10 @@ import Queuer
         let protectionSpace: URLProtectionSpace = challenge.protectionSpace
         let directoryCertificate = CCUtility.getDirectoryCerificates()!
         let directoryCertificateUrl = URL.init(fileURLWithPath: directoryCertificate)
+        var certificateTempPath = ""
         let host = challenge.protectionSpace.host
-    
+        let hostPushNotificationServerProxy = URL(string: NCBrandOptions.shared.pushNotificationServerProxy)?.host
+            
         print("SSL host: \(host)")
         
         if let serverTrust: SecTrust = protectionSpace.serverTrust {
@@ -198,7 +200,11 @@ import Queuer
                 let certificate = NSData(bytes: data, length: size)
                 
                 // write certificate tmp to disk
-                let certificateTempPath = directoryCertificate + "/" + NCGlobal.shared.certificateTmpV2
+                if host == hostPushNotificationServerProxy {
+                    certificateTempPath = directoryCertificate + "/" + NCGlobal.shared.certificatePushNotificationServerProxy
+                } else {
+                    certificateTempPath = directoryCertificate + "/" + NCGlobal.shared.certificateTmpV2
+                }
                 certificate.write(toFile: certificateTempPath, atomically: true)
                 
                 // verify

+ 9 - 3
iOSClient/Security/NCViewCertificateDetails.swift

@@ -50,17 +50,23 @@ class NCViewCertificateDetails: UIViewController  {
         super.viewDidLoad()
         
         var certificatePath = directoryCertificate + "/" + NCGlobal.shared.certificateTmpV2 + ".txt"
+        let hostPushNotificationServerProxy = URL(string: NCBrandOptions.shared.pushNotificationServerProxy)?.host
 
         self.navigationItem.title = NSLocalizedString("_certificate_details_", comment: "")
         buttonCancel.title = NSLocalizedString("_close_", comment: "")
         
-        if let host = host {
-            certificatePath = directoryCertificate + "/" + host + ".der"
+        if host == hostPushNotificationServerProxy {
+            certificatePath = directoryCertificate + "/" + NCGlobal.shared.certificatePushNotificationServerProxy
         } else {
-            if let host = URL(string: appDelegate.urlBase)?.host {
+            if let host = host {
                 certificatePath = directoryCertificate + "/" + host + ".der"
+            } else {
+                if let host = URL(string: appDelegate.urlBase)?.host {
+                    certificatePath = directoryCertificate + "/" + host + ".der"
+                }
             }
         }
+        
         if FileManager.default.fileExists(atPath: certificatePath) {
             do {
                 let text = try String(contentsOfFile: certificatePath, encoding: .utf8)