Эх сурвалжийг харах

add API getEndToEndServerPublicKey

Marino Faggiana 7 жил өмнө
parent
commit
2fe4322b3c

+ 1 - 0
iOSClient/CCGlobal.h

@@ -201,6 +201,7 @@ extern NSString *const dav;
 #define actionStoreEndToEndPrivateKey                   @"storeEndToEndPrivateKey"
 #define actionStoreEndToEndPrivateKey                   @"storeEndToEndPrivateKey"
 #define actionDeleteEndToEndPublicKey                   @"deleteEndToEndPublicKey"
 #define actionDeleteEndToEndPublicKey                   @"deleteEndToEndPublicKey"
 #define actionDeleteEndToEndPrivateKey                  @"deleteEndToEndPrivateKey"
 #define actionDeleteEndToEndPrivateKey                  @"deleteEndToEndPrivateKey"
+#define actionGetEndToEndServerPublicKey                @"getEndToEndServerPublicKey"
 
 
 // Metadata : FileType
 // Metadata : FileType
 #define k_metadataTypeFile_audio                        @"audio"
 #define k_metadataTypeFile_audio                        @"audio"

+ 3 - 0
iOSClient/Networking/OCNetworking.h

@@ -139,6 +139,9 @@
 - (void)deleteEndToEndPrivateKeySuccess:(CCMetadataNet *)metadataNet;
 - (void)deleteEndToEndPrivateKeySuccess:(CCMetadataNet *)metadataNet;
 - (void)deleteEndToEndPrivateKeyFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
 - (void)deleteEndToEndPrivateKeyFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
 
 
+- (void)getEndToEndServerPublicKeySuccess:(CCMetadataNet *)metadataNet;
+- (void)getEndToEndServerPublicKeyFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
+
 @end
 @end
 
 
 @interface OCURLSessionManager : AFURLSessionManager
 @interface OCURLSessionManager : AFURLSessionManager

+ 35 - 0
iOSClient/Networking/OCNetworking.m

@@ -1882,6 +1882,41 @@
     }];
     }];
 }
 }
 
 
+- (void)getEndToEndServerPublicKey
+{
+    OCCommunication *communication = [CCNetworking sharedNetworking].sharedOCCommunication;
+    
+    [communication setCredentialsWithUser:_activeUser andUserID:_activeUserID andPassword:_activePassword];
+    [communication setUserAgent:[CCUtility getUserAgent]];
+    
+    [communication getEndToEndServerPublicKey:[_activeUrl stringByAppendingString:@"/"] onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *publicKey, NSString *redirectedServer) {
+        
+        // 200 ok: body contain the public key
+        _metadataNet.options = publicKey;
+        
+        if ([self.delegate respondsToSelector:@selector(getEndToEndServerPublicKeySuccess:)])
+            [self.delegate getEndToEndServerPublicKeySuccess:_metadataNet];
+        
+        [self complete];
+        
+    } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
+        
+        NSInteger errorCode = response.statusCode;
+        if (errorCode == 0)
+            errorCode = error.code;
+        
+        // Error
+        if ([self.delegate respondsToSelector:@selector(getEndToEndServerPublicKeyFailure:message:errorCode:)])
+            [self.delegate getEndToEndServerPublicKeyFailure:_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 --------------------------------------------------------------------------------------------