|
@@ -11,6 +11,15 @@
|
|
|
#import "CCCertificate.h"
|
|
|
#import "NCBridgeSwift.h"
|
|
|
|
|
|
+/*********************************************************************************
|
|
|
+
|
|
|
+ Netwok call synchronous mode, use this only from :
|
|
|
+
|
|
|
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
+ });
|
|
|
+
|
|
|
+*********************************************************************************/
|
|
|
+
|
|
|
@implementation NCNetworkingSync
|
|
|
|
|
|
+ (NCNetworkingSync *)sharedManager {
|
|
@@ -228,67 +237,66 @@
|
|
|
[communication setCredentialsWithUser:user andUserID:userID andPassword:password];
|
|
|
[communication setUserAgent:[CCUtility getUserAgent]];
|
|
|
|
|
|
- [[NCManageDatabase sharedInstance] getDirectoryE2ETokenLockWithServerUrl:serverUrl completion:^(NSString * _Nullable tokenDatabase) {
|
|
|
+ tableE2eEncryptionLock *tableLock = [[NCManageDatabase sharedInstance] getE2ETokenLockWithServerUrl:serverUrl];
|
|
|
|
|
|
- // Read Folder
|
|
|
- [communication readFolder:serverUrl depth:@"1" withUserSessionToken:nil onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSArray *items, NSString *redirectedServer, NSString *tokenReadFolder) {
|
|
|
+ // Read Folder
|
|
|
+ [communication readFolder:serverUrl depth:@"1" withUserSessionToken:nil onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSArray *items, NSString *redirectedServer, NSString *tokenReadFolder) {
|
|
|
|
|
|
- if (items.count > 1) {
|
|
|
+ if (items.count > 1) {
|
|
|
|
|
|
- returnError = [NSError errorWithDomain:@"com.nextcloud.nextcloud" code:999 userInfo:[NSDictionary dictionaryWithObject:NSLocalizedString(@"_e2e_error_directory_not_empty_", nil) forKey:NSLocalizedDescriptionKey]];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- return;
|
|
|
- }
|
|
|
+ returnError = [NSError errorWithDomain:@"com.nextcloud.nextcloud" code:999 userInfo:[NSDictionary dictionaryWithObject:NSLocalizedString(@"_e2e_error_directory_not_empty_", nil) forKey:NSLocalizedDescriptionKey]];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- // LOCK
|
|
|
- [communication lockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:tokenDatabase onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *token, NSString *redirectedServer) {
|
|
|
+ // LOCK
|
|
|
+ [communication lockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:tableLock.token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *token, NSString *redirectedServer) {
|
|
|
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:token];
|
|
|
+ [[NCManageDatabase sharedInstance] setE2ETokenLockWithServerUrl:serverUrl fileID:fileID token:token];
|
|
|
|
|
|
- // REMOVE METADATA
|
|
|
- [communication deleteEndToEndMetadata:[url stringByAppendingString:@"/"] fileID:fileID onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
- NSLog(@"[LOG] Found metadata and delete");
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
- NSLog(@"[LOG] %@", [NSString stringWithFormat:@"Remove metadata error %d", (int)response.statusCode]);
|
|
|
- }];
|
|
|
+ // REMOVE METADATA
|
|
|
+ [communication deleteEndToEndMetadata:[url stringByAppendingString:@"/"] fileID:fileID onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
+ NSLog(@"[LOG] Found metadata and delete");
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ NSLog(@"[LOG] %@", [NSString stringWithFormat:@"Remove metadata error %d", (int)response.statusCode]);
|
|
|
+ }];
|
|
|
|
|
|
- // MARK
|
|
|
- [communication markEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
-
|
|
|
- // UNLOCK
|
|
|
- [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:@""];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }];
|
|
|
+ // MARK
|
|
|
+ [communication markEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
|
|
|
+ // UNLOCK
|
|
|
+ [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
+ [[NCManageDatabase sharedInstance] deteleE2ETokenLockWithServerUrl:serverUrl];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
} failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
+ }];
|
|
|
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_mark_folder_"];
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_mark_folder_"];
|
|
|
|
|
|
- // UNLOCK
|
|
|
- [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:@""];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }];
|
|
|
+ // UNLOCK
|
|
|
+ [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
+ [[NCManageDatabase sharedInstance] deteleE2ETokenLockWithServerUrl:serverUrl];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
}];
|
|
|
-
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
-
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_lock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
}];
|
|
|
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *token, NSString *redirectedServer) {
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_error_"];
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_lock_"];
|
|
|
dispatch_semaphore_signal(semaphore);
|
|
|
}];
|
|
|
+
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *token, NSString *redirectedServer) {
|
|
|
+
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_error_"];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
}];
|
|
|
|
|
|
while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER))
|
|
@@ -308,69 +316,68 @@
|
|
|
[communication setCredentialsWithUser:user andUserID:userID andPassword:password];
|
|
|
[communication setUserAgent:[CCUtility getUserAgent]];
|
|
|
|
|
|
- [[NCManageDatabase sharedInstance] getDirectoryE2ETokenLockWithServerUrl:serverUrl completion:^(NSString * _Nullable tokenDatabase) {
|
|
|
+ tableE2eEncryptionLock *tableLock = [[NCManageDatabase sharedInstance] getE2ETokenLockWithServerUrl:serverUrl];
|
|
|
|
|
|
- // Read Folder
|
|
|
- [communication readFolder:serverUrl depth:@"1" withUserSessionToken:nil onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSArray *items, NSString *redirectedServer, NSString *tokenReadFolder) {
|
|
|
+ // Read Folder
|
|
|
+ [communication readFolder:serverUrl depth:@"1" withUserSessionToken:nil onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSArray *items, NSString *redirectedServer, NSString *tokenReadFolder) {
|
|
|
|
|
|
- if (items.count > 1) {
|
|
|
+ if (items.count > 1) {
|
|
|
|
|
|
- returnError = [NSError errorWithDomain:@"com.nextcloud.nextcloud" code:999 userInfo:[NSDictionary dictionaryWithObject:NSLocalizedString(@"_e2e_error_directory_not_empty_", nil) forKey:NSLocalizedDescriptionKey]];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- return;
|
|
|
- }
|
|
|
+ returnError = [NSError errorWithDomain:@"com.nextcloud.nextcloud" code:999 userInfo:[NSDictionary dictionaryWithObject:NSLocalizedString(@"_e2e_error_directory_not_empty_", nil) forKey:NSLocalizedDescriptionKey]];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- // LOCK
|
|
|
- [communication lockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:tokenDatabase onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *token, NSString *redirectedServer) {
|
|
|
+ // LOCK
|
|
|
+ [communication lockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:tableLock.token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *token, NSString *redirectedServer) {
|
|
|
+
|
|
|
+ [[NCManageDatabase sharedInstance] setE2ETokenLockWithServerUrl:serverUrl fileID:fileID token:token];
|
|
|
+
|
|
|
+ // DELETE METADATA
|
|
|
+ [communication deleteEndToEndMetadata:[url stringByAppendingString:@"/"] fileID:fileID onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
+ NSLog(@"[LOG] Found metadata and delete");
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ NSLog(@"[LOG] %@", [NSString stringWithFormat:@"Remove metadata error %d", (int)response.statusCode]);
|
|
|
+ }];
|
|
|
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:token];
|
|
|
+ // DELETE MARK
|
|
|
+ [communication deletemarkEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
|
|
|
- // DELETE METADATA
|
|
|
- [communication deleteEndToEndMetadata:[url stringByAppendingString:@"/"] fileID:fileID onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
- NSLog(@"[LOG] Found metadata and delete");
|
|
|
+ // UNLOCK
|
|
|
+ [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
+ [[NCManageDatabase sharedInstance] deteleE2ETokenLockWithServerUrl:serverUrl];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
} failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
- NSLog(@"[LOG] %@", [NSString stringWithFormat:@"Remove metadata error %d", (int)response.statusCode]);
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
}];
|
|
|
-
|
|
|
- // DELETE MARK
|
|
|
- [communication deletemarkEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
|
|
|
- // UNLOCK
|
|
|
- [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:@""];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }];
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_delete_mark_folder_"];
|
|
|
+
|
|
|
+ // UNLOCK
|
|
|
+ [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
+ [[NCManageDatabase sharedInstance] deteleE2ETokenLockWithServerUrl:serverUrl];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
} failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
-
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_delete_mark_folder_"];
|
|
|
-
|
|
|
- // UNLOCK
|
|
|
- [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:@""];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }];
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
}];
|
|
|
+ }];
|
|
|
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_lock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }];
|
|
|
-
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *token, NSString *redirectedServer) {
|
|
|
-
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_error_"];
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_lock_"];
|
|
|
dispatch_semaphore_signal(semaphore);
|
|
|
}];
|
|
|
- }];
|
|
|
+
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *token, NSString *redirectedServer) {
|
|
|
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_error_"];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
+ }];
|
|
|
+
|
|
|
while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER))
|
|
|
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
|
|
|
|
|
@@ -418,54 +425,47 @@
|
|
|
[communication setCredentialsWithUser:user andUserID:userID andPassword:password];
|
|
|
[communication setUserAgent:[CCUtility getUserAgent]];
|
|
|
|
|
|
- [[NCManageDatabase sharedInstance] getDirectoryE2ETokenLockWithServerUrl:serverUrl completion:^(NSString * _Nullable tokenDatabase) {
|
|
|
-
|
|
|
- // LOCK
|
|
|
- [communication lockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:tokenDatabase onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *token, NSString *redirectedServer) {
|
|
|
+ tableE2eEncryptionLock *tableLock = [[NCManageDatabase sharedInstance] getE2ETokenLockWithServerUrl:serverUrl];
|
|
|
+
|
|
|
+ // LOCK
|
|
|
+ [communication lockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:tableLock.token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *token, NSString *redirectedServer) {
|
|
|
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:token];
|
|
|
+ [[NCManageDatabase sharedInstance] setE2ETokenLockWithServerUrl:serverUrl fileID:fileID token:token];
|
|
|
|
|
|
- // DELETE METADATA
|
|
|
- [communication deleteEndToEndMetadata:[url stringByAppendingString:@"/"] fileID:fileID onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
+ // DELETE METADATA
|
|
|
+ [communication deleteEndToEndMetadata:[url stringByAppendingString:@"/"] fileID:fileID onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
|
|
|
- // UNLOCK
|
|
|
- if (unlock) {
|
|
|
- [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
- // Write DB token ""
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:@""];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }];
|
|
|
- } else {
|
|
|
+ // UNLOCK
|
|
|
+ if (unlock) {
|
|
|
+ [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
+ [[NCManageDatabase sharedInstance] deteleE2ETokenLockWithServerUrl:serverUrl];
|
|
|
dispatch_semaphore_signal(semaphore);
|
|
|
- }
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
+ }];
|
|
|
+ } else {
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
+ }
|
|
|
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_delete_metadata_"];
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_delete_metadata_"];
|
|
|
|
|
|
- // UNLOCK
|
|
|
- if (unlock) {
|
|
|
- [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
- // Write DB token ""
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:@""];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }];
|
|
|
- } else {
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }
|
|
|
+ // UNLOCK
|
|
|
+ [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
+ [[NCManageDatabase sharedInstance] deteleE2ETokenLockWithServerUrl:serverUrl];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
}];
|
|
|
-
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
-
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_lock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
}];
|
|
|
+
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_lock_"];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
}];
|
|
|
|
|
|
while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER))
|
|
@@ -485,54 +485,47 @@
|
|
|
[communication setCredentialsWithUser:user andUserID:userID andPassword:password];
|
|
|
[communication setUserAgent:[CCUtility getUserAgent]];
|
|
|
|
|
|
- [[NCManageDatabase sharedInstance] getDirectoryE2ETokenLockWithServerUrl:serverUrl completion:^(NSString * _Nullable tokenDatabase) {
|
|
|
+ tableE2eEncryptionLock *tableLock = [[NCManageDatabase sharedInstance] getE2ETokenLockWithServerUrl:serverUrl];
|
|
|
|
|
|
- // LOCK
|
|
|
- [communication lockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:tokenDatabase onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *token, NSString *redirectedServer) {
|
|
|
+ // LOCK
|
|
|
+ [communication lockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:tableLock.token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *token, NSString *redirectedServer) {
|
|
|
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:token];
|
|
|
+ [[NCManageDatabase sharedInstance] setE2ETokenLockWithServerUrl:serverUrl fileID:fileID token:token];
|
|
|
|
|
|
- // STORE METADATA
|
|
|
- [communication storeEndToEndMetadata:[url stringByAppendingString:@"/"] fileID:fileID encryptedMetadata:metadata onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *encryptedMetadata, NSString *redirectedServer) {
|
|
|
+ // STORE METADATA
|
|
|
+ [communication storeEndToEndMetadata:[url stringByAppendingString:@"/"] fileID:fileID encryptedMetadata:metadata onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *encryptedMetadata, NSString *redirectedServer) {
|
|
|
|
|
|
- // UNLOCK
|
|
|
- if (unlock) {
|
|
|
- [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
- // Write DB token ""
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:@""];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }];
|
|
|
- } else {
|
|
|
+ // UNLOCK
|
|
|
+ if (unlock) {
|
|
|
+ [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
+ [[NCManageDatabase sharedInstance] deteleE2ETokenLockWithServerUrl:serverUrl];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
dispatch_semaphore_signal(semaphore);
|
|
|
- }
|
|
|
+ }];
|
|
|
+ } else {
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
+ }
|
|
|
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_store_metadata_"];
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_store_metadata_"];
|
|
|
|
|
|
- // UNLOCK
|
|
|
- if (unlock) {
|
|
|
- [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
- // Write DB token ""
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:@""];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }];
|
|
|
- } else {
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }
|
|
|
+ // UNLOCK
|
|
|
+ [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
+ [[NCManageDatabase sharedInstance] deteleE2ETokenLockWithServerUrl:serverUrl];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
}];
|
|
|
+ }];
|
|
|
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_lock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }];
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_lock_"];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
}];
|
|
|
|
|
|
while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER))
|
|
@@ -552,54 +545,47 @@
|
|
|
[communication setCredentialsWithUser:user andUserID:userID andPassword:password];
|
|
|
[communication setUserAgent:[CCUtility getUserAgent]];
|
|
|
|
|
|
- [[NCManageDatabase sharedInstance] getDirectoryE2ETokenLockWithServerUrl:serverUrl completion:^(NSString * _Nullable tokenDatabase) {
|
|
|
+ tableE2eEncryptionLock *tableLock = [[NCManageDatabase sharedInstance] getE2ETokenLockWithServerUrl:serverUrl];
|
|
|
|
|
|
- // LOCK
|
|
|
- [communication lockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:tokenDatabase onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *token, NSString *redirectedServer) {
|
|
|
+ // LOCK
|
|
|
+ [communication lockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:tableLock.token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *token, NSString *redirectedServer) {
|
|
|
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:token];
|
|
|
+ [[NCManageDatabase sharedInstance] setE2ETokenLockWithServerUrl:serverUrl fileID:fileID token:token];
|
|
|
|
|
|
- // UPDATA METADATA
|
|
|
- [communication updateEndToEndMetadata:[url stringByAppendingString:@"/"] fileID:fileID encryptedMetadata:metadata token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *encryptedMetadata, NSString *redirectedServer) {
|
|
|
+ // UPDATA METADATA
|
|
|
+ [communication updateEndToEndMetadata:[url stringByAppendingString:@"/"] fileID:fileID encryptedMetadata:metadata token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *encryptedMetadata, NSString *redirectedServer) {
|
|
|
|
|
|
- // UNLOCK
|
|
|
- if (unlock) {
|
|
|
- [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
- // Write DB token ""
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:@""];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }];
|
|
|
- } else {
|
|
|
+ // UNLOCK
|
|
|
+ if (unlock) {
|
|
|
+ [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
+ [[NCManageDatabase sharedInstance] deteleE2ETokenLockWithServerUrl:serverUrl];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
dispatch_semaphore_signal(semaphore);
|
|
|
- }
|
|
|
+ }];
|
|
|
+ } else {
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
+ }
|
|
|
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
-
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_update_metadata_"];
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_update_metadata_"];
|
|
|
|
|
|
- // UNLOCK
|
|
|
- if (unlock) {
|
|
|
- [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
- // Write DB token ""
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:@""];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }];
|
|
|
- } else {
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }
|
|
|
+ // UNLOCK
|
|
|
+ [communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
+ [[NCManageDatabase sharedInstance] deteleE2ETokenLockWithServerUrl:serverUrl];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_unlock_"];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
}];
|
|
|
+ }];
|
|
|
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_lock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }];
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_lock_"];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
}];
|
|
|
|
|
|
while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER))
|
|
@@ -619,20 +605,18 @@
|
|
|
[communication setCredentialsWithUser:user andUserID:userID andPassword:password];
|
|
|
[communication setUserAgent:[CCUtility getUserAgent]];
|
|
|
|
|
|
- [[NCManageDatabase sharedInstance] getDirectoryE2ETokenLockWithServerUrl:serverUrl completion:^(NSString * _Nullable tokenDatabase) {
|
|
|
-
|
|
|
- // LOCK
|
|
|
- [communication lockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:tokenDatabase onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *token, NSString *redirectedServer) {
|
|
|
+ tableE2eEncryptionLock *tableLock = [[NCManageDatabase sharedInstance] getE2ETokenLockWithServerUrl:serverUrl];
|
|
|
+
|
|
|
+ // LOCK
|
|
|
+ [communication lockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:tableLock.token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *token, NSString *redirectedServer) {
|
|
|
|
|
|
- // Write DB token
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:token];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
+ [[NCManageDatabase sharedInstance] setE2ETokenLockWithServerUrl:serverUrl fileID:fileID token:token];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
+ } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
|
|
|
- returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_lock_"];
|
|
|
- dispatch_semaphore_signal(semaphore);
|
|
|
- }];
|
|
|
+ returnError = [self getError:response error:error descriptionDefault:@"_e2e_error_lock_"];
|
|
|
+ dispatch_semaphore_signal(semaphore);
|
|
|
}];
|
|
|
|
|
|
while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER))
|
|
@@ -655,8 +639,7 @@
|
|
|
// UNLOCK
|
|
|
[communication unlockEndToEndFolderEncrypted:[url stringByAppendingString:@"/"] fileID:fileID token:token onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
|
|
|
- // Write DB token ""
|
|
|
- [[NCManageDatabase sharedInstance] setDirectoryE2ETokenLockWithServerUrl:serverUrl token:@""];
|
|
|
+ [[NCManageDatabase sharedInstance] deteleE2ETokenLockWithServerUrl:serverUrl];
|
|
|
dispatch_semaphore_signal(semaphore);
|
|
|
|
|
|
} failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|