瀏覽代碼

create getEndToEndPrivateKey on OCNetworking

Marino Faggiana 7 年之前
父節點
當前提交
73888e49f9

+ 1 - 0
iOSClient/Library/OCCommunicationLib/OCCommunication.m

@@ -1970,6 +1970,7 @@
         
         
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
     } failure:^(NSHTTPURLResponse *response, NSData *responseData, NSError *error) {
         
         
+        //Return error
         failureRequest(response, error, request.redirectedServer);
         failureRequest(response, error, request.redirectedServer);
     }];
     }];
 }
 }

+ 15 - 0
iOSClient/Main/CCMain.m

@@ -1222,6 +1222,21 @@
     [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
     [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
 }
 }
 
 
+#pragma mark -
+#pragma --------------------------------------------------------------------------------------------
+#pragma mark ==== End-to-End Encryption  ====
+#pragma --------------------------------------------------------------------------------------------
+
+- (void)getEndToEndPrivateKeySuccess:(CCMetadataNet *)metadataNet
+{
+    NSLog(@"OK");
+}
+
+- (void)getEndToEndPrivateKeyFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
+{
+    NSLog(@"error");
+}
+
 #pragma mark -
 #pragma mark -
 #pragma --------------------------------------------------------------------------------------------
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ==== Download Thumbnail Delegate ====
 #pragma mark ==== Download Thumbnail Delegate ====

+ 4 - 0
iOSClient/Networking/OCNetworking.h

@@ -124,6 +124,10 @@
 // Subscribing Nextcloud Server
 // Subscribing Nextcloud Server
 - (void)subscribingNextcloudServerFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
 - (void)subscribingNextcloudServerFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
 
 
+// End-to-End Encryption
+- (void)getEndToEndPrivateKeySuccess:(CCMetadataNet *)metadataNet;
+- (void)getEndToEndPrivateKeyFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
+
 @end
 @end
 
 
 @interface OCURLSessionManager : AFURLSessionManager
 @interface OCURLSessionManager : AFURLSessionManager

+ 42 - 1
iOSClient/Networking/OCNetworking.m

@@ -1585,7 +1585,6 @@
     }];
     }];
 }
 }
 
 
-
 #pragma --------------------------------------------------------------------------------------------
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Server =====
 #pragma mark ===== Server =====
 #pragma --------------------------------------------------------------------------------------------
 #pragma --------------------------------------------------------------------------------------------
@@ -1667,6 +1666,48 @@
     }];
     }];
 }
 }
 
 
+#pragma --------------------------------------------------------------------------------------------
+#pragma mark ===== End-to-End Encryption =====
+#pragma --------------------------------------------------------------------------------------------
+
+- (void)getEndToEndPrivateKey
+{
+    OCCommunication *communication = [CCNetworking sharedNetworking].sharedOCCommunication;
+    
+    [communication setCredentialsWithUser:_activeUser andUserID:_activeUserID andPassword:_activePassword];
+    [communication setUserAgent:[CCUtility getUserAgent]];
+    
+    [communication getEndToEndPrivateKey:[_activeUrl stringByAppendingString:@"/"] onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
+        
+        // 200 ok: body contain the private key
+        
+        if ([self.delegate respondsToSelector:@selector(getEndToEndPrivateKeySuccess:)])
+            [self.delegate getEndToEndPrivateKeySuccess:_metadataNet];
+        
+        [self complete];
+        
+    } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
+        
+        // 409 forbidden: if the user can't access the private key
+        // 404 not found: if the private key doesn't exists
+        // 400 bad request: unpredictable internal error
+        
+        NSInteger errorCode = response.statusCode;
+        if (errorCode == 0)
+            errorCode = error.code;
+        
+        // Error
+        if ([self.delegate respondsToSelector:@selector(getEndToEndPrivateKeyFailure:message:errorCode:)])
+            [self.delegate getEndToEndPrivateKeyFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
+        
+        // Request trusted certificated
+        if ([error code] == NSURLErrorServerCertificateUntrusted)
+            [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
+        
+        [self complete];
+    }];
+}
+
 @end
 @end
 
 
 #pragma --------------------------------------------------------------------------------------------
 #pragma --------------------------------------------------------------------------------------------