Marino Faggiana 7 anni fa
parent
commit
7f1a0e0487
1 ha cambiato i file con 29 aggiunte e 10 eliminazioni
  1. 29 10
      iOSClient/Security/NCEndToEndEncryption.m

+ 29 - 10
iOSClient/Security/NCEndToEndEncryption.m

@@ -411,6 +411,7 @@ cleanup:
     if (result && privateKeyData) {
         
         NSString *privateKey = [self base64Decode:privateKeyData];
+        privateKey = [self structPEMFormat:privateKey];
         
         NSData *encryptData = [self encryptAsymmetricString:ASYMMETRIC_STRING_TEST publicKey:publicKey];
         if (!encryptData)
@@ -774,16 +775,6 @@ cleanup:
     return [NSString stringWithString:hexString];
 }
 
-- (NSString *)stringRemoveBeginEnd:(NSString *)input
-{
-    input = [input stringByReplacingOccurrencesOfString:@"-----BEGIN CERTIFICATE-----\n" withString:@""];
-    input = [input stringByReplacingOccurrencesOfString:@"\n-----END CERTIFICATE-----" withString:@""];
-    input = [input stringByReplacingOccurrencesOfString:@"-----BEGIN PRIVATE KEY-----\n" withString:@""];
-    input = [input stringByReplacingOccurrencesOfString:@"\n-----END PRIVATE KEY-----" withString:@""];
-    
-    return input;
-}
-
 - (NSString *)base64Encode:(NSData *)input
 {
     void *bytes;
@@ -822,4 +813,32 @@ cleanup:
     return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
 }
 
+- (NSString *)structPEMFormat:(NSString *)input
+{
+    NSMutableArray *substringArray = [NSMutableArray array];
+    NSInteger startingPoint = 0;
+    NSInteger substringLength = 65;
+
+    for (NSInteger i = 0; i < input.length / substringLength; i++) {
+        NSString *substring = [input substringWithRange:NSMakeRange(startingPoint, substringLength)];
+        substring = [substring stringByAppendingString:@"\n"];
+        [substringArray addObject:substring];
+        startingPoint += substringLength;
+    }
+    
+    if (startingPoint < input.length) {
+        NSString *substring = [input substringWithRange:NSMakeRange(startingPoint, input.length-startingPoint)];
+        substring = [substring stringByAppendingString:@"\n"];
+        [substringArray addObject:substring];
+     }
+    
+    NSMutableString *result = [NSMutableString new];
+    [result appendString:@"-----BEGIN PRIVATE KEY-----\n"];
+    for (NSObject * obj in substringArray)
+        [result appendString:[obj description]];
+    [result appendString:@"-----END PRIVATE KEY-----\n"];
+
+    return result;
+}
+
 @end