Marino Faggiana 7 жил өмнө
parent
commit
50db8fb09c

+ 4 - 23
iOSClient/Security/NCEndToEndEncryption.m

@@ -407,6 +407,8 @@ cleanup:
         NSString *privateKey = [[NSString alloc] initWithData:privateKeyData encoding:NSUTF8StringEncoding];
         
         NSData *encryptData = [self encryptAsymmetricString:TEST_KEY publicKey:publicKey];
+        if (!encryptData)
+            return nil;
         NSString *decryptString = [self decryptAsymmetricData:encryptData privateKey:privateKey];
         
         if (decryptString && [decryptString isEqualToString:TEST_KEY])
@@ -426,6 +428,8 @@ cleanup:
 
 - (NSData *)encryptAsymmetricString:(NSString *)plain publicKey:(NSString *)publicKey
 {
+    NSData *plainData = [plain dataUsingEncoding:NSUTF8StringEncoding];
+
     //unsigned char *pKey = (unsigned char *)[publicKey UTF8String];
     
     char *pKey = "-----BEGIN PUBLIC KEY-----\n"
@@ -442,10 +446,6 @@ cleanup:
     RSA *rsa = PEM_read_bio_RSA_PUBKEY(bio, NULL, 0, NULL);
     BIO_free(bio);
 
-    NSData *plainData = [plain dataUsingEncoding:NSUTF8StringEncoding];
-    //NSMutableData *cipherData = [NSMutableData dataWithLength:[plainData length]];
-    //unsigned char *pCipherData = [cipherData mutableBytes];
-
     int maxSize = RSA_size(rsa);
     unsigned char *output = (unsigned char *) malloc(maxSize * sizeof(char));
     
@@ -496,10 +496,8 @@ cleanup:
     RSA *rsa = PEM_read_bio_RSAPrivateKey(bio, NULL, 0, NULL);
     BIO_free(bio);
     
-    // Allocate a buffer
     unsigned char *decrypted = (unsigned char *) malloc(1000);
     
-    // Fill buffer with decrypted data
     int decrypted_length = RSA_private_decrypt((int)[chiperData length], [chiperData bytes], decrypted, rsa, RSA_PKCS1_PADDING);
     if(decrypted_length == -1) {
         char buffer[500];
@@ -511,23 +509,6 @@ cleanup:
     NSString *plain = [[NSString alloc] initWithBytes:decrypted length:decrypted_length encoding:NSUTF8StringEncoding];
 
     return plain;
-    
-    /*
-    NSMutableData *plainData = [NSMutableData dataWithLength:[chiperData length]];
-    unsigned char *pPlainData = [plainData mutableBytes];
-
-    int decrypted_length = RSA_private_decrypt((int)[chiperData length], [chiperData bytes], pPlainData, rsa, RSA_PKCS1_PADDING);
-    if(decrypted_length == -1) {
-        char buffer[500];
-        ERR_error_string(ERR_get_error(), buffer);
-        NSLog(@"%@",[NSString stringWithUTF8String:buffer]);
-        return nil;
-    }
-    
-    NSString *plain = [[NSString alloc] initWithBytes:pPlainData length:sizeof(pPlainData) encoding:NSUTF8StringEncoding];
-    
-    return plain;
-    */
 }
 
 #