|
@@ -127,6 +127,16 @@ class NCNetworkingE2EEUpload: NSObject {
|
|
|
return NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: "_e2e_error_create_encrypted_")
|
|
|
}
|
|
|
|
|
|
+ // Get last metadata
|
|
|
+ let getE2EEMetadataResults = await NextcloudKit.shared.getE2EEMetadata(fileId: directory.fileId, e2eToken: e2eToken)
|
|
|
+ if getE2EEMetadataResults.error == .success, let e2eMetadata = getE2EEMetadataResults.e2eMetadata {
|
|
|
+ if !NCEndToEndMetadata.shared.decoderMetadata(e2eMetadata, privateKey: CCUtility.getEndToEndPrivateKey(metadata.account), serverUrl: metadata.serverUrl, account: metadata.account, urlBase: metadata.urlBase, userId: metadata.userId) {
|
|
|
+ return NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: NSLocalizedString("_e2e_error_encode_metadata_", comment: ""))
|
|
|
+ }
|
|
|
+ method = "PUT"
|
|
|
+ }
|
|
|
+
|
|
|
+ // Add new metadata
|
|
|
if let result = NCManageDatabase.shared.getE2eEncryption(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", metadata.account, metadata.serverUrl)) {
|
|
|
objectE2eEncryption.metadataKey = result.metadataKey
|
|
|
objectE2eEncryption.metadataKeyIndex = result.metadataKeyIndex
|
|
@@ -147,15 +157,6 @@ class NCNetworkingE2EEUpload: NSObject {
|
|
|
objectE2eEncryption.version = 1
|
|
|
NCManageDatabase.shared.addE2eEncryption(objectE2eEncryption)
|
|
|
|
|
|
- // Get last metadata
|
|
|
- let getE2EEMetadataResults = await NextcloudKit.shared.getE2EEMetadata(fileId: directory.fileId, e2eToken: e2eToken)
|
|
|
- if getE2EEMetadataResults.error == .success, let e2eMetadata = getE2EEMetadataResults.e2eMetadata {
|
|
|
- if !NCEndToEndMetadata.shared.decoderMetadata(e2eMetadata, privateKey: CCUtility.getEndToEndPrivateKey(metadata.account), serverUrl: metadata.serverUrl, account: metadata.account, urlBase: metadata.urlBase, userId: metadata.userId) {
|
|
|
- return NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: NSLocalizedString("_e2e_error_encode_metadata_", comment: ""))
|
|
|
- }
|
|
|
- method = "PUT"
|
|
|
- }
|
|
|
-
|
|
|
// Rebuild metadata
|
|
|
guard let tableE2eEncryption = NCManageDatabase.shared.getE2eEncryptions(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", metadata.account, metadata.serverUrl)), let e2eMetadataNew = NCEndToEndMetadata.shared.encoderMetadata(tableE2eEncryption, privateKey: CCUtility.getEndToEndPrivateKey(metadata.account), serverUrl: metadata.serverUrl) else {
|
|
|
return NKError(errorCode: NCGlobal.shared.errorInternalError, errorDescription: NSLocalizedString("_e2e_error_encode_metadata_", comment: ""))
|