Bläddra i källkod

add decryptMetadata

Marino Faggiana 7 år sedan
förälder
incheckning
8f3443433b
2 ändrade filer med 24 tillägg och 5 borttagningar
  1. 3 5
      iOSClient/Security/NCEndToEndEncryption.h
  2. 21 0
      iOSClient/Security/NCEndToEndEncryption.m

+ 3 - 5
iOSClient/Security/NCEndToEndEncryption.h

@@ -29,11 +29,6 @@
 
 + (instancetype)sharedManager;
 
-- (BOOL)encryptFileName:(NSString *)fileName fileNameIdentifier:(NSString *)fileNameIdentifier directoryUser:(NSString *)directoryUser key:(NSString **)key initializationVector:(NSString **)initializationVector authenticationTag:(NSString **)authenticationTag;
-
-//- (void)encryptMetadata:(tableMetadata *)metadata activeUrl:(NSString *)activeUrl;
-//- (NSString *)decryptMetadata:(NSString *)cipher key:(NSString *)key iv:(NSString *)iv tag:(NSString *)tag;
-
 - (NSString *)createCSR:(NSString *)userID directoryUser:(NSString *)directoryUser;
 - (NSString *)encryptPrivateKey:(NSString *)userID directoryUser: (NSString *)directoryUser passphrase:(NSString *)passphrase privateKey:(NSString **)privateKey;
 - (NSString *)decryptPrivateKey:(NSString *)privateKeyCipher passphrase:(NSString *)passphrase publicKey:(NSString *)publicKey;
@@ -41,6 +36,9 @@
 - (NSData *)encryptAsymmetricString:(NSString *)plain publicKey:(NSString *)publicKey;
 - (NSString *)decryptAsymmetricData:(NSData *)cipherData privateKey:(NSString *)privateKey;
 
+- (NSString *)decryptMetadata:(NSString *)encrypted privateKey:(NSString *)privateKey initializationVector:(NSString *)initializationVector authenticationTag:(NSString *)authenticationTag;
+
+- (BOOL)encryptFileName:(NSString *)fileName fileNameIdentifier:(NSString *)fileNameIdentifier directoryUser:(NSString *)directoryUser key:(NSString **)key initializationVector:(NSString **)initializationVector authenticationTag:(NSString **)authenticationTag;
 
 - (NSString *)createSHA512:(NSString *)string;
 

+ 21 - 0
iOSClient/Security/NCEndToEndEncryption.m

@@ -553,6 +553,27 @@ cleanup:
     return outString;
 }
 
+#
+#pragma mark - Encrypt / Decrypt Metadata
+#
+
+- (NSString *)decryptMetadata:(NSString *)encrypted privateKey:(NSString *)privateKey initializationVector:(NSString *)initializationVector authenticationTag:(NSString *)authenticationTag
+{
+    NSMutableData *plainData;
+    
+    NSData *cipherData = [encrypted dataUsingEncoding:NSUTF8StringEncoding];
+    NSData *keyData = [privateKey dataUsingEncoding:NSUTF8StringEncoding];
+    NSData *ivData = [initializationVector dataUsingEncoding:NSUTF8StringEncoding];
+    NSData *tagData = [authenticationTag dataUsingEncoding:NSUTF8StringEncoding];
+
+    BOOL result = [self decryptData:cipherData plainData:&plainData keyData:keyData keyLen:AES_KEY_128_LENGTH ivData:ivData tagData:tagData];
+    
+    if (plainData != nil && result)
+        return [[NSString alloc] initWithData:plainData encoding:NSUTF8StringEncoding];
+    else
+        return nil;
+}
+
 #
 #pragma mark - Encrypt / Decrypt file
 #