浏览代码

add signEndToEndPublicKey

Marino Faggiana 7 年之前
父节点
当前提交
8feb6118b3
共有 2 个文件被更改,包括 36 次插入0 次删除
  1. 1 0
      iOSClient/CCGlobal.h
  2. 35 0
      iOSClient/Networking/OCNetworking.m

+ 1 - 0
iOSClient/CCGlobal.h

@@ -197,6 +197,7 @@ extern NSString *const dav;
 
 #define actionGetEndToEndPrivateKey                     @"getEndToEndPrivateKey"
 #define actionGetEndToEndPublicKey                      @"getEndToEndPublicKey"
+#define actionSignEndToEndPublicKey                     @"signEndToEndPublicKey"
 
 // Metadata : FileType
 #define k_metadataTypeFile_audio                        @"audio"

+ 35 - 0
iOSClient/Networking/OCNetworking.m

@@ -1738,6 +1738,41 @@
     }];
 }
 
+- (void)signEndToEndPublicKey
+{
+    OCCommunication *communication = [CCNetworking sharedNetworking].sharedOCCommunication;
+    
+    NSString *publickey = _metadataNet.options;
+
+    [communication setCredentialsWithUser:_activeUser andUserID:_activeUserID andPassword:_activePassword];
+    [communication setUserAgent:[CCUtility getUserAgent]];
+    
+    [communication signEndToEndPublicKey:[_activeUrl stringByAppendingString:@"/"] publickey:publickey onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
+        
+        // 200 ok: body contain the public key
+        
+        if ([self.delegate respondsToSelector:@selector(getEndToEndPublicKeySuccess:)])
+            [self.delegate getEndToEndPublicKeySuccess:_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(getEndToEndPublicKeyFailure:message:errorCode:)])
+            [self.delegate getEndToEndPublicKeyFailure:_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
 
 #pragma --------------------------------------------------------------------------------------------