Browse Source

getEndToEndPublicKey

Marino Faggiana 1 year ago
parent
commit
3ccc71dd8e

+ 4 - 4
iOSClient/Settings/NCEndToEndInitialize.swift

@@ -170,9 +170,9 @@ class NCEndToEndInitialize: NSObject {
                     // request server publicKey
                     NextcloudKit.shared.getE2EEPublicKey { account, publicKey, _, error in
 
-                        if error == .success && account == self.appDelegate.account {
+                        if error == .success, account == self.appDelegate.account, let publicKey {
 
-                            CCUtility.setEndToEndPublicKey(account, publicKey: publicKey)
+                            NCKeychain().setEndToEndPublicKey(account: account, publicKey: publicKey)
                             NCManageDatabase.shared.clearTablesE2EE(account: account)
 
                             self.delegate?.endToEndInitializeSuccess()
@@ -274,9 +274,9 @@ class NCEndToEndInitialize: NSObject {
                 // request server publicKey
                 NextcloudKit.shared.getE2EEPublicKey { account, publicKey, _, error in
 
-                    if error == .success && account == self.appDelegate.account {
+                    if error == .success, account == self.appDelegate.account, let publicKey {
 
-                        CCUtility.setEndToEndPublicKey(account, publicKey: publicKey)
+                        NCKeychain().setEndToEndPublicKey(account: account, publicKey: publicKey)
                         NCManageDatabase.shared.clearTablesE2EE(account: account)
 
                         if copyPassphrase {

+ 0 - 3
iOSClient/Utility/CCUtility.h

@@ -43,9 +43,6 @@
 
 // E2EE -------------------------------------------
 
-+ (NSString *)getEndToEndPublicKey:(NSString *)account;
-+ (void)setEndToEndPublicKey:(NSString *)account publicKey:(NSString *)publicKey;
-
 + (NSString *)getEndToEndPassphrase:(NSString *)account;
 + (void)setEndToEndPassphrase:(NSString *)account passphrase:(NSString *)passphrase;
 

+ 7 - 31
iOSClient/Utility/CCUtility.m

@@ -50,30 +50,6 @@
 
 #pragma ------------------------------ GET/SET
 
-+ (NSString *)getEndToEndPrivateKey:(NSString *)account
-{
-    NSString *key = [E2E_PrivateKey stringByAppendingString:account];
-    return [UICKeyChainStore stringForKey:key service:NCGlobal.shared.serviceShareKeyChain];
-}
-
-+ (void)setEndToEndPrivateKey:(NSString *)account privateKey:(NSString *)privateKey
-{
-    NSString *key = [E2E_PrivateKey stringByAppendingString:account];
-    [UICKeyChainStore setString:privateKey forKey:key service:NCGlobal.shared.serviceShareKeyChain];
-}
-
-+ (NSString *)getEndToEndPublicKey:(NSString *)account
-{
-    NSString *key = [E2E_PublicKey stringByAppendingString:account];
-    return [UICKeyChainStore stringForKey:key service:NCGlobal.shared.serviceShareKeyChain];
-}
-
-+ (void)setEndToEndPublicKey:(NSString *)account publicKey:(NSString *)publicKey
-{
-    NSString *key = [E2E_PublicKey stringByAppendingString:account];
-    [UICKeyChainStore setString:publicKey forKey:key service:NCGlobal.shared.serviceShareKeyChain];
-}
-
 + (NSString *)getEndToEndPassphrase:(NSString *)account
 {
     NSString *key = [E2E_Passphrase stringByAppendingString:account];
@@ -91,10 +67,10 @@
     NSString* versionE2EE = [[NCGlobal shared] capabilityE2EEApiVersion];
 
     // NSString *certificate = [self getEndToEndCertificate:account];
-    NSString *publicKey = [self getEndToEndPublicKey:account];
-    NSString *privateKey = [self getEndToEndPrivateKey:account];
-    NSString *passphrase = [self getEndToEndPassphrase:account];
-            
+    //NSString *publicKey = [self getEndToEndPublicKey:account];
+    //NSString *privateKey = [self getEndToEndPrivateKey:account];
+    // NSString *passphrase = [self getEndToEndPassphrase:account];
+
     //if (passphrase.length > 0 && privateKey.length > 0 && certificate.length > 0 && publicKey.length > 0 && [NCGlobal.shared.e2eeVersions containsObject:versionE2EE]) {
         return YES;
     //} else {
@@ -105,9 +81,9 @@
 + (void)clearAllKeysEndToEnd:(NSString *)account
 {
    // [self setEndToEndCertificate:account certificate:nil];
-    [self setEndToEndPrivateKey:account privateKey:nil];
-    [self setEndToEndPublicKey:account publicKey:nil];
-    [self setEndToEndPassphrase:account passphrase:nil];
+    //[self setEndToEndPrivateKey:account privateKey:nil];
+    //[self setEndToEndPublicKey:account publicKey:nil];
+    //[self setEndToEndPassphrase:account passphrase:nil];
 
     // OLD
     [UICKeyChainStore setString:nil forKey:[@"EndToEndPublicKey_" stringByAppendingString:account] service:NCGlobal.shared.serviceShareKeyChain];

+ 12 - 0
iOSClient/Utility/NCKeychain.swift

@@ -219,4 +219,16 @@ import KeychainAccess
         migrate(key: key)
         keychain[key] = privateKey
     }
+
+    func getEndToEndPublicKey(account: String) -> String? {
+        let key = E2E_PublicKey + account
+        migrate(key: key)
+        return try? keychain.get(key)
+    }
+
+    func setEndToEndPublicKey(account: String, publicKey: String) {
+        let key = E2E_PublicKey + account
+        migrate(key: key)
+        keychain[key] = publicKey
+    }
 }