Marino Faggiana 7 жил өмнө
parent
commit
442be281f6

+ 11 - 8
iOSClient/Main/CCMain.m

@@ -1186,14 +1186,17 @@
     // Get End-To-End PrivateKey (if enabled)
     if (capabilities.isEndToEndEncryptionEnabled) {
         
-        metadataNet.action = actionGetEndToEndPublicKeys;
-        [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
+        if (![CCUtility isEndToEndEnabled:app.activeAccount]) {
+            
+            metadataNet.action = actionGetEndToEndPublicKeys;
+            [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
         
-        metadataNet.action = actionGetEndToEndPrivateKey;
-        [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
+            metadataNet.action = actionGetEndToEndPrivateKey;
+            [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
         
-        metadataNet.action = actionGetEndToEndServerPublicKey;
-        [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
+            metadataNet.action = actionGetEndToEndServerPublicKey;
+            [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
+        }
     }
 }
 
@@ -1298,7 +1301,7 @@
     [[NCEndToEndEncryption sharedManager] removeCSRToDisk:app.directoryUser];
     
     // Store signed key locally keychain
-    [CCUtility setEndToEndPublicKey:app.activeUser publicKey:metadataNet.options];
+    [CCUtility setEndToEndPublicKey:app.activeAccount publicKey:metadataNet.options];
     
     // Activity
     [[NCManageDatabase sharedInstance] addActivityClient:@"" fileID:@"" action:k_activityDebugActionEndToEndEncryption selector:metadataNet.selector note:@"EndToEndPublicKey sign on Server and stored locally" type:k_activityTypeSuccess verbose:k_activityVerboseHigh activeUrl:app.activeUrl];
@@ -1397,7 +1400,7 @@
     [[NCEndToEndEncryption sharedManager] removePrivateKeyToDisk:app.directoryUser];
     
     // Store key locally keychain
-    [CCUtility setEndToEndPrivateKey:app.activeUser privateKey:metadataNet.options];
+    [CCUtility setEndToEndPrivateKey:app.activeAccount privateKey:metadataNet.options];
     
     // Activity
     [[NCManageDatabase sharedInstance] addActivityClient:@"" fileID:@"" action:k_activityDebugActionEndToEndEncryption selector:metadataNet.selector note:@"EndToEndPrivateKey stored on Server and stored locally" type:k_activityTypeSuccess verbose:k_activityVerboseHigh activeUrl:app.activeUrl];

+ 9 - 6
iOSClient/Utility/CCUtility.h

@@ -91,9 +91,10 @@
 
 + (void)setShowHiddenFiles:(BOOL)show;
 
-+ (void)setEndToEndPublicKey:(NSString *)user publicKey:(NSString *)publicKey;
-+ (void)setEndToEndPrivateKey:(NSString *)user privateKey:(NSString *)privateKey;
-+ (void)setEndToEndMnemonic:(NSString *)user mnemonic:(NSString *)mnemonic;
++ (void)setEndToEndPublicKey:(NSString *)account publicKey:(NSString *)publicKey;
++ (void)setEndToEndPrivateKey:(NSString *)account privateKey:(NSString *)privateKey;
++ (void)setEndToEndMnemonic:(NSString *)account mnemonic:(NSString *)mnemonic;
++ (void)setEndToEndServerPublicKey:(NSString *)account publicKey:(NSString *)publicKey;
 
 // GET
 
@@ -139,9 +140,11 @@
 
 + (BOOL)getShowHiddenFiles;
 
-+ (NSString *)getEndToEndPublicKey:(NSString *)user;
-+ (NSString *)getEndToEndPrivateKey:(NSString *)user;
-+ (NSString *)getEndToEndMnemonic:(NSString *)user;
++ (NSString *)getEndToEndPublicKey:(NSString *)account;
++ (NSString *)getEndToEndPrivateKey:(NSString *)account;
++ (NSString *)getEndToEndMnemonic:(NSString *)account;
++ (NSString *)getEndToEndServerPublicKey:(NSString *)account;
++ (BOOL)isEndToEndEnabled:(NSString *)account;
 
 // ===== Varius =====
 

+ 32 - 12
iOSClient/Utility/CCUtility.m

@@ -221,24 +221,30 @@
     [UICKeyChainStore setString:sShow forKey:@"showHiddenFiles" service:k_serviceShareKeyChain];
 }
 
-+ (void)setEndToEndPublicKey:(NSString *)user publicKey:(NSString *)publicKey
++ (void)setEndToEndPublicKey:(NSString *)account publicKey:(NSString *)publicKey
 {
-    NSString *key = [@"EndToEndPublicKey_" stringByAppendingString:user];
+    NSString *key = [@"EndToEndPublicKey_" stringByAppendingString:account];
     [UICKeyChainStore setString:publicKey forKey:key service:k_serviceShareKeyChain];
 }
 
-+ (void)setEndToEndPrivateKey:(NSString *)user privateKey:(NSString *)privateKey
++ (void)setEndToEndPrivateKey:(NSString *)account privateKey:(NSString *)privateKey
 {
-    NSString *key = [@"EndToEndPrivateKey_" stringByAppendingString:user];
+    NSString *key = [@"EndToEndPrivateKey_" stringByAppendingString:account];
     [UICKeyChainStore setString:privateKey forKey:key service:k_serviceShareKeyChain];
 }
 
-+ (void)setEndToEndMnemonic:(NSString *)user mnemonic:(NSString *)mnemonic
++ (void)setEndToEndMnemonic:(NSString *)account mnemonic:(NSString *)mnemonic
 {
-    NSString *key = [@"EndToEndMnemonic_" stringByAppendingString:user];
+    NSString *key = [@"EndToEndMnemonic_" stringByAppendingString:account];
     [UICKeyChainStore setString:mnemonic forKey:key service:k_serviceShareKeyChain];
 }
 
++ (void)setEndToEndServerPublicKey:(NSString *)account publicKey:(NSString *)publicKey
+{
+    NSString *key = [@"EndToEndServerPublicKey_" stringByAppendingString:account];
+    [UICKeyChainStore setString:publicKey forKey:key service:k_serviceShareKeyChain];
+}
+
 #pragma ------------------------------ GET
 
 + (NSString *)getKeyChainPasscodeForUUID:(NSString *)uuid
@@ -433,24 +439,38 @@
     return [[UICKeyChainStore stringForKey:@"showHiddenFiles" service:k_serviceShareKeyChain] boolValue];
 }
 
-+ (NSString *)getEndToEndPublicKey:(NSString *)user
++ (NSString *)getEndToEndPublicKey:(NSString *)account
+{
+    NSString *key = [@"EndToEndPublicKey_" stringByAppendingString:account];
+    return [UICKeyChainStore stringForKey:key service:k_serviceShareKeyChain];
+}
+
++ (NSString *)getEndToEndPrivateKey:(NSString *)account
 {
-    NSString *key = [@"EndToEndPublicKey_" stringByAppendingString:user];
+    NSString *key = [@"EndToEndPrivateKey_" stringByAppendingString:account];
     return [UICKeyChainStore stringForKey:key service:k_serviceShareKeyChain];
 }
 
-+ (NSString *)getEndToEndPrivateKey:(NSString *)user
++ (NSString *)getEndToEndMnemonic:(NSString *)account
 {
-    NSString *key = [@"EndToEndPrivateKey_" stringByAppendingString:user];
+    NSString *key = [@"EndToEndMnemonic_" stringByAppendingString:account];
     return [UICKeyChainStore stringForKey:key service:k_serviceShareKeyChain];
 }
 
-+ (NSString *)getEndToEndMnemonic:(NSString *)user
++ (NSString *)getEndToEndServerPublicKey:(NSString *)account
 {
-    NSString *key = [@"EndToEndMnemonic_" stringByAppendingString:user];
+    NSString *key = [@"EndToEndServerPublicKey_" stringByAppendingString:account];
     return [UICKeyChainStore stringForKey:key service:k_serviceShareKeyChain];
 }
 
++ (BOOL)isEndToEndEnabled:(NSString *)account
+{
+    if ([self getEndToEndMnemonic:account].length > 0 && [self getEndToEndPrivateKey:account].length > 0)
+        return YES;
+    else
+        return NO;
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Varius =====
 #pragma --------------------------------------------------------------------------------------------