Marino Faggiana 1 year ago
parent
commit
dc043ce0d0

+ 0 - 4
iOSClient/Networking/E2EE/NCEndToEndEncryption.m

@@ -420,8 +420,6 @@
     NSMutableData *cipher;
     NSData *authenticationTag = [NSData new];
 
-    encrypted = [[encrypted base64EncodedStringWithOptions:0] dataUsingEncoding:NSUTF8StringEncoding];
-
     // Key
     NSData *keyData = [[NSData alloc] initWithBase64EncodedString:key options:0];
 
@@ -448,8 +446,6 @@
     NSMutableData *cipher;
     NSData *authenticationTagData = [NSData new];
 
-    encrypted = [[encrypted base64EncodedStringWithOptions:0] dataUsingEncoding:NSUTF8StringEncoding];
-
     // Key
     NSData *keyData = [[NSData alloc] initWithBase64EncodedString:key options:0];
 

+ 4 - 2
iOSClient/Networking/E2EE/NCEndToEndMetadataV1.swift

@@ -67,7 +67,8 @@ extension NCEndToEndMetadata {
                 let encrypted = E2eeV12.Encrypted(key: e2eEncryption.key, filename: e2eEncryption.fileName, mimetype: e2eEncryption.mimeType)
                 do {
                     // Create "encrypted"
-                    let json = try encoder.encode(encrypted)
+                    var json = try encoder.encode(encrypted)
+                    json = json.base64EncodedString().data(using: .utf8)!
                     if let encrypted = NCEndToEndEncryption.sharedManager().encryptPayloadFile(json, key: e2eEncryption.metadataKey) {
                         let record = E2eeV12.Files(initializationVector: e2eEncryption.initializationVector, authenticationTag: e2eEncryption.authenticationTag, encrypted: encrypted)
                         files.updateValue(record, forKey: e2eEncryption.fileNameIdentifier)
@@ -95,7 +96,8 @@ extension NCEndToEndMetadata {
                 let encrypted = E2eeV12.Encrypted(key: e2eEncryption.key, filename: e2eEncryption.fileName, mimetype: e2eEncryption.mimeType)
                 do {
                     // Create "encrypted"
-                    let json = try encoder.encode(encrypted)
+                    var json = try encoder.encode(encrypted)
+                    json = json.base64EncodedString().data(using: .utf8)!
                     if let encrypted = NCEndToEndEncryption.sharedManager().encryptPayloadFile(json, key: e2eEncryption.metadataKeyFiledrop, initializationVector: &encryptedInitializationVector, authenticationTag: &encryptedTag) {
                         let record = E2eeV12.Filedrop(initializationVector: e2eEncryption.initializationVector, authenticationTag: e2eEncryption.authenticationTag, encrypted: encrypted, encryptedKey: encryptedKey, encryptedTag: encryptedTag as? String, encryptedInitializationVector: encryptedInitializationVector as? String)
                         filedrop.updateValue(record, forKey: e2eEncryption.fileNameIdentifier)

+ 10 - 2
iOSClient/Networking/E2EE/NCEndToEndMetadataV20.swift

@@ -98,6 +98,9 @@ extension NCEndToEndMetadata {
         var initializationVector: NSString?
 
         do {
+
+            // CIPHERTEXT
+
             let json = try JSONEncoder().encode(ciphertext)
             let jsonZip = try json.gzipped()
             let ciphertext = NCEndToEndEncryption.sharedManager().encryptPayloadFile(jsonZip, key: metadataKey, initializationVector: &initializationVector, authenticationTag: &authenticationTag)
@@ -119,7 +122,8 @@ extension NCEndToEndMetadata {
             return (nil, nil)
         }
 
-        // Signature
+        // SIGNATURE
+
         if let e2eeJson {
             let dataMetadata = Data(base64Encoded: "e2eeJson")
             if let signatureData = NCEndToEndEncryption.sharedManager().generateSignatureCMS(dataMetadata, certificate: certificate, privateKey: privateKey, publicKey: publicKey, userId: userId) {
@@ -182,7 +186,8 @@ extension NCEndToEndMetadata {
             let filedrop = json.filedrop
             let version = json.version as String? ?? "2.0"
 
-            // Signature check
+            // SIGNATURE CHECK
+
             let metadataCodable = E2eeV20.Metadata(ciphertext: metadata.ciphertext, nonce: metadata.nonce, authenticationTag: metadata.authenticationTag)
             let metadataData = try JSONEncoder().encode(metadataCodable)
             if let signatureData = NCEndToEndEncryption.sharedManager().generateSignatureCMS(metadataData, certificate: CCUtility.getEndToEndPublicKey(account), privateKey: CCUtility.getEndToEndPrivateKey(account), publicKey: CCUtility.getEndToEndPublicKey(account), userId: userId) {
@@ -232,6 +237,9 @@ extension NCEndToEndMetadata {
             if let tableE2eUsersV2 = NCManageDatabase.shared.getE2EUsersV2(account: account, serverUrl: serverUrl, userId: userId),
                let metadataKey = tableE2eUsersV2.metadataKey,
                let decryptedMetadataKey = tableE2eUsersV2.decryptedMetadataKey {
+
+                // CIPHERTEXT
+
                 if let decrypted = NCEndToEndEncryption.sharedManager().decryptPayloadFile(metadata.ciphertext, key: metadataKey, initializationVector: metadata.nonce, authenticationTag: metadata.authenticationTag) {
                     if decrypted.isGzipped {
                         do {