Marino Faggiana 7 жил өмнө
parent
commit
ff78182dd7

+ 15 - 2
iOSClient/Security/NCEndToEndEncryption.m

@@ -39,6 +39,7 @@
 #import <openssl/bn.h>
 #import <openssl/md5.h>
 #import <openssl/rand.h>
+#import <openssl/engine.h>
 
 
 #define addName(field, value) X509_NAME_add_entry_by_txt(name, field, MBSTRING_ASC, (unsigned char *)value, -1, -1, 0); NSLog(@"%s: %s", field, value);
@@ -496,10 +497,14 @@ cleanup:
     return outData;
 }
 
-- (NSString *)decryptAsymmetricData:(NSData *)chiperData privateKey:(NSString *)privateKey
+- (NSString *)decryptAsymmetricData:(NSData *)chiperDataX privateKey:(NSString *)privateKey
 {
+    privateKey = @"-----BEGIN RSA PRIVATE KEY-----\nMIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDsn0JKS/THu328z1IgN0VzYU53HjSX03WJIgWkmyTaxbiKpoJaKbksXmfSpgzVGzKFvGfZ03fwFrN7Q8P8R2e8SNiell7mh1TDw9/0P7Bt/ER8PJrXORo+GviKHxaLr7Y0BJX9i/nW/L0L/VaE8CZTAqYBdcSJGgHJjY4UMf892ZPTa9T2Dl3ggdMZ7BQ2kiCiCC3qV99b0igRJGmmLQaGiAflhFzuDQPMifUMq75wI8RSRPdxUAtjTfkl68QHu7Umyeyy33OQgdUKaTl5zcS3VSQbNjveVCNM4RDH1RlEc+7Wf1BY8APqT6jbiBcROJD2CeoLH2eiIJCi+61ZkSGfAgMBAAECggEBALFStCHrhBf+GL9a+qer4/8QZ/X6i91PmaBX/7SYk2jjjWVSXRNmex+V6+Y/jBRT2mvAgm8J+7LPwFdatE+lz0aZrMRD2gCWYF6Itpda90OlLkmQPVWWtGTgX2ta2tF5r2iSGzk0IdoL8zw98Q2UzpOcw30KnWtFMxuxWk0mHqpgp00g80cDWg3+RPbWOhdLp5bflQ36fKDfmjq05cGlIk6unnVyC5HXpvh4d4k2EWlXrjGsndVBPCjGkZePlLRgDHxT06r+5XdJ+1CBDZgCsmjGz3M8uOHyCfVW0WhB7ynzDTagVgz0iqpuhAi9sPt6iWWwpAnRw8cQgqEKw9bvKKECgYEA/WPi2PJtL6u/xlysh/H7A717CId6fPHCMDace39ZNtzUzc0nT5BemlcF0wZ74NeJSur3Q395YzB+eBMLs5p8mA95wgGvJhM65/J+HX+k9kt6Z556zLMvtG+j1yo4D0VEwm3xahB4SUUP+1kD7dNvo4+8xeSCyjzNllvYZZC0DrECgYEA7w8pEqhHHn0a+twkPCZJS+gQTB9Rm+FBNGJqB3XpWsTeLUxYRbVGk0iDve+eeeZ41drxcdyWP+WcL34hnrjgI1Fo4mK88saajpwUIYMy6+qMLY+jC2NRSBox56eH7nsVYvQQK9eKqv9wbB+PF9SwOIvuETN7fd8mAY02UnoaaU8CgYBoHRKocXPLkpZJuuppMVQiRUi4SHJbxDo19Tp2w+y0TihiJ1lvp7I3WGpcOt3LlMQktEbExSvrRZGxZKH6Og/XqwQsYuTEkEIz679F/5yYVosE6GkskrOXQAfh8Mb3/04xVVtMaVgDQw0+CWVD4wyL+BNofGwBDNqsXTCdCsfxAQKBgQCDv2EtbRw0y1HRKv21QIxoju5cZW4+cDfVPN+eWPdQFOs1H7wOPsc0aGRiiupV2BSEF3O1ApKziEE5U1QH+29bR4R8L1pemeGX8qCNj5bCubKjcWOz5PpouDcEqimZ3q98p3E6GEHN15UHoaTkx0yO/V8oj6zhQ9fYRxDHB5ACtQKBgQCOO7TJUO1IaLTjcrwS4oCfJyRnAdz49L1AbVJkIBK0fhJLecOFu3ZlQl/RStQb69QKb5MNOIMmQhg8WOxZxHcpmIDbkDAm/J/ovJXFSoBdOr5ouQsYsDZhsWW97zvLMzg5pH9/3/1BNz5q3Vu4HgfBSwWGt4E2NENj+XA+QAVmGA==\n-----END RSA PRIVATE KEY-----";
+    
+    NSData *chiperData = [[NSData alloc] initWithBase64EncodedString:@"XPUVMfWoncNybAiLFcYpFgL6cnKH4rt80nc1NEsZfp2FleWkYIzkNN7GD01k0qVdnFZGKreaLceZ+QnPPLMsbuhF50hcMPQN2wRYTQMfsxX1vk/C6RShGX18/xp19Fg8aVTMCORIyCXpXHHwdboOaz1gdJYlDydhXD37xKNxdiGBbR/7d1E25E59Hnx331jO8aeaje7YW5F/g0GzEWNXvWSkXKWCuhtepgX/WwBQspyDcarpvKkALb7KdzGxq2OcpWGEcjoDsAU3IghmbIDYxm+f5wk/D/kBTr/0UIY+wlV+h8peBEVbqTk/1hmzolU25jDEvvIVSxRQ/cs27cv1gQ==" options:0];
+    
     unsigned char *pKey = (unsigned char *)[privateKey UTF8String];
-    ENGINE *eng = NULL;
+    ENGINE *eng = ENGINE_get_default_RSA();
     int status = 0;
     
     BIO *bio = BIO_new_mem_buf(pKey, -1);
@@ -522,6 +527,14 @@ cleanup:
     if (status <= 0)
         return nil;
     
+    status = EVP_PKEY_CTX_set_rsa_oaep_md(ctx, EVP_sha256());
+    if (status <= 0)
+        return nil;
+    
+    status = EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, EVP_sha256());
+    if (status <= 0)
+        return nil;
+    
     unsigned long outLen = 0;
     status = EVP_PKEY_decrypt(ctx, NULL, &outLen, [chiperData bytes], (int)[chiperData length]);
     if (status <= 0 || outLen == 0)

+ 4 - 1
iOSClient/Security/NCEntoToEndInterface.swift

@@ -516,7 +516,10 @@ class NCEntoToEndInterface : NSObject, OCNetworkingDelegate  {
                 
                 let iv = element.initializationVector
                 let tag = element.authenticationTag
-                let encrypted = element.encrypted
+               // let encrypted = element.encrypted
+                
+                let encrypted = "XPUVMfWoncNybAiLFcYpFgL6cnKH4rt80nc1NEsZfp2FleWkYIzkNN7GD01k0qVdnFZGKreaLceZ+QnPPLMsbuhF50hcMPQN2wRYTQMfsxX1vk/C6RShGX18/xp19Fg8aVTMCORIyCXpXHHwdboOaz1gdJYlDydhXD37xKNxdiGBbR/7d1E25E59Hnx331jO8aeaje7YW5F/g0GzEWNXvWSkXKWCuhtepgX/WwBQspyDcarpvKkALb7KdzGxq2OcpWGEcjoDsAU3IghmbIDYxm+f5wk/D/kBTr/0UIY+wlV+h8peBEVbqTk/1hmzolU25jDEvvIVSxRQ/cs27cv1gQ==";
+
                 
                 let x = NCEndToEndEncryption.sharedManager().decryptAsymmetricData(encrypted.data(using: .utf8), privateKey: privateKey)