Marino Faggiana 1 year ago
parent
commit
c13ae84ff1
2 changed files with 7 additions and 7 deletions
  1. 1 0
      iOSClient/NCGlobal.swift
  2. 6 7
      iOSClient/Networking/E2EE/NCEndToEndMetadata.swift

+ 1 - 0
iOSClient/NCGlobal.swift

@@ -122,6 +122,7 @@ class NCGlobal: NSObject {
     //
     let e2eePassphraseTest                          = "more over television factory tendency independence international intellectual impress interest sentence pony"
     @objc let e2eeVersions                          = ["1.1", "1.2", "2.0"]
+    let e2eeVersionV11                              = "1.1"
     let e2eeVersionV12                              = "1.2"
     let e2eeVersionV20                              = "2.0"
 

+ 6 - 7
iOSClient/Networking/E2EE/NCEndToEndMetadata.swift

@@ -38,12 +38,11 @@ class NCEndToEndMetadata: NSObject {
             return (nil, nil, NKError(errorCode: NCGlobal.shared.errorUnexpectedResponseFromDB, errorDescription: "_e2e_error_"))
         }
 
-        switch e2EEApiVersion {
-        case NCGlobal.shared.e2eeVersionV12:
+        if e2EEApiVersion == NCGlobal.shared.e2eeVersionV12 && NCGlobal.shared.e2eeVersions.contains(NCGlobal.shared.e2eeVersionV12) {
             return encodeMetadataV12(account: account, serverUrl: serverUrl, ocIdServerUrl: directory.ocId)
-        case NCGlobal.shared.e2eeVersionV20:
+        } else if e2EEApiVersion == NCGlobal.shared.e2eeVersionV20 && NCGlobal.shared.e2eeVersions.contains(NCGlobal.shared.e2eeVersionV20) {
             return encodeMetadataV20(account: account, serverUrl: serverUrl, ocIdServerUrl: directory.ocId, userId: userId, addUserId: addUserId, addCertificate: addCertificate, removeUserId: removeUserId)
-        default:
+        } else {
             return (nil, nil, NKError(errorCode: NCGlobal.shared.errorE2EEVersion, errorDescription: "_e2e_error_"))
         }
     }
@@ -62,11 +61,11 @@ class NCEndToEndMetadata: NSObject {
 
         let decoder = JSONDecoder()
 
-        if (try? decoder.decode(E2eeV1.self, from: data)) != nil {
+        if (try? decoder.decode(E2eeV1.self, from: data)) != nil && NCGlobal.shared.e2eeVersions.contains(NCGlobal.shared.e2eeVersionV11) {
             return decodeMetadataV1(json, serverUrl: serverUrl, account: account, ocIdServerUrl: directory.ocId, urlBase: urlBase, userId: userId)
-        } else if (try? decoder.decode(E2eeV12.self, from: data)) != nil {
+        } else if (try? decoder.decode(E2eeV12.self, from: data)) != nil && NCGlobal.shared.e2eeVersions.contains(NCGlobal.shared.e2eeVersionV12) {
             return decodeMetadataV12(json, serverUrl: serverUrl, account: account, ocIdServerUrl: directory.ocId, urlBase: urlBase, userId: userId, ownerId: ownerId)
-        } else if (try? decoder.decode(E2eeV20.self, from: data)) != nil {
+        } else if (try? decoder.decode(E2eeV20.self, from: data)) != nil && NCGlobal.shared.e2eeVersions.contains(NCGlobal.shared.e2eeVersionV20) {
             return decodeMetadataV20(json, signature: signature, serverUrl: serverUrl, account: account, ocIdServerUrl: directory.ocId, urlBase: urlBase, userId: userId, ownerId: ownerId)
         } else {
             return NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "Server E2EE version " + NCGlobal.shared.capabilityE2EEApiVersion + ", not compatible")