diff --git a/README.md b/README.md index ac89278b626b39d720b1564f6ab6b8c8be8417ec..0a41bccfcf6d80c85327b7a516dac4ad149b42ac 100644 --- a/README.md +++ b/README.md @@ -12,36 +12,35 @@ Open Harmony授权验证平台开发分支 | build(编译配置) | | certconfig.gni(编译目录等公共配置) | common(公共基础能力) - | | log - | | | ***log.h - | | ***errorno.h + | | include + | | | ***cert_mgr_log.h + | | | ***cert_mgr_type.h | framework(SA启动框架) | | src | | include | | BUILD.gn | interfaces(对外接口) - | | innerkits - | | | native_cpp - | | | | include - | | | | src - | | | | BUILD.gn - | | kits - | sample(示例) - | | client(客户端示例) + | | include + | | | ***cert_manager_interface.h | services(服务主体和业务逻辑代码) - | | certmanager_ability(服务框架) - | | | include - | | | src - | | | BUILD.gn - | | etc(启动配置文件) - | | sa_profile(进程配置文件) | | core(业务逻辑代码,暂时放在该目录) - | | | src + | | | adapter + | | | cert + | | | dfx | | | include + | | | network + | | | security + | | | utils + | | | BUILD.gn + | | | ***cert_entry.c + | | | ***cert_entry.h | | oem_adapter(合作伙伴适配接口) | test(测试用例) - | BUILD.gn(组件编译) - | bundle.json(子系统编译) + | | data(测试用例数据) + | | startup(L1测试启动模块) + | | unittest(测试模块) + | BUILD.gn(组件编译脚本) + | bundle.json(子系统编译描述文件) #### 安装教程 diff --git a/cert_mgr_service/BUILD.gn b/cert_mgr_service/BUILD.gn index 84fbb190a221ebf39545b72b40ad624b80ef13ec..484657abfa1a891efc33f0d76da64a0600e0c5f5 100644 --- a/cert_mgr_service/BUILD.gn +++ b/cert_mgr_service/BUILD.gn @@ -17,18 +17,17 @@ lite_component("cert_mgr_service") { if (ohos_kernel_type == "liteos_a" || ohos_kernel_type == "linux") { features += [ "framework:cert_framework_service", - "test/startup:cert_framework_client" - ] - - features += [ - "services/oem_adapter:cert_mgr_oem_adapter", + "test/startup:cert_framework_client", ] } if (ohos_kernel_type == "liteos_m") { features += [ - "services/oem_adapter:cert_mgr_oem_adapter", - "framework:cert_mgr_sdk" + "framework:cert_mgr_sdk", ] } + + features += [ + "services/oem_adapter:cert_mgr_oem_adapter", + ] } diff --git a/cert_mgr_service/framework/src/mini/cert_manager_interface.c b/cert_mgr_service/framework/src/mini/cert_manager_interface.c index f7fba985d9bd579a513879b963ef83264f05909f..25fe5db4298c8e0a9b6e28fdf5673da0b0394bf0 100644 --- a/cert_mgr_service/framework/src/mini/cert_manager_interface.c +++ b/cert_mgr_service/framework/src/mini/cert_manager_interface.c @@ -14,8 +14,6 @@ */ #include -#include "cmsis_os2.h" -#include "ohos_init.h" #include "cert_manager_interface.h" #include "cert_entry.h" diff --git a/cert_mgr_service/framework/src/small/cert_framework_client_proxy.c b/cert_mgr_service/framework/src/small/cert_framework_client_proxy.c index cbd74c6b31de64956be569ed2a4e5655705a4e9d..3dfcb144e7026604ae108187a2bdf19516c12cfa 100644 --- a/cert_mgr_service/framework/src/small/cert_framework_client_proxy.c +++ b/cert_mgr_service/framework/src/small/cert_framework_client_proxy.c @@ -94,6 +94,10 @@ static int32_t StartProc(IUnknown *iUnknown) return CERTMANAGER_FAIL; } CertmgrClientProxy *proxy = (CertmgrClientProxy *)iUnknown; + if (proxy == NULL) { + HILOGE("[StartProc] Get proxy failed."); + return CERTMANAGER_FAIL; + } int32_t ret = proxy->Invoke((IClientProxy *)proxy, CERT_FRAMEWORK_MSG_PROC, NULL, NULL, NULL); HILOGD("[StartProc] Invoke funcId = %d, ret = %d.", CERT_FRAMEWORK_MSG_PROC, ret); if (ret != CERTMANAGER_SUCCESS) { @@ -108,9 +112,13 @@ static int32_t QueryStatus(IUnknown *iUnknown, CertResultInfo *certResultInfo) if (iUnknown == NULL) { return CERTMANAGER_FAIL; } + CertmgrClientProxy *proxy = (CertmgrClientProxy *)iUnknown; + if (proxy == NULL) { + HILOGE("[QueryStatus] Get proxy failed."); + return CERTMANAGER_FAIL; + } ServiceRspMsg reply = {0}; reply.certResultInfo = certResultInfo; - CertmgrClientProxy *proxy = (CertmgrClientProxy *)iUnknown; int32_t ret = proxy->Invoke((IClientProxy *)proxy, CERT_FRAMEWORK_MSG_QUERY, NULL, &reply, CertClientQueryStatusCb); HILOGD("[QueryStatus] Invoke funcId = %d, ret = %d.", CERT_FRAMEWORK_MSG_QUERY, ret); if (ret != CERTMANAGER_SUCCESS) { @@ -135,6 +143,9 @@ static void *CreateClient(const char *service, const char *feature, uint32 size) } (void)memset_s(client, len, 0, len); CertmgrClientEntry *entry = (CertmgrClientEntry *)&client[size]; + if (entry == NULL) { + return NULL; + } entry->ver = ((uint16)SERVER_PROXY_VER | (uint16)DEFAULT_VERSION); entry->ref = 1; entry->iUnknown.QueryInterface = IUNKNOWN_QueryInterface; diff --git a/cert_mgr_service/services/core/BUILD.gn b/cert_mgr_service/services/core/BUILD.gn index 638bbfb83823500495d02dbcf55ad5e64249ddd1..2bd5ff474bc2ce786a74f0fe9c428be738f9c141 100644 --- a/cert_mgr_service/services/core/BUILD.gn +++ b/cert_mgr_service/services/core/BUILD.gn @@ -199,15 +199,15 @@ if (ohos_kernel_type == "liteos_m") { if (enable_cert_test_mock_network) { deps += [ - ":cert_mock_network_para", - ":ticket", - ":token", + #":cert_mock_network_para", + #":ticket", + #":token", ] } if (enable_cert_test_mock_device) { deps += [ - ":cert_mock_device_para", + #":cert_mock_device_para", ] } } diff --git a/cert_mgr_service/services/core/cert_entry.h b/cert_mgr_service/services/core/cert_entry.h index 2775a24b3531cb6fb66bb250a7c272447ea17726..dc81e3f600a0e84c08804019b9a4e35a11af59eb 100644 --- a/cert_mgr_service/services/core/cert_entry.h +++ b/cert_mgr_service/services/core/cert_entry.h @@ -17,6 +17,11 @@ #include +#ifdef __LITEOS_M__ +#include "cmsis_os2.h" +#include "ohos_init.h" +#endif + #ifdef __cplusplus #if __cplusplus extern "C" { diff --git a/xts/README.txt b/xts/README.txt new file mode 100644 index 0000000000000000000000000000000000000000..3e94d12a58323574da35ac11974702d978fe56af --- /dev/null +++ b/xts/README.txt @@ -0,0 +1,25 @@ +L0的xts:certmanager + +L1的xts:certmanager_lite +L1的xts使用: +1. 把certmanager_lite文件夹放到test/xts/acts路径下 + +2. 修改test/xts/acts/build_lite/BUILD.gn +2.1 在else if (ohos_kernel_type == "liteos_a") {}中增加 +"//test/xts/acts/certmanager_lite/certmanager_posix:ActsCertMgrTest", +2.2.在else if (ohos_kernel_type == "linux") {}中增加 +"//test/xts/acts/certmanager_lite/certmanager_posix:ActsCertMgrTest", + +3. 修改test/xts/acts/test_packages.gni +3.1. 在 _all_test_packages[]中增加 +"${ACTS_ROOT}/certmanager:certmanager" + +4. 修改test/xts/tools/build/utils.py +4.1. 在 _SUB_SYSTEM_LIST[]中增加 +"certmanager" + +5. 修改test/xts/tools/lite/build/utils.py +5.1. 在 _SUB_SYSTEM_LIST[]中增加 +"certmanager" +5.2. 在 _NO_FILTE_SUB_SYSTEM_LIST[]中增加 +"certmanager" diff --git a/xts/certmanager_lite/certmanager_posix/BUILD.gn b/xts/certmanager_lite/certmanager_posix/BUILD.gn new file mode 100644 index 0000000000000000000000000000000000000000..4476b0a36e09b82b8bfc684165a79979ffd257b2 --- /dev/null +++ b/xts/certmanager_lite/certmanager_posix/BUILD.gn @@ -0,0 +1,45 @@ +# Copyright (c) 2020-2021 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//test/xts/tools/lite/build/suite_lite.gni") + +hcpptest_suite("ActsCertMgrTest") { + suite_name = "acts" + sources = [ + "src/certmgrTest.cpp", + ] + + include_dirs = [ + "//base/cert_mgr_service/common/include", + "//base/cert_mgr_service/interfaces/include", + "//base/cert_mgr_service/framework/include/small", + "//base/cert_mgr_service/services/core/include", + "//base/cert_mgr_service/services/core/include/adapter", + "//base/cert_mgr_service/services/core/include/utils", + "//base/cert_mgr_service/test/unittest/src", + ] + + deps = [ + "//base/cert_mgr_service/framework:certclient", + "//base/cert_mgr_service/services/core:cert_mgr_core", + "//foundation/systemabilitymgr/samgr_lite/samgr:samgr", + ] + + cflags = ["-Wno-error"] + + ldflags = [ + "-lstdc++", + "-lm", + "-lpthread", + ] +} \ No newline at end of file diff --git a/xts/certmanager_lite/certmanager_posix/Test.json b/xts/certmanager_lite/certmanager_posix/Test.json new file mode 100644 index 0000000000000000000000000000000000000000..c8c7800a18fc70de0fc5d677cbfd023918c5c222 --- /dev/null +++ b/xts/certmanager_lite/certmanager_posix/Test.json @@ -0,0 +1,28 @@ +{ + "description": "Config for certmgrtest test cases", + "environment": [ + { + "type": "device", + "label": "ipcamera" + } + ], + "kits": [ + { + "type": "MountKit", + "server": "NfsServer", + "mount": [ + { + "source": "testcases/certmanager", + "target": "/test_root/certmanager" + },{ + "source": "resource/certmanager", + "target": "/test_root/certmanager" + } + ] + } + ], + "driver": { + "type": "CppTestLite", + "execute": "/test_root/certmanager/ActsCertMgrTest.bin" + } +} \ No newline at end of file diff --git a/xts/certmanager_lite/certmanager_posix/src/certmgrTest.cpp b/xts/certmanager_lite/certmanager_posix/src/certmgrTest.cpp new file mode 100644 index 0000000000000000000000000000000000000000..898826124b9d0af3ceb7d482b9aa02937e5ea6ef --- /dev/null +++ b/xts/certmanager_lite/certmanager_posix/src/certmgrTest.cpp @@ -0,0 +1,1824 @@ +/* + * Copyright (c) 2020-2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include + +#include "gtest/gtest.h" +#include "cert_error.h" +#include "cert_type.h" +#include "cert_adapter.h" +#include "cert_utils_file.h" +#include "cert_mock.h" +#include "cert_manager_interface.h" + +using namespace std; +using namespace testing::ext; + +class CertMgrTestSuite: public testing::Test { +protected: + // SetUpTestCase:测试套预置动作,在第一个TestCase之前执行 + static void SetUpTestCase(void) + { + printf("==================== [ CertMgr TEST Start] ==========================\n\n"); + } + // TearDownTestCase:测试套清理动作,在最后一个TestCase之后执行 + static void TearDownTestCase(void) + { + printf("==================== [ CertMgr TEST End] ==========================\n\n"); + } + // 用例的预置动作 + virtual void SetUp(){} + // 用例的清理动作 + virtual void TearDown(){} +}; + +/** + * common create file + */ +static void CreateMockFile(void) +{ + // 创建文件 + CreateFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME); + CreateFile(CERT_MOCK_DATA_PATH, CERT_MOCK_DEVICE_PARA_FILE_NAME); + CreateFile(CERT_MOCK_DATA_PATH, CERT_MOCK_NETWORK_PARA_FILE_NAME); +} + +/** + * common delete file + */ +static void DeleteMockFile(void) +{ + // input testcase teardown step,teardown invoked after each testcases + if (IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME)) { + DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME); + } + + if (IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_DEVICE_PARA_FILE_NAME)) { + DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_DEVICE_PARA_FILE_NAME); + } + + if (IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_NETWORK_PARA_FILE_NAME)) { + DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_NETWORK_PARA_FILE_NAME); + } + + if (IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME)) { + DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME); + } + if (IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME)) { + DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME); + } + if (IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_TICKET_FILE_NAME)) { + DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TICKET_FILE_NAME); + } +} + +/** + * common wtrite overDue authStatus + */ +static int32_t WtriteOverDueAuthStatus(void) +{ + const char *auth_status = ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2MDc5MzAxMzQ\ +zODMsImtpdFBvbGljeSI6W10sInNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MTh\ +CRjBDNzgzNEE5M0M3QTVCRjRENTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4\ +yLjAuMCgpL29ob3NUZXN0L2RlZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ."; + int32_t ret = WriteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, auth_status, strlen(auth_status)); + return ret; +} + +// HWTEST_F(CertMgrTestSuite, getCertStatusTest, Function | MediumTest | Level1) { +// int32_t ret = StartCertTask(); +// EXPECT_EQ(ret, CERT_OK) << "StartCertTask Fail"; +// sleep(3); + +// CertResultInfo certResultInfo = { 0 }; +// certResultInfo.ticket = NULL; + +// ret = GetCertStatus(&certResultInfo); +// EXPECT_EQ(ret, CERT_OK) << "GetCertStatus Fail"; +// EXPECT_EQ(certResultInfo.authResult, 0) << "Wrong authResult"; +// EXPECT_EQ(certResultInfo.softwareResult, 0) << "Wrong softwareResult"; +// EXPECT_STREQ(certResultInfo.ticket, nullptr) << "ticket is null"; +// GTEST_LOG_(INFO) << "ticket:" << certResultInfo.ticket << endl; +// free(certResultInfo.ticket); +// certResultInfo.ticket = NULL; +// } + + +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase001, Function | MediumTest | Level1) +{ +// 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + + int32_t ret = InitMockData(&certMockData); + ASSERT_EQ(ret, CERT_OK) << "InitMockData Fail"; + + int32_t result = StartCertTask(); + ASSERT_EQ(result, CERT_OK) << "StartCertTask Fail"; + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_002 + * @tc.name : testStartCertTaskCase002 + * @tc.desc : Verify that the token is refreshed properly, generating a ticket, authStatus, flag + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase002, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + + int32_t ret = InitMockData(&certMockData); + ASSERT_EQ(ret, CERT_OK) << "InitMockData Failed"; + + int32_t result = StartCertTask(); + ASSERT_EQ(result, CERT_OK) << "StartCertTask Fail"; + + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_EQ(ret, CERT_OK) << "ReadFile Failed"; + ASSERT_STREQ(token, CERT_MOCK_TOKEN) << "token wrong"; + + bool flag = IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME); + flag = IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_TICKET_FILE_NAME); + flag = IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME); + ASSERT_TRUE(flag) << "InitMockData Failed"; + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_003 + * @tc.name : testStartCertTaskCase003 + * @tc.desc : Verify that the authentication is successful, replace the auth_status with the inconsistent versionID, and then perform the authentication successfully + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase003, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_EQ(ret, CERT_OK) << "InitMockData Failed"; + + int32_t result = StartCertTask(); + ASSERT_EQ(result, CERT_OK) << "StartCertTask Failed"; + // 认证完之后,更换version_id 不一致的auth_status + const char *auth_status = ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQ\ +zODMsImtpdFBvbGljeSI6W10sInNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MT\ +hCRjBDNzgzNEE5M0M3QTVCRjRENTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktM\ +i4yLjAuMCgpL29ob3NUZXN0L2RlZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQxIn0."; + WriteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, auth_status, strlen(auth_status)); + + // 再次执行认证 + result = StartCertTask(); + ASSERT_EQ(result, CERT_OK) << "StartCertTask Failed"; + const int len = strlen(auth_status) + 1; + char afterAuth[len]; + (void)memset_s(afterAuth, len, 0, len); + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, afterAuth, sizeof(afterAuth)); + ASSERT_EQ(ret, CERT_OK); + ASSERT_TRUE(auth_status != afterAuth); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_004 + * @tc.name : testStartCertTaskCase004 + * @tc.desc : After successful certification, replace the auth_status that has expired, and the certification is successful again + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase004, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + int32_t result = StartCertTask(); + ASSERT_TRUE(result == CERT_OK); + // 认证完之后,更换已超期的auth_status + const char *auth_status = ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2MDc5MzAxMzQ\ +zODMsImtpdFBvbGljeSI6W10sInNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MT\ +hCRjBDNzgzNEE5M0M3QTVCRjRENTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi\ +4yLjAuMCgpL29ob3NUZXN0L2RlZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ."; + ret = WriteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, auth_status, strlen(auth_status)); + ASSERT_TRUE(ret == CERT_OK); + result = StartCertTask(); + ASSERT_EQ(result, CERT_OK); + const int len = strlen(auth_status) + 1; + char afterAuth[len]; + (void)memset_s(afterAuth, len, 0, len); + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, afterAuth, sizeof(afterAuth)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_TRUE(auth_status != afterAuth); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_005 + * @tc.name : testStartCertTaskCase005 + * @tc.desc : The first authentication fails, and the second authentication succeeds + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase005, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 9999, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + const char* auth_status = ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2MDc5MzAxMzQ\ + zODMsImtpdFBvbGljeSI6W10sInNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MTh\ + CRjBDNzgzNEE5M0M3QTVCRjRENTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4\ + yLjAuMCgpL29ob3NUZXN0L2RlZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ."; + ret = WriteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, auth_status, strlen(auth_status)); + ASSERT_TRUE(ret == CERT_OK); + CertNetworkMockData networkMockData = { + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + result = StartCertTask(); + ASSERT_EQ(result, CERT_OK); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_006 + * @tc.name : testStartCertTaskCase006 + * @tc.desc : Set the errcode returned by the device authentication to get the challenge value to 9999, check whether the authentication fails and do not retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase006, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 9999, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否不重试 期望是false + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_007 + * @tc.name : testStartCertTaskCase007 + * @tc.desc : Set the errcode returned by the device authentication to get the challenge value to 4999, and check whether the authentication fails to retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase007, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 4999, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否重试 期望是TRUE + ASSERT_TRUE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_008 + * @tc.name : testStartCertTaskCase008 + * @tc.desc : Set the errcode returned by the authentication device to 4999 to check whether the authentication failed to retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase008, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 4999}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否重试 期望是TRUE + ASSERT_TRUE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_009 + * @tc.name : testStartCertTaskCase009 + * @tc.desc : Set the errcode returned by the device authentication to 14000, check the authentication failure and do not retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase009, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 14000}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否不重试 期望是false + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_010 + * @tc.name : testStartCertTaskCase010 + * @tc.desc : Set the errcode returned for device authentication to 14001, check authentication failed and try again + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase010, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 14001}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否重试 期望是TRUE + ASSERT_TRUE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_011 + * @tc.name : testStartCertTaskCase011 + * @tc.desc : Set the errcode returned by the device authentication to 14002, check the authentication failure and do not retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase011, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 14002}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否不重试 期望是FALSE + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_012 + * @tc.name : testStartCertTaskCase012 + * @tc.desc : Set the errcode returned for device authentication to 14004, check that the authentication failed and did not retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase012, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 14004}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否不重试 期望是FALSE + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_013 + * @tc.name : testStartCertTaskCase013 + * @tc.desc : Set the errcode returned by the device authentication to 30002, check the authentication failure and do not retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase013, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 30002}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否不重试 期望是FALSE + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_014 + * @tc.name : testStartCertTaskCase014 + * @tc.desc : Set the errcode returned by the device authentication to 30003, check the authentication failure and do not retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase014, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 30003}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否不重试 期望是FALSE + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_015 + * @tc.name : testStartCertTaskCase015 + * @tc.desc : Set the errcode returned by the device authentication to 30004, check the authentication failure and do not retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase015, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 30004}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否不重试 期望是FALSE + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_016 + * @tc.name : testStartCertTaskCase016 + * @tc.desc : Set the errcode returned by authentication activation to 4999, check the authentication failure without retrying, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase016, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 4999}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 检查是否重试 期望是TRUE + ASSERT_TRUE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_017 + * @tc.name : testStartCertTaskCase017 + * @tc.desc : Set the errcode returned by the authentication activation to 4999, check that the token updates the ticket and auth_status not updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase017, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 4999}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + ASSERT_FALSE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME)); + ASSERT_FALSE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_TICKET_FILE_NAME)); + // 检查是否重试 期望是TRUE + ASSERT_TRUE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_018 + * @tc.name : testStartCertTaskCase018 + * @tc.desc : Set the errcode returned by the authentication activation to 14001, check the authentication failure retry, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase018, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 14001}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 检查是否重试 期望是TRUE + ASSERT_TRUE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_019 + * @tc.name : testStartCertTaskCase019 + * @tc.desc : Set the errcode returned by the authentication activation to 14002, check the authentication failure without retrying, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase019, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 14002}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 检查是否重试 期望是FALSE + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_020 + * @tc.name : testStartCertTaskCase020 + * @tc.desc : Set the errcode returned by the authentication activation to 30015, check the authentication failure and do not retry, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase020, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 30015}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 检查是否重试 期望是FALSE + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_021 + * @tc.name : testStartCertTaskCase021 + * @tc.desc : Set the errcode returned by the device reset to 4999, token updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase021, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 4999}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + ret = CreateFile(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 检查是否生成reset_flag标签 期望是TRUE + ASSERT_TRUE(CertIsResetFlagExist()); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_022 + * @tc.name : testStartCertTaskCase022 + * @tc.desc : Set the errcode returned by the device reset to 4999, remove reset_flag, check not to generate reset_flag, update token + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase022, Function | MediumTest | Level1) +{ + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + bool flag = DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME); + ASSERT_TRUE(flag); + char beforeToken[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, beforeToken, sizeof(beforeToken)); + ASSERT_TRUE(ret == CERT_OK); + CertNetworkMockData networkMockData = { + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 4999}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + ret = WtriteOverDueAuthStatus(); + ASSERT_TRUE(ret == CERT_OK); + result = StartCertTask(); + ASSERT_EQ(result, CERT_OK); + char afterToken[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, afterToken, sizeof(afterToken)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_TRUE(beforeToken != afterToken); + ASSERT_FALSE(CertIsResetFlagExist()); + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_023 + * @tc.name : testStartCertTaskCase023 + * @tc.desc : Set the errcode returned by the device reset to 4999, check that the reset_flag is not generated, and update token + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase023, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 4999}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + ASSERT_FALSE(CertIsResetFlagExist()); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_024 + * @tc.name : testStartCertTaskCase024 + * @tc.desc : Set the errcode returned by the device reset to 14000, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase024, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 14000}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_025 + * @tc.name : testStartCertTaskCase025 + * @tc.desc : Set the errcode returned by the device reset to 14001, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase025, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 14001}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_026 + * @tc.name : testStartCertTaskCase026 + * @tc.desc : Set the errcode returned by the device reset to 14002, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase026, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 14002}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_027 + * @tc.name : testStartCertTaskCase027 + * @tc.desc : Set the errcode returned by the device reset to 14004, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase027, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 14004}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_028 + * @tc.name : testStartCertTaskCase028 + * @tc.desc : Set the errcode returned by the device reset to 15003, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase028, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 15003}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_029 + * @tc.name : testStartCertTaskCase029 + * @tc.desc : Verify that the primary process does not exceed 30S at one time + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase029, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 获取认证前时间戳 + time_t beforeTimet; + time(&beforeTimet); + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + // 获取认证后时间戳 + time_t afterTimet; + time(&afterTimet); + ASSERT_TRUE(difftime(afterTimet, beforeTimet) <= 30); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_030 + * @tc.name : testStartCertTaskCase030 + * @tc.desc : Abnormal packet attack, set authDevice to return authStatus to abc, authentication failed + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase030, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", "abc", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_FALSE(CERT_OK == result); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_031 + * @tc.name : testStartCertTaskCase031 + * @tc.desc : The local autoResult preset is 14004 and triggers the authentication token to update normally + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase031, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 预置auth_status 本地AuthResult为14004 + const char *auth_status = ".eyJhdXRoUmVzdWx0IjoxNDAwNCwiYXV0aFR5cGUiOiJUT0tFTl9FTkFCTEUiLCJleHBpcmVUaW1lIjoxNjc3OTM\ +wMTM0MzgzLCJraXRQb2xpY3kiOltdLCJzb2Z0d2FyZVJlc3VsdCI6MCwidWRpZCI6IjFBQUE4ODk2OTBFRjMzRThEMTg2NkYzMEU4MEExM0ExOTEzNE\ +E3NTE4QkYwQzc4MzRBOTNDN0E1QkY0RDUxRjkiLCJ2ZXJzaW9uSWQiOiJkZWZhdWx0L2h1YS13ZWkvSHVhV2VpVGVzdC9kZWZhdWx0L09wZW5IYXJtb\ +255LTIuMi4wLjAoKS9vaG9zVGVzdC9kZWZhdWx0LzgvZGVmYXVsdC9kZWZhdWx0In0."; + if (!IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME)) { + ret = CreateFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME); + ASSERT_TRUE(ret == CERT_OK); + } + ret = WriteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, auth_status, strlen(auth_status)); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_032 + * @tc.name : testStartCertTaskCase032 + * @tc.desc : Check whether the second authentication is successful when the first token write fails + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase032, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 14001}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_FALSE(CERT_OK == result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 第二次预置数据,currentTime改为1651234567890 + CertNetworkMockData networkMockData = { + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + result = StartCertTask(); + ASSERT_EQ(result, CERT_OK); + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_033 + * @tc.name : testStartCertTaskCase033 + * @tc.desc : Check whether the first ticket, authStatus write fails, and whether the second authentication is successful + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase033, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 14001}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_FALSE(CERT_OK == result); + ASSERT_FALSE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_TICKET_FILE_NAME)); + ASSERT_FALSE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME)); + + // 第二次预置数据 + CertNetworkMockData networkMockData = { + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + result = StartCertTask(); + ASSERT_EQ(result, CERT_OK); + ASSERT_TRUE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_TICKET_FILE_NAME)); + ASSERT_TRUE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_034 + * @tc.name : testStartCertTaskCase034 + * @tc.desc : Check whether the second authentication is successfully generated when the first reset_flag fails to write + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase034, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 14001}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + ASSERT_FALSE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME)); + + // 第二次预置数据 + CertNetworkMockData networkMockData = { + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2OTc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + result = StartCertTask(); + ASSERT_EQ(result, CERT_OK); + ASSERT_TRUE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_035 + * @tc.name : testStartCertTaskCase035 + * @tc.desc : The authentication result is overdue, and the network is abnormal when it is re-authenticated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase035, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + char beforeAuthStatus[AUTH_SATUS_LEN] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, beforeAuthStatus, sizeof(beforeAuthStatus)); + ASSERT_TRUE(ret == CERT_OK); + // 第二次预置数据 + CertNetworkMockData networkMockData = { + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2OTc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 14001}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char afterAuthStatus[AUTH_SATUS_LEN] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, afterAuthStatus, sizeof(afterAuthStatus)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(beforeAuthStatus, afterAuthStatus); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_036 + * @tc.name : testStartCertTaskCase036 + * @tc.desc : Simulate the recovery of the appearance settings and verify that the main process is normal + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase036, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + bool flag = IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME); + flag = IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_TICKET_FILE_NAME); + flag = IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME); + ASSERT_TRUE(flag); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_037 + * @tc.name : testStartCertTaskCase037 + * @tc.desc : The device is reset, the unbinding is successful, and the re-authentication is successful + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase037, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + bool flag = DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME); + ASSERT_TRUE(flag); + + // 重新预置networkMockData + CertNetworkMockData networkMockData = { + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2OTc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + flag = IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME); + ASSERT_TRUE(flag); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_038 + * @tc.name : testStartCertTaskCase038 + * @tc.desc : Authentication success, query whether the authentication result interface is successful + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase038, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + + + CertResultInfo certResultInfo = { 0 }; + certResultInfo.authResult = 3; + certResultInfo.softwareResult = 3; + certResultInfo.ticket = NULL; + int32_t res = GetCertStatus(&certResultInfo); + + ASSERT_EQ(CERT_OK, res); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_039 + * @tc.name : testStartCertTaskCase039 + * @tc.desc : Authentication success, clear the authentication results, and query the authentication results interface + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase039, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + if (IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME)) { + result = DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME); + ASSERT_TRUE(ret == CERT_OK); + } + + // 查询接口 + CertResultInfo certResultInfo = { 0 }; + certResultInfo.authResult = 3; + certResultInfo.softwareResult = 3; + certResultInfo.ticket = NULL; + int32_t res = GetCertStatus(&certResultInfo); + + ASSERT_EQ(CERT_ERR, res); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_040 + * @tc.name : testStartCertTaskCase040 + * @tc.desc : Authentication failed, query the authentication result interface + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase040, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 4999}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_FALSE(CERT_OK == result); + + CertResultInfo certResultInfo = { 0 }; + certResultInfo.authResult = 3; + certResultInfo.softwareResult = 3; + certResultInfo.ticket = NULL; + int32_t res = GetCertStatus(&certResultInfo); + + ASSERT_EQ(CERT_ERR, res); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_041 + * @tc.name : testStartCertTaskCase041 + * @tc.desc : The first authentication is successful, the second authentication fails, and the authentication result interface is queried + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase041, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + // 重新预置networkMockData + CertNetworkMockData networkMockData = { + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2OTc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 4999}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 再次认证 + result = StartCertTask(); + ASSERT_FALSE(CERT_OK == result); + + CertResultInfo certResultInfo = { 0 }; + certResultInfo.authResult = 3; + certResultInfo.softwareResult = 3; + certResultInfo.ticket = NULL; + int32_t res = GetCertStatus(&certResultInfo); + + ASSERT_EQ(CERT_OK, res); + // 重置环境 + DeleteMockFile(); +} \ No newline at end of file