From 0e218bc5495abd422490b6b3db35ebc29d751e6c Mon Sep 17 00:00:00 2001 From: Camila Ayres Date: Tue, 16 Jul 2024 20:29:07 +0200 Subject: [PATCH] Add test testFolderMetadataWithEmptySignatureDecryptFails. Signed-off-by: Camila Ayres --- test/testclientsideencryptionv2.cpp | 35 +++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/test/testclientsideencryptionv2.cpp b/test/testclientsideencryptionv2.cpp index 443adad94..9b2304d02 100644 --- a/test/testclientsideencryptionv2.cpp +++ b/test/testclientsideencryptionv2.cpp @@ -192,6 +192,41 @@ private slots: QVERIFY(metadataFromJson->isValid()); } + void testFolderMetadataWithEmptySignatureDecryptFails() + { + QScopedPointer metadata(new FolderMetadata(_account, "/", FolderMetadata::FolderType::Root)); + QSignalSpy metadataSetupCompleteSpy(metadata.data(), &FolderMetadata::setupComplete); + metadataSetupCompleteSpy.wait(); + QCOMPARE(metadataSetupCompleteSpy.count(), 1); + QVERIFY(metadata->isValid()); + + const auto encryptedMetadata = metadata->encryptedMetadata(); + QVERIFY(!encryptedMetadata.isEmpty()); + + const auto signature = metadata->metadataSignature(); + QVERIFY(!signature.isEmpty()); + + auto encryptedMetadataCopy = encryptedMetadata; + encryptedMetadataCopy.replace("\"", "\\\""); + + const QJsonDocument ocsDoc = QJsonDocument::fromJson(QStringLiteral("{\"ocs\": {\"data\": {\"meta-data\": \"%1\"}}}") + .arg(QString::fromUtf8(encryptedMetadataCopy)).toUtf8()); + + const QByteArray emptySignature = {}; + QScopedPointer metadataFromJson(new FolderMetadata(_account, "/", + ocsDoc.toJson(), + RootEncryptedFolderInfo::makeDefault(), + emptySignature)); + + QSignalSpy metadataSetupExistingCompleteSpy(metadataFromJson.data(), &FolderMetadata::setupComplete); + metadataSetupExistingCompleteSpy.wait(); + QCOMPARE(metadataSetupExistingCompleteSpy.count(), 1); + + QVERIFY(metadataFromJson->metadataSignature().isEmpty()); + QVERIFY(metadataFromJson->metadataKeyForDecryption().isEmpty()); + QVERIFY(!metadataFromJson->isValid()); + } + void testE2EeFolderMetadataSharing() { // instantiate empty metadata, add a file, and share with a second user "sharee" -- 2.30.2