Browse Source

clear code

Marino Faggiana 7 years ago
parent
commit
fcb1451ccd
1 changed files with 12 additions and 7 deletions
  1. 12 7
      iOSClient/Security/NCEndToEndEncryption.m

+ 12 - 7
iOSClient/Security/NCEndToEndEncryption.m

@@ -355,10 +355,11 @@ cleanup:
     NSData *tagData = [NSData new];
     
     /* ENCODE 64 privateKey JAVA compatibility */
-    NSString *string = [_privateKeyData base64EncodedStringWithOptions:0];
-    NSMutableData *strdata = (NSMutableData *)[string dataUsingEncoding:NSUTF8StringEncoding];
+    NSString *privateKeyBase64 = [_privateKeyData base64EncodedStringWithOptions:0];
+    NSData *privateKeyBase64Data = [privateKeyBase64 dataUsingEncoding:NSUTF8StringEncoding];
+    /* --------------------------------------- */
     
-    BOOL result = [self encryptData:strdata cipherData:&privateKeyCipherData keyData:keyData keyLen:AES_KEY_256_LENGTH ivData:ivData tagData:&tagData];
+    BOOL result = [self encryptData:privateKeyBase64Data cipherData:&privateKeyCipherData keyData:keyData keyLen:AES_KEY_256_LENGTH ivData:ivData tagData:&tagData];
     
     if (result && privateKeyCipherData) {
         
@@ -417,8 +418,10 @@ cleanup:
     
     if (result && privateKeyData)
         
+        /* DENCODE 64 privateKey JAVA compatibility */
         privateKey = [self base64Decode:privateKeyData];
-
+        /* ---------------------------------------- */
+    
         if (privateKey) {
         
             NSData *encryptData = [self encryptAsymmetricString:ASYMMETRIC_STRING_TEST publicKey:publicKey];
@@ -525,7 +528,7 @@ cleanup:
     NSData *keyData = [[NSData alloc] initWithBase64EncodedString:@"WANM0gRv+DhaexIsI0T3Lg==" options:0];
     NSData *ivData = [[NSData alloc] initWithBase64EncodedString:@"gKm3n+mJzeY26q4OfuZEqg==" options:0];
     
-    BOOL result = [self encryptData:(NSMutableData *)plainData cipherData:&cipherData keyData:keyData keyLen:AES_KEY_128_LENGTH ivData:ivData tagData:&tagData];
+    BOOL result = [self encryptData:plainData cipherData:&cipherData keyData:keyData keyLen:AES_KEY_128_LENGTH ivData:ivData tagData:&tagData];
     
     if (cipherData != nil && result) {
         [cipherData writeToFile:[NSString stringWithFormat:@"%@/%@", activeUrl, @"encrypted.dms"] atomically:YES];
@@ -570,7 +573,7 @@ cleanup:
 }
 
 // Encryption using GCM mode
-- (BOOL)encryptData:(NSMutableData *)plainData cipherData:(NSMutableData **)cipherData keyData:(NSData *)keyData keyLen:(int)keyLen ivData:(NSData *)ivData tagData:(NSData **)tagData
+- (BOOL)encryptData:(NSData *)plainData cipherData:(NSMutableData **)cipherData keyData:(NSData *)keyData keyLen:(int)keyLen ivData:(NSData *)ivData tagData:(NSData **)tagData
 {
     int status = 0;
     int len = 0;
@@ -626,7 +629,6 @@ cleanup:
         return NO;
     
     // Provide the message to be encrypted, and obtain the encrypted output
-    [plainData appendBytes:"\x0" length:16]; // add TAG JAVA compatibility
     *cipherData = [NSMutableData dataWithLength:[plainData length]];
     unsigned char * ctBytes = [*cipherData mutableBytes];
     int pCipherLen = 0;
@@ -644,6 +646,9 @@ cleanup:
     status = EVP_CIPHER_CTX_ctrl (ctx, EVP_CTRL_GCM_GET_TAG, (int)sizeof(cTag), cTag);
     *tagData = [NSData dataWithBytes:cTag length:sizeof(cTag)];
     
+    // add TAG JAVA compatibility
+    [*cipherData appendData:*tagData];
+    
     // Free
     EVP_CIPHER_CTX_free(ctx);