Forráskód Böngészése

Update NCEndToEndMetadataV20.swift

Marino Faggiana 1 éve
szülő
commit
4b171543ec
1 módosított fájl, 18 hozzáadás és 14 törlés
  1. 18 14
      iOSClient/Networking/E2EE/NCEndToEndMetadataV20.swift

+ 18 - 14
iOSClient/Networking/E2EE/NCEndToEndMetadataV20.swift

@@ -51,24 +51,28 @@ extension NCEndToEndMetadata {
         var decryptedMetadataKey: Data?
         var keyChecksums: [String] = []
 
-        if let user = NCManageDatabase.shared.getE2EUsersV2(account: account, ocIdServerUrl: ocIdServerUrl, userId: userId) {
-            encryptedMetadataKey = user.encryptedMetadataKey
-            metadataKey = user.metadataKey
-        } else {
-            guard let keyGenerated = NCEndToEndEncryption.sharedManager()?.generateKey() as? Data else { return (nil, nil) }
-            decryptedMetadataKey = keyGenerated
-            metadataKey = keyGenerated.base64EncodedString()
-            guard let metadataKeyEncrypted = NCEndToEndEncryption.sharedManager().encryptAsymmetricData(keyGenerated, privateKey: privateKey) else { return (nil, nil) }
-            encryptedMetadataKey = metadataKeyEncrypted.base64EncodedString()
-
-            NCManageDatabase.shared.addE2EUsersV2(account: account, serverUrl: serverUrl, ocIdServerUrl: ocIdServerUrl, userId: userId, certificate: certificate, encryptedFiledropKey: nil, encryptedMetadataKey: encryptedMetadataKey, decryptedFiledropKey: nil, decryptedMetadataKey: decryptedMetadataKey, filedropKey: nil, metadataKey: metadataKey)
+        if isDirectoryTop {
+
+            if let user = NCManageDatabase.shared.getE2EUsersV2(account: account, ocIdServerUrl: ocIdServerUrl, userId: userId) {
+                encryptedMetadataKey = user.encryptedMetadataKey
+                metadataKey = user.metadataKey
+            } else {
+                guard let keyGenerated = NCEndToEndEncryption.sharedManager()?.generateKey() as? Data else { return (nil, nil) }
+                decryptedMetadataKey = keyGenerated
+                metadataKey = keyGenerated.base64EncodedString()
+                guard let metadataKeyEncrypted = NCEndToEndEncryption.sharedManager().encryptAsymmetricData(keyGenerated, privateKey: privateKey) else { return (nil, nil) }
+                encryptedMetadataKey = metadataKeyEncrypted.base64EncodedString()
+
+                NCManageDatabase.shared.addE2EUsersV2(account: account, serverUrl: serverUrl, ocIdServerUrl: ocIdServerUrl, userId: userId, certificate: certificate, encryptedFiledropKey: nil, encryptedMetadataKey: encryptedMetadataKey, decryptedFiledropKey: nil, decryptedMetadataKey: decryptedMetadataKey, filedropKey: nil, metadataKey: metadataKey)
+            }
         }
 
         // Create E2eeV20.Users
-        if let e2eUsers = NCManageDatabase.shared.getE2EUsersV2(account: account, ocIdServerUrl: ocIdServerUrl) {
+        if let e2eUsers = NCManageDatabase.shared.getE2EUsersV2(account: account, ocIdServerUrl: directoryTop.ocId) {
             for user in e2eUsers {
-                usersCodable.append(E2eeV20.Users(userId: user.userId, certificate: user.certificate, encryptedMetadataKey: user.encryptedMetadataKey, encryptedFiledropKey: user.encryptedFiledropKey))
-
+                if isDirectoryTop {
+                    usersCodable.append(E2eeV20.Users(userId: user.userId, certificate: user.certificate, encryptedMetadataKey: user.encryptedMetadataKey, encryptedFiledropKey: user.encryptedFiledropKey))
+                }
                 if let hash = NCEndToEndEncryption.sharedManager().createSHA256(user.decryptedMetadataKey) {
                     keyChecksums.append(hash)
                 }