Marino Faggiana 6 lat temu
rodzic
commit
e3df0548d2

+ 0 - 1
iOSClient/AppDelegate.h

@@ -55,7 +55,6 @@
 @property (nonatomic, strong) NSString *activeUser;
 @property (nonatomic, strong) NSString *activeUserID;
 @property (nonatomic, strong) NSString *activePassword;
-@property (nonatomic, strong) NSString *directoryUser;
 @property (nonatomic, strong) NSString *activeEmail;
 
 // next version ... ? ...

+ 1 - 3
iOSClient/AppDelegate.m

@@ -394,8 +394,6 @@
     self.activeUserID = activeUserID;
     self.activePassword = activePassword;
     
-    self.directoryUser = [CCUtility getDirectoryActiveUser:activeUser activeUrl:activeUrl];
-    
     // Setting Account to CCNetworking
     [[CCNetworking sharedNetworking] settingAccount];
 }
@@ -1533,7 +1531,7 @@
     
     if (self.activeAccount) {
         
-        [[NSFileManager defaultManager]moveItemAtPath:[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Inbox"] stringByAppendingPathComponent:self.fileNameUpload] toPath:[NSString stringWithFormat:@"%@/%@", self.directoryUser, self.fileNameUpload] error:nil];
+//        [[NSFileManager defaultManager]moveItemAtPath:[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Inbox"] stringByAppendingPathComponent:self.fileNameUpload] toPath:[NSString stringWithFormat:@"%@/%@", self.directoryUser, self.fileNameUpload] error:nil];
         
         UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
         UINavigationController *splitNavigationController = [splitViewController.viewControllers firstObject];

BIN
iOSClient/Brand/Custom.xcassets/AppIcon.appiconset/Icon-App-20x20@2x-1.png


BIN
iOSClient/Brand/Custom.xcassets/AppIcon.appiconset/Icon-App-29x29@1x-1.png


BIN
iOSClient/Brand/Custom.xcassets/AppIcon.appiconset/Icon-App-29x29@2x-1.png


BIN
iOSClient/Brand/Custom.xcassets/AppIcon.appiconset/Icon-App-40x40@2x-1.png


+ 1 - 7
iOSClient/Main/CCMain.m

@@ -186,9 +186,6 @@
     // if this is not Main (the Main uses inizializeMain)
     if (_isRoot == NO && appDelegate.activeAccount.length > 0) {
         
-        // Settings this folder & delegate & Loading datasource
-        appDelegate.directoryUser = [CCUtility getDirectoryActiveUser:appDelegate.activeUser activeUrl:appDelegate.activeUrl];
-        
         // Read (File) Folder
         [self readFileReloadFolder];
     }
@@ -206,9 +203,7 @@
     if (appDelegate.activeAccount.length == 0)
         return;
     
-    // Settings this folder & delegate & Loading datasource
-    appDelegate.directoryUser = [CCUtility getDirectoryActiveUser:appDelegate.activeUser activeUrl:appDelegate.activeUrl];
-    
+    // delegate for Networking
     [CCNetworking sharedNetworking].delegate = self;
     
     // Color
@@ -362,7 +357,6 @@
         appDelegate.homeMain = self;
         _isRoot = YES;
         _serverUrl = [CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl];
-        appDelegate.directoryUser = [CCUtility getDirectoryActiveUser:appDelegate.activeUser activeUrl:appDelegate.activeUrl];
         [appDelegate.listMainVC setObject:self forKey:_serverUrl];
         
         // go Home

+ 2 - 2
iOSClient/Networking/CCNetworking.m

@@ -670,7 +670,7 @@
         // E2EE Decrypted
         tableE2eEncryption *object = [[NCManageDatabase sharedInstance] getE2eEncryptionWithPredicate:[NSPredicate predicateWithFormat:@"fileNameIdentifier == %@ AND serverUrl == %@", fileName, serverUrl]];
         if (object) {
-            BOOL result = [[NCEndToEndEncryption sharedManager] decryptFileID:fileID directoryUser:_directoryUser key:object.key initializationVector:object.initializationVector authenticationTag:object.authenticationTag];
+            BOOL result = [[NCEndToEndEncryption sharedManager] decryptFileID:fileID directory:_directoryUser key:object.key initializationVector:object.initializationVector authenticationTag:object.authenticationTag];
             if (!result) {
                 
                 [[NCManageDatabase sharedInstance] addActivityClient:metadata.fileNameView fileID:fileID action:k_activityDebugActionUpload selector:@"" note:[NSString stringWithFormat:@"Serious error internal download : decrypt error %@", fileName] type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
@@ -1182,7 +1182,7 @@
         *fileNameIdentifier = [CCUtility generateRandomIdentifier];
     
     // Write to DB
-    if ([[NCEndToEndEncryption sharedManager] encryptFileName:fileName fileNameIdentifier:*fileNameIdentifier directoryUser: _directoryUser key:&key initializationVector:&initializationVector authenticationTag:&authenticationTag]) {
+    if ([[NCEndToEndEncryption sharedManager] encryptFileName:fileName fileNameIdentifier:*fileNameIdentifier directory: _directoryUser key:&key initializationVector:&initializationVector authenticationTag:&authenticationTag]) {
         
         tableE2eEncryption *object = [[NCManageDatabase sharedInstance] getE2eEncryptionWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", _activeAccount, serverUrl]];
         if (object) {

+ 4 - 4
iOSClient/Security/NCEndToEndEncryption.h

@@ -29,8 +29,8 @@
 
 + (instancetype)sharedManager;
 
-- (NSString *)createCSR:(NSString *)userID directoryUser:(NSString *)directoryUser;
-- (NSString *)encryptPrivateKey:(NSString *)userID directoryUser: (NSString *)directoryUser passphrase:(NSString *)passphrase privateKey:(NSString **)privateKey;
+- (NSString *)createCSR:(NSString *)userID directory:(NSString *)directory;
+- (NSString *)encryptPrivateKey:(NSString *)userID directory: (NSString *)directory passphrase:(NSString *)passphrase privateKey:(NSString **)privateKey;
 - (NSString *)decryptPrivateKey:(NSString *)privateKeyCipher passphrase:(NSString *)passphrase publicKey:(NSString *)publicKey;
 
 - (NSData *)encryptAsymmetricString:(NSString *)plain publicKey:(NSString *)publicKey privateKey:(NSString *)privateKey;
@@ -39,8 +39,8 @@
 - (NSString *)encryptEncryptedJson:(NSString *)encrypted key:(NSString *)key;
 - (NSString *)decryptEncryptedJson:(NSString *)encrypted key:(NSString *)key;
 
-- (BOOL)encryptFileName:(NSString *)fileName fileNameIdentifier:(NSString *)fileNameIdentifier directoryUser:(NSString *)directoryUser key:(NSString **)key initializationVector:(NSString **)initializationVector authenticationTag:(NSString **)authenticationTag;
-- (BOOL)decryptFileID:(NSString *)fileID directoryUser:(NSString *)directoryUser key:(NSString *)key initializationVector:(NSString *)initializationVector authenticationTag:(NSString *)authenticationTag;
+- (BOOL)encryptFileName:(NSString *)fileName fileNameIdentifier:(NSString *)fileNameIdentifier directory:(NSString *)directory key:(NSString **)key initializationVector:(NSString **)initializationVector authenticationTag:(NSString **)authenticationTag;
+- (BOOL)decryptFileID:(NSString *)fileID directory:(NSString *)directory key:(NSString *)key initializationVector:(NSString *)initializationVector authenticationTag:(NSString *)authenticationTag;
 
 - (NSData *)generateKey:(int)length;
 - (NSString *)createSHA512:(NSString *)string;

+ 17 - 17
iOSClient/Security/NCEndToEndEncryption.m

@@ -86,7 +86,7 @@
 #pragma mark - Generate Certificate X509 - CSR - Private Key
 #
 
-- (BOOL)generateCertificateX509WithUserID:(NSString *)userID directoryUser:(NSString *)directoryUser
+- (BOOL)generateCertificateX509WithUserID:(NSString *)userID directory:(NSString *)directory
 {
     OPENSSL_init_ssl(0, NULL);
     OPENSSL_init_crypto(0, NULL);
@@ -209,7 +209,7 @@
     
 #ifdef DEBUG
     // Save to disk [DEBUG MODE]
-    [self saveToDiskPEMWithCert:x509 key:pkey directoryUser:directoryUser];
+    [self saveToDiskPEMWithCert:x509 key:pkey directory:directory];
 #endif
     
     return YES;
@@ -245,12 +245,12 @@ cleanup:
     return pkey;
 }
 
-- (BOOL)saveToDiskPEMWithCert:(X509 *)x509 key:(EVP_PKEY *)pkey directoryUser:(NSString *)directoryUser
+- (BOOL)saveToDiskPEMWithCert:(X509 *)x509 key:(EVP_PKEY *)pkey directory:(NSString *)directory
 {
     FILE *f;
     
     // Certificate
-    NSString *certificatePath = [NSString stringWithFormat:@"%@/%@", directoryUser, fileNameCertificate];
+    NSString *certificatePath = [NSString stringWithFormat:@"%@/%@", directory, fileNameCertificate];
     f = fopen([certificatePath fileSystemRepresentation], "wb");
     if (PEM_write_X509(f, x509) < 0) {
         // Error writing to disk.
@@ -261,7 +261,7 @@ cleanup:
     fclose(f);
     
     // PublicKey
-    NSString *publicKeyPath = [NSString stringWithFormat:@"%@/%@", directoryUser, fileNamePubliceKey];
+    NSString *publicKeyPath = [NSString stringWithFormat:@"%@/%@", directory, fileNamePubliceKey];
     f = fopen([publicKeyPath fileSystemRepresentation], "wb");
     if (PEM_write_PUBKEY(f, pkey) < 0) {
         // Error
@@ -276,7 +276,7 @@ cleanup:
     //if (PEM_write_PrivateKey(f, pkey, EVP_des_ede3_cbc(), (unsigned char *)[password UTF8String], (int)password.length, NULL, NULL) < 0) {
     
     // PrivateKey
-    NSString *privatekeyPath = [NSString stringWithFormat:@"%@/%@", directoryUser, fileNamePrivateKey];
+    NSString *privatekeyPath = [NSString stringWithFormat:@"%@/%@", directory, fileNamePrivateKey];
     f = fopen([privatekeyPath fileSystemRepresentation], "wb");
     if (PEM_write_PrivateKey(f, pkey, NULL, NULL, 0, NULL, NULL) < 0) {
         // Error
@@ -287,7 +287,7 @@ cleanup:
     fclose(f);
     
     // CSR Request sha256
-    NSString *csrPath = [NSString stringWithFormat:@"%@/%@", directoryUser, fileNameCSR];
+    NSString *csrPath = [NSString stringWithFormat:@"%@/%@", directory, fileNameCSR];
     f = fopen([csrPath fileSystemRepresentation], "wb");
     X509_REQ *certreq = X509_to_X509_REQ(x509, pkey, EVP_sha256());
     if (PEM_write_X509_REQ(f, certreq) < 0) {
@@ -324,11 +324,11 @@ cleanup:
 #pragma mark - Create CSR & Encrypt/Decrypt Private Key
 #
 
-- (NSString *)createCSR:(NSString *)userID directoryUser:(NSString *)directoryUser
+- (NSString *)createCSR:(NSString *)userID directory:(NSString *)directory
 {
     // Create Certificate, if do not exists
     if (!_csrData) {
-        if (![self generateCertificateX509WithUserID:userID directoryUser:directoryUser])
+        if (![self generateCertificateX509WithUserID:userID directory:directory])
             return nil;
     }
     
@@ -337,12 +337,12 @@ cleanup:
     return csr;
 }
 
-- (NSString *)encryptPrivateKey:(NSString *)userID directoryUser: (NSString *)directoryUser passphrase:(NSString *)passphrase privateKey:(NSString **)privateKey
+- (NSString *)encryptPrivateKey:(NSString *)userID directory:(NSString *)directory passphrase:(NSString *)passphrase privateKey:(NSString **)privateKey
 {
     NSMutableData *privateKeyCipherData = [NSMutableData new];
 
     if (!_privateKeyData) {
-        if (![self generateCertificateX509WithUserID:userID directoryUser:directoryUser])
+        if (![self generateCertificateX509WithUserID:userID directory:directory])
             return nil;
     }
     
@@ -504,12 +504,12 @@ cleanup:
 #pragma mark - Encrypt / Decrypt file
 #
 
-- (BOOL)encryptFileName:(NSString *)fileName fileNameIdentifier:(NSString *)fileNameIdentifier directoryUser:(NSString *)directoryUser key:(NSString **)key initializationVector:(NSString **)initializationVector authenticationTag:(NSString **)authenticationTag
+- (BOOL)encryptFileName:(NSString *)fileName fileNameIdentifier:(NSString *)fileNameIdentifier directory:(NSString *)directory key:(NSString **)key initializationVector:(NSString **)initializationVector authenticationTag:(NSString **)authenticationTag
 {
     NSMutableData *cipherData;
     NSData *tagData;
    
-    NSData *plainData = [[NSFileManager defaultManager] contentsAtPath:[NSString stringWithFormat:@"%@/%@", directoryUser, fileName]];
+    NSData *plainData = [[NSFileManager defaultManager] contentsAtPath:[NSString stringWithFormat:@"%@/%@", directory, fileName]];
     if (plainData == nil)
         return false;
     
@@ -520,7 +520,7 @@ cleanup:
     
     if (cipherData != nil && result) {
         
-        [cipherData writeToFile:[NSString stringWithFormat:@"%@/%@", directoryUser, fileNameIdentifier] atomically:YES];
+        [cipherData writeToFile:[NSString stringWithFormat:@"%@/%@", directory, fileNameIdentifier] atomically:YES];
         
         *key = [keyData base64EncodedStringWithOptions:0];
         *initializationVector = [ivData base64EncodedStringWithOptions:0];
@@ -532,11 +532,11 @@ cleanup:
     return false;
 }
 
-- (BOOL)decryptFileID:(NSString *)fileID directoryUser:(NSString *)directoryUser key:(NSString *)key initializationVector:(NSString *)initializationVector authenticationTag:(NSString *)authenticationTag
+- (BOOL)decryptFileID:(NSString *)fileID directory:(NSString *)directory key:(NSString *)key initializationVector:(NSString *)initializationVector authenticationTag:(NSString *)authenticationTag
 {
     NSMutableData *plainData;
 
-    NSData *cipherData = [[NSFileManager defaultManager] contentsAtPath:[NSString stringWithFormat:@"%@/%@", directoryUser, fileID]];
+    NSData *cipherData = [[NSFileManager defaultManager] contentsAtPath:[NSString stringWithFormat:@"%@/%@", directory, fileID]];
     if (cipherData == nil)
         return false;
     
@@ -546,7 +546,7 @@ cleanup:
 
     BOOL result = [self decryptData:cipherData plainData:&plainData keyData:keyData keyLen:AES_KEY_128_LENGTH ivData:ivData tagData:tagData];
     if (plainData != nil && result) {
-        [plainData writeToFile:[NSString stringWithFormat:@"%@/%@", directoryUser, fileID] atomically:YES];
+        [plainData writeToFile:[NSString stringWithFormat:@"%@/%@", directory, fileID] atomically:YES];
         return true;
     }
     

+ 2 - 2
iOSClient/Settings/NCEndToEndInitialize.swift

@@ -88,7 +88,7 @@ class NCEndToEndInitialize : NSObject, OCNetworkingDelegate  {
             appDelegate.messageNotification("E2E get publicKey", description: "bad request: unpredictable internal error", visible: true, delay: TimeInterval(k_dismissAfterSecond), type: TWMessageBarMessageType.error, errorCode: errorCode)
             
         case 404:
-            guard let csr = NCEndToEndEncryption.sharedManager().createCSR(appDelegate.activeUserID, directoryUser: appDelegate.directoryUser) else {
+            guard let csr = NCEndToEndEncryption.sharedManager().createCSR(appDelegate.activeUserID, directory: appDelegate.directoryUser) else {
                 
                 appDelegate.messageNotification("E2E Csr", description: "Error to create Csr", visible: true, delay: TimeInterval(k_dismissAfterSecond), type: TWMessageBarMessageType.error, errorCode: errorCode)
                 
@@ -215,7 +215,7 @@ class NCEndToEndInitialize : NSObject, OCNetworkingDelegate  {
                 
                 var privateKey: NSString?
                 
-                guard let privateKeyChiper = NCEndToEndEncryption.sharedManager().encryptPrivateKey(self.appDelegate.activeUserID, directoryUser: self.appDelegate.directoryUser, passphrase: e2ePassphrase, privateKey: &privateKey) else {
+                guard let privateKeyChiper = NCEndToEndEncryption.sharedManager().encryptPrivateKey(self.appDelegate.activeUserID, directory: self.appDelegate.directoryUser, passphrase: e2ePassphrase, privateKey: &privateKey) else {
                     
                     self.appDelegate.messageNotification("E2E privateKey", description: "Serious internal error to create PrivateKey chiper", visible: true, delay: TimeInterval(k_dismissAfterSecond), type: TWMessageBarMessageType.error, errorCode: errorCode)