From fa3cc04db5118d39f639ed771c4b9bf28ff25a71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=B0=B8=E5=BF=A0?= Date: Sat, 13 Sep 2025 02:27:21 +0000 Subject: [PATCH 1/3] =?UTF-8?q?revert=20=20cert=5Fsize=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 王永忠 --- .../src/dlp_permission_public_interface.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/interfaces/inner_api/dlp_permission/src/dlp_permission_public_interface.cpp b/interfaces/inner_api/dlp_permission/src/dlp_permission_public_interface.cpp index c617e68d..4d8cd81b 100644 --- a/interfaces/inner_api/dlp_permission/src/dlp_permission_public_interface.cpp +++ b/interfaces/inner_api/dlp_permission/src/dlp_permission_public_interface.cpp @@ -33,8 +33,6 @@ static const std::string DLP_REAL_TYPE = "realFileType"; static const std::string CERT_SIZE = "certSize"; static const uint32_t MIN_REALY_TYPE_LENGTH = 2; static const uint32_t MAX_REALY_TYPE_LENGTH = 5; -static const uint32_t EXTRA_CERT_SIZE = UINT32_MAX; -static const uint32_t MAX_CERT_SIZE = 30 * 1024; static bool checkParams(GenerateInfoParams& params, const nlohmann::json& jsonObj, const std::string& versionKey, const std::string& infoKey) { @@ -76,7 +74,7 @@ int32_t GenerateDlpGeneralInfo(const GenerateInfoParams& params, std::string& ge if (params.realType.size() >= MIN_REALY_TYPE_LENGTH && params.realType.size() <= MAX_REALY_TYPE_LENGTH) { dlp_general_info[DLP_REAL_TYPE] = params.realType; } - dlp_general_info[CERT_SIZE] = params.certSize ^ EXTRA_CERT_SIZE; + dlp_general_info[CERT_SIZE] = params.certSize; generalInfo = dlp_general_info.dump(); return DLP_OK; } @@ -100,10 +98,11 @@ int32_t ParseDlpGeneralInfo(const std::string& generalInfo, GenerateInfoParams& return DLP_PARSE_ERROR_VALUE_INVALID; } auto iter = jsonObj.find(DLP_OFFLINE_FLAG); - if ((iter == jsonObj.end()) || !(iter->is_boolean())) { + if (iter != jsonObj.end() && iter->is_boolean()) { + params.offlineAccessFlag = iter->get(); + } else { return DLP_PARSE_ERROR_VALUE_INVALID; } - params.offlineAccessFlag = iter->get(); iter = jsonObj.find(DLP_CONTACT_ACCOUNT); if (iter != jsonObj.end() && iter->is_string()) { params.contactAccount = iter->get(); @@ -125,7 +124,6 @@ int32_t ParseDlpGeneralInfo(const std::string& generalInfo, GenerateInfoParams& params.certSize = 0; if (iter != jsonObj.end() && iter->is_number_integer()) { params.certSize = iter->get(); - params.certSize = (params.certSize > MAX_CERT_SIZE) ? (params.certSize ^ EXTRA_CERT_SIZE) : params.certSize; } return DLP_OK; } -- Gitee From e5820793ff42fa31c64129ad1d20674fb7bd5094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=B0=B8=E5=BF=A0?= Date: Sat, 13 Sep 2025 04:12:17 +0000 Subject: [PATCH 2/3] modify cert size MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 王永忠 --- .../dlp_permission/src/dlp_permission_public_interface.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/interfaces/inner_api/dlp_permission/src/dlp_permission_public_interface.cpp b/interfaces/inner_api/dlp_permission/src/dlp_permission_public_interface.cpp index 4d8cd81b..c56f3b3a 100644 --- a/interfaces/inner_api/dlp_permission/src/dlp_permission_public_interface.cpp +++ b/interfaces/inner_api/dlp_permission/src/dlp_permission_public_interface.cpp @@ -33,6 +33,7 @@ static const std::string DLP_REAL_TYPE = "realFileType"; static const std::string CERT_SIZE = "certSize"; static const uint32_t MIN_REALY_TYPE_LENGTH = 2; static const uint32_t MAX_REALY_TYPE_LENGTH = 5; +static const uint32_t LIMIT_CERT_SIZE = 10000; static bool checkParams(GenerateInfoParams& params, const nlohmann::json& jsonObj, const std::string& versionKey, const std::string& infoKey) { @@ -76,6 +77,12 @@ int32_t GenerateDlpGeneralInfo(const GenerateInfoParams& params, std::string& ge } dlp_general_info[CERT_SIZE] = params.certSize; generalInfo = dlp_general_info.dump(); + size_t pos = generalInfo.find(CERT_SIZE); + if (pos != std::string::npos && + params.certSize < LIMIT_CERT_SIZE && pos + CERT_SIZE.size() + 1 < generalInfo.size()) { + generalInfo = generalInfo.substr(0, pos + CERT_SIZE.size() + 1) + + " " + generalInfo.substr(pos + CERT_SIZE.size() + 1, generalInfo.size()); + } return DLP_OK; } -- Gitee From f39d773e61ca47a5bc7a6df8a46ebcde4e205bd7 Mon Sep 17 00:00:00 2001 From: wangyongzhong2 Date: Sat, 13 Sep 2025 19:00:43 +0800 Subject: [PATCH 3/3] add tdd test Signed-off-by: wangyongzhong2 --- .../test/unittest/src/dlp_file_test.cpp | 38 +++++++++++++++++++ .../dlp_parse/test/dlp_raw_file_test.cpp | 13 ++++++- 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/interfaces/inner_api/dlp_fuse/test/unittest/src/dlp_file_test.cpp b/interfaces/inner_api/dlp_fuse/test/unittest/src/dlp_file_test.cpp index 20ad287c..03421d65 100644 --- a/interfaces/inner_api/dlp_fuse/test/unittest/src/dlp_file_test.cpp +++ b/interfaces/inner_api/dlp_fuse/test/unittest/src/dlp_file_test.cpp @@ -275,6 +275,44 @@ HWTEST_F(DlpFileTest, OpenDlpFile002, TestSize.Level0) ASSERT_EQ(DlpFileManager::GetInstance().CloseDlpFile(g_Dlpfile), 0); g_Dlpfile = nullptr; } + +/** + * @tc.name: TestDlpFile + * @tc.desc: test dlp file function + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DlpFileTest, TestDlpFile002, TestSize.Level1) +{ + g_plainFileFd = open("/data/fuse_test.txt", O_CREAT | O_RDWR | O_TRUNC, S_IRWXU | S_IRWXG | S_IRWXO); + g_dlpFileFd = open("/data/fuse_test.txt.dlp", O_CREAT | O_RDWR | O_TRUNC, S_IRWXU | S_IRWXG | S_IRWXO); + ASSERT_GE(g_plainFileFd, 0); + ASSERT_GE(g_dlpFileFd, 0); + char buffer[] = "123456"; + ASSERT_NE(write(g_plainFileFd, buffer, sizeof(buffer)), -1); + struct DlpProperty prop; + GenerateRandProperty(prop); + int32_t result = DlpFileManager::GetInstance().GenerateDlpFile(g_plainFileFd, + g_dlpFileFd, prop, g_Dlpfile, DLP_TEST_DIR); + ASSERT_EQ(result, 0); + ASSERT_NE(g_Dlpfile, nullptr); + + std::string appId = "12345"; + g_Dlpfile->SetAppId(appId); + ASSERT_EQ(g_Dlpfile->GetAppId(), appId); + + std::string fileId = "12345"; + g_Dlpfile->SetFileId(fileId); + ASSERT_EQ(g_Dlpfile->GetFileId(), fileId); + + int32_t accountType = 0; + g_Dlpfile->SetAccountType(accountType); + ASSERT_EQ(g_Dlpfile->GetAccountType(), accountType); + + result = DlpFileManager::GetInstance().CloseDlpFile(g_Dlpfile); + ASSERT_EQ(result, 0); + g_Dlpfile = nullptr; +} } // namespace DlpPermission } // namespace Security } // namespace OHOS diff --git a/interfaces/inner_api/dlp_parse/test/dlp_raw_file_test.cpp b/interfaces/inner_api/dlp_parse/test/dlp_raw_file_test.cpp index 0d5305d0..c4400a63 100644 --- a/interfaces/inner_api/dlp_parse/test/dlp_raw_file_test.cpp +++ b/interfaces/inner_api/dlp_parse/test/dlp_raw_file_test.cpp @@ -351,4 +351,15 @@ HWTEST_F(DlpRawFileTest, DoDlpHIAECryptOperationTest, TestSize.Level0) DlpBlob message2 = { 0, nullptr }; std::shared_ptr filePtr = std::make_shared(-1, "mp4"); ASSERT_EQ(filePtr->DoDlpHIAECryptOperation(message1, message2, 0, true), DLP_PARSE_ERROR_VALUE_INVALID); -} \ No newline at end of file +} + +/** + * @tc.name: ParseEnterpriseFileId + * @tc.desc: test ParseEnterpriseFileId + * @tc.type: FUNC + * @tc.require: + */ +HWTEST_F(DlpRawFileTest, ParseEnterpriseFileIdTest, TestSize.Level1) +{ + ASSERT_NE(filePtr->ParseEnterpriseFileId(0, 0), DLP_OK); +} -- Gitee