Marino Faggiana 1 年之前
父節點
當前提交
80b42156ae

+ 1 - 1
iOSClient/Extensions/UIAlertController+Extension.swift

@@ -38,7 +38,7 @@ extension UIAlertController {
             guard let fileNameFolder = alertController.textFields?.first?.text else { return }
             if markE2ee {
                 Task {
-                    let error = await NCNetworkingE2EECreateFolder.shared.createFolderAndMarkE2EE(fileName: fileNameFolder, serverUrl: serverUrl, account: urlBase.account)
+                    let error = await NCNetworkingE2EECreateFolder.shared.createFolderAndMarkE2EE(fileName: fileNameFolder, serverUrl: serverUrl, account: urlBase.account, userId: urlBase.userId)
                     if error != .success {
                         NCContentPresenter.shared.showError(error: error)
                     }

+ 2 - 2
iOSClient/Networking/E2EE/NCEndToEndMetadata.swift

@@ -122,7 +122,7 @@ class NCEndToEndMetadata: NSObject {
     // MARK: Encode JSON Metadata Bridge
     // --------------------------------------------------------------------------------------------
 
-    func encoderMetadata(_ items: [tableE2eEncryption], account: String, serverUrl: String) -> (metadata: String?, signature: String?) {
+    func encoderMetadata(_ items: [tableE2eEncryption], account: String, serverUrl: String, userId: String) -> (metadata: String?, signature: String?) {
 
         let e2EEApiVersion = NCGlobal.shared.capabilityE2EEApiVersion
 
@@ -130,7 +130,7 @@ class NCEndToEndMetadata: NSObject {
         case "1.2":
             return encoderMetadataV12(items, account: account, serverUrl: serverUrl)
         case "2.0":
-            return encoderMetadataV20(items, account: account, serverUrl: serverUrl)
+            return encoderMetadataV20(items, account: account, serverUrl: serverUrl, userId: userId)
         default:
             return (nil, nil)
         }

+ 4 - 4
iOSClient/Networking/E2EE/NCEndToEndMetadataV20.swift

@@ -31,15 +31,15 @@ extension NCEndToEndMetadata {
     // MARK: Ecode JSON Metadata V2.0
     // --------------------------------------------------------------------------------------------
 
-    func encoderMetadataV20(_ items: [tableE2eEncryption], account: String, serverUrl: String) -> (metadata: String?, signature: String?) {
+    func encoderMetadataV20(_ items: [tableE2eEncryption], account: String, serverUrl: String, userId: String) -> (metadata: String?, signature: String?) {
 
         var signature: String?
 
         // Signature
 
-        let dataMetadata = Data(base64Encoded: "cmsTest")
-        if let cmsData = NCEndToEndEncryption.sharedManager().generateSignatureCMS(dataMetadata, certificate: CCUtility.getEndToEndCertificate(account), privateKey: CCUtility.getEndToEndPrivateKey(account), publicKey: CCUtility.getEndToEndPublicKey(account), userId: "userId") {
-            signature = cmsData.base64EncodedString()
+        let dataMetadata = Data(base64Encoded: "metadata")
+        if let signatureData = NCEndToEndEncryption.sharedManager().generateSignatureCMS(dataMetadata, certificate: CCUtility.getEndToEndCertificate(account), privateKey: CCUtility.getEndToEndPrivateKey(account), publicKey: CCUtility.getEndToEndPublicKey(account), userId: userId) {
+            signature = signatureData.base64EncodedString()
         }
         return (nil, signature)
     }

+ 5 - 5
iOSClient/Networking/E2EE/NCNetworkingE2EECreateFolder.swift

@@ -34,7 +34,7 @@ class NCNetworkingE2EECreateFolder: NSObject {
 
     let errorEncodeMetadata = NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: NSLocalizedString("_e2e_error_encode_metadata_", comment: ""))
 
-    func createFolderAndMarkE2EE(fileName: String, serverUrl: String, account: String) async -> NKError {
+    func createFolderAndMarkE2EE(fileName: String, serverUrl: String, account: String, userId: String) async -> NKError {
 
         let serverUrlFileName = serverUrl + "/" + fileName
         var error = NKError()
@@ -63,7 +63,7 @@ class NCNetworkingE2EECreateFolder: NSObject {
             let lockResults = await NCNetworkingE2EE.shared.lock(account: account, serverUrl: serverUrlFileName)
             if lockResults.error != .success { return lockResults.error }
 
-            let resultEncoder = NCEndToEndMetadata().encoderMetadata([], account: account, serverUrl: serverUrlFileName)
+            let resultEncoder = NCEndToEndMetadata().encoderMetadata([], account: account, serverUrl: serverUrlFileName, userId: userId)
             if resultEncoder.metadata == nil {
                 return errorEncodeMetadata
             }
@@ -161,7 +161,7 @@ class NCNetworkingE2EECreateFolder: NSObject {
             return errorEncodeMetadata
         }
 
-        let resultEncoder = NCEndToEndMetadata().encoderMetadata(tableE2eEncryption, account: account, serverUrl: serverUrl)
+        let resultEncoder = NCEndToEndMetadata().encoderMetadata(tableE2eEncryption, account: account, serverUrl: serverUrl, userId: userId)
         if resultEncoder.metadata == nil {
             return errorEncodeMetadata
         }
@@ -171,7 +171,7 @@ class NCNetworkingE2EECreateFolder: NSObject {
         return putE2EEMetadataResults.error
     }
 
-    func markE2EEFolder(account: String, serverUrl: String, fileId: String, ocId: String) async -> (NKError) {
+    func markE2EEFolder(account: String, serverUrl: String, fileId: String, ocId: String, userId: String) async -> (NKError) {
 
         let markE2EEFolderResult = await NextcloudKit.shared.markE2EEFolder(fileId: fileId, delete: false)
         if markE2EEFolderResult.error != .success { return markE2EEFolderResult.error }
@@ -184,7 +184,7 @@ class NCNetworkingE2EECreateFolder: NSObject {
         let lockResults = await NCNetworkingE2EE.shared.lock(account: account, serverUrl: serverUrl)
         if lockResults.error != .success { return lockResults.error }
 
-        let resultEncoder = NCEndToEndMetadata().encoderMetadata([], account: account, serverUrl: serverUrl)
+        let resultEncoder = NCEndToEndMetadata().encoderMetadata([], account: account, serverUrl: serverUrl, userId: userId)
         if resultEncoder.metadata == nil {
             return errorEncodeMetadata
         }

+ 2 - 2
iOSClient/Networking/E2EE/NCNetworkingE2EEDelete.swift

@@ -57,9 +57,9 @@ class NCNetworkingE2EEDelete: NSObject {
 
             // Rebuild metadata
             if let tableE2eEncryption = NCManageDatabase.shared.getE2eEncryptions(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", metadata.account, metadata.serverUrl)) {
-                resultEncoder = NCEndToEndMetadata().encoderMetadata(tableE2eEncryption, account: metadata.account, serverUrl: metadata.serverUrl)
+                resultEncoder = NCEndToEndMetadata().encoderMetadata(tableE2eEncryption, account: metadata.account, serverUrl: metadata.serverUrl, userId: metadata.userId)
             } else {
-                resultEncoder = NCEndToEndMetadata().encoderMetadata([], account: metadata.account, serverUrl: metadata.serverUrl)
+                resultEncoder = NCEndToEndMetadata().encoderMetadata([], account: metadata.account, serverUrl: metadata.serverUrl, userId: metadata.userId)
             }
 
             if resultEncoder.metadata == nil {

+ 1 - 1
iOSClient/Networking/E2EE/NCNetworkingE2EERename.swift

@@ -58,7 +58,7 @@ class NCNetworkingE2EERename: NSObject {
                 return errorEncodeMetadata
             }
 
-            let resultEncoder = NCEndToEndMetadata().encoderMetadata(tableE2eEncryption, account: metadata.account, serverUrl: metadata.serverUrl)
+            let resultEncoder = NCEndToEndMetadata().encoderMetadata(tableE2eEncryption, account: metadata.account, serverUrl: metadata.serverUrl, userId: metadata.userId)
             if resultEncoder.metadata == nil {
                 return errorEncodeMetadata
             }

+ 1 - 1
iOSClient/Networking/E2EE/NCNetworkingE2EEUpload.swift

@@ -169,7 +169,7 @@ class NCNetworkingE2EEUpload: NSObject {
             return errorEncodeMetadata
         }
 
-        let resultEncoder = NCEndToEndMetadata().encoderMetadata(tableE2eEncryption, account: metadata.account, serverUrl: metadata.serverUrl)
+        let resultEncoder = NCEndToEndMetadata().encoderMetadata(tableE2eEncryption, account: metadata.account, serverUrl: metadata.serverUrl, userId: metadata.userId)
         if resultEncoder.metadata == nil {
             return errorEncodeMetadata
         }