117fd14ceSopenharmony_ci/*
217fd14ceSopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
317fd14ceSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
417fd14ceSopenharmony_ci * you may not use this file except in compliance with the License.
517fd14ceSopenharmony_ci * You may obtain a copy of the License at
617fd14ceSopenharmony_ci *
717fd14ceSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
817fd14ceSopenharmony_ci *
917fd14ceSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1017fd14ceSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1117fd14ceSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1217fd14ceSopenharmony_ci * See the License for the specific language governing permissions and
1317fd14ceSopenharmony_ci * limitations under the License.
1417fd14ceSopenharmony_ci */
1517fd14ceSopenharmony_ci
1617fd14ceSopenharmony_ci#include "devauthfunc_fuzzer.h"
1717fd14ceSopenharmony_ci
1817fd14ceSopenharmony_ci#include <cstddef>
1917fd14ceSopenharmony_ci#include <cstdint>
2017fd14ceSopenharmony_ci#include <string>
2117fd14ceSopenharmony_ci
2217fd14ceSopenharmony_ci#include <cinttypes>
2317fd14ceSopenharmony_ci#include <unistd.h>
2417fd14ceSopenharmony_ci#include "account_module_defines.h"
2517fd14ceSopenharmony_ci#include "alg_loader.h"
2617fd14ceSopenharmony_ci#include "common_defs.h"
2717fd14ceSopenharmony_ci#include "device_auth.h"
2817fd14ceSopenharmony_ci#include "device_auth_defines.h"
2917fd14ceSopenharmony_ci#include "device_auth_ext.h"
3017fd14ceSopenharmony_ci#include "hc_dev_info_mock.h"
3117fd14ceSopenharmony_ci#include "json_utils_mock.h"
3217fd14ceSopenharmony_ci#include "json_utils.h"
3317fd14ceSopenharmony_ci#include "protocol_task_main_mock.h"
3417fd14ceSopenharmony_ci#include "securec.h"
3517fd14ceSopenharmony_ci
3617fd14ceSopenharmony_cinamespace OHOS {
3717fd14ceSopenharmony_ci#define TEST_APP_ID "TestAppId"
3817fd14ceSopenharmony_ci#define TEST_APP_ID2 "TestAppId2"
3917fd14ceSopenharmony_ci#define TEST_REQ_ID 123
4017fd14ceSopenharmony_ci#define TEST_REQ_ID2 321
4117fd14ceSopenharmony_ci#define TEST_REQ_ID3 132
4217fd14ceSopenharmony_ci#define TEST_REQ_ID4 213
4317fd14ceSopenharmony_ci#define TEST_GROUP_NAME "TestGroup"
4417fd14ceSopenharmony_ci#define TEST_AUTH_ID "TestAuthId"
4517fd14ceSopenharmony_ci#define TEST_AUTH_ID2 "TestAuthId2"
4617fd14ceSopenharmony_ci#define TEST_AUTH_ID3 "TestAuthId3"
4717fd14ceSopenharmony_ci#define TEST_UDID "TestUdid"
4817fd14ceSopenharmony_ci#define TEST_UDID2 "TestUdid2"
4917fd14ceSopenharmony_ci#define TEST_QUERY_PARAMS "bac"
5017fd14ceSopenharmony_ci#define TEST_PIN_CODE "123456"
5117fd14ceSopenharmony_ci#define TEST_UDID_CLIENT "5420459D93FE773F9945FD64277FBA2CAB8FB996DDC1D0B97676FBB1242B3930"
5217fd14ceSopenharmony_ci#define TEST_UDID_SERVER "52E2706717D5C39D736E134CC1E3BE1BAA2AA52DB7C76A37C749558BD2E6492C"
5317fd14ceSopenharmony_ci#define TEST_GROUP_ID "E2EE6F830B176B2C96A9F99BFAE2A61F5D1490B9F4A090E9D8C2874C230C7C21"
5417fd14ceSopenharmony_ci#define TEST_GROUP_ID2 "F2AA208B1E010542B20A34B03B4B6289EA7C7F6DFE97DA2E370348B826682D3D"
5517fd14ceSopenharmony_ci#define TEST_GROUP_ID3 "4269DC28B639681698809A67EDAD08E39F207900038F91FEF95DD042FE2874E4"
5617fd14ceSopenharmony_ci#define TEST_GROUP_ID4 "6B7B805962B8EB8275D73128BFDAA7ECD755A2EC304E36543941874A277FA75F"
5717fd14ceSopenharmony_ci#define TEST_USER_ID_AUTH "4269DC28B639681698809A67EDAD08E39F207900038F91FEF95DD042FE2874E4"
5817fd14ceSopenharmony_ci#define TEST_USER_ID "4269DC28B639681698809A67EDAD08E39F207900038F91FEF95DD042FE2874E4"
5917fd14ceSopenharmony_ci#define TEST_AUTH_CODE "37364761534f454d33567a73424e794f33573330507069434b31676f7254706b"
6017fd14ceSopenharmony_ci#define TEST_AUTH_CODE2 "2f7562744654535564586e665467546b322b4b506b65626373466f48766a4335"
6117fd14ceSopenharmony_ci#define TEST_AUTH_CODE3 "1234567812345678123456781234567812345678123456781234567812345678"
6217fd14ceSopenharmony_ci#define TEST_AUTH_TOKEN3 "10F9F0576E61730193D2052B7F771887124A68F1607EFCF7796C1491F834CD92"
6317fd14ceSopenharmony_ci#define TEST_DEV_AUTH_SLEEP_TIME 50000
6417fd14ceSopenharmony_ci#define TEST_DEV_AUTH_SLEEP_TIME2 600000
6517fd14ceSopenharmony_ci#define TEST_TRANSMIT_DATA_LEN 2048
6617fd14ceSopenharmony_ci#define TEST_HKS_MAIN_DATA_PATH "/data/service/el1/public/huks_service/tmp/+0+0+0+0"
6717fd14ceSopenharmony_ci#define TEST_DEV_AUTH_TEMP_KEY_PAIR_LEN 32
6817fd14ceSopenharmony_cistatic const int32_t TEST_AUTH_OS_ACCOUNT_ID = 100;
6917fd14ceSopenharmony_cistatic const int TEST_DEV_AUTH_BUFFER_SIZE = 128;
7017fd14ceSopenharmony_cistatic const char *CREATE_PARAMS = "{\"groupName\":\"TestGroup\",\"deviceId\":\"TestAuthId\",\"groupType\":256,\"group"
7117fd14ceSopenharmony_ci    "Visibility\":-1,\"userType\":0,\"expireTime\":-1}";
7217fd14ceSopenharmony_cistatic const char *CREATE_PARAMS2 = "{\"groupType\":1282,\"userId\":\"4269DC28B639681698809A67EDAD08E39F20790"
7317fd14ceSopenharmony_ci    "0038F91FEF95DD042FE2874E4\",\"peerUserId\":\"6B7B805962B8EB8275D73128BFDAA7ECD755A2EC304E36543941874A277FA75F\"}";
7417fd14ceSopenharmony_cistatic const char *DISBAND_PARAMS =
7517fd14ceSopenharmony_ci    "{\"groupId\":\"E2EE6F830B176B2C96A9F99BFAE2A61F5D1490B9F4A090E9D8C2874C230C7C21\"}";
7617fd14ceSopenharmony_cistatic const char *DISBAND_PARAMS2 =
7717fd14ceSopenharmony_ci    "{\"groupId\":\"4269DC28B639681698809A67EDAD08E39F207900038F91FEF95DD042FE2874E4\"}";
7817fd14ceSopenharmony_cistatic const char *DISBAND_PARAMS3 =
7917fd14ceSopenharmony_ci    "{\"groupId\":\"FF52352E8082CE2B34DEF7A55F40BA694F64D5200ADA86686B862772F3517A84\"}";
8017fd14ceSopenharmony_cistatic const char *ADD_PARAMS =
8117fd14ceSopenharmony_ci    "{\"groupId\":\"E2EE6F830B176B2C96A9F99BFAE2A61F5D1490B9F4A090E9D8C2874C230C7C21\","
8217fd14ceSopenharmony_ci    "\"groupType\":256,\"pinCode\":\"123456\"}";
8317fd14ceSopenharmony_cistatic const char *AUTH_PARAMS = "{\"peerConnDeviceId\":\"52E2706717D5C39D736E134CC1E3BE1BAA2AA52DB7C76A37C"
8417fd14ceSopenharmony_ci    "749558BD2E6492C\",\"servicePkgName\":\"TestAppId\",\"isClient\":true}";
8517fd14ceSopenharmony_cistatic const char *ADD_MULTI_PARAMS =
8617fd14ceSopenharmony_ci    "{\"groupType\":1,\"groupId\":\"4269DC28B639681698809A67EDAD08E39F207900038F91FEF95DD042FE2874E4\","
8717fd14ceSopenharmony_ci    "\"deviceList\":[{\"deviceId\":\"TestAuthId2\",\"udid\":\"TestUdid2\","
8817fd14ceSopenharmony_ci    "\"userId\":\"4269DC28B639681698809A67EDAD08E39F207900038F91FEF95DD042FE2874E4\","
8917fd14ceSopenharmony_ci    "\"credential\":{\"credentialType\":1,"
9017fd14ceSopenharmony_ci    "\"authCode\":\"37364761534f454d33567a73424e794f33573330507069434b31676f7254706b\"}},"
9117fd14ceSopenharmony_ci    "{\"deviceId\":\"TestAuthId3\",\"udid\":\"TestUdid3\","
9217fd14ceSopenharmony_ci    "\"userId\":\"4269DC28B639681698809A67EDAD08E39F207900038F91FEF95DD042FE2874E4\","
9317fd14ceSopenharmony_ci    "\"credential\":{\"credentialType\":1,"
9417fd14ceSopenharmony_ci    "\"authCode\":\"2f7562744654535564586e665467546b322b4b506b65626373466f48766a4335\"}}]}";
9517fd14ceSopenharmony_cistatic const char *DEL_MULTI_PARAMS =
9617fd14ceSopenharmony_ci    "{\"groupType\":1,\"groupId\":\"4269DC28B639681698809A67EDAD08E39F207900038F91FEF95DD042FE2874E4\","
9717fd14ceSopenharmony_ci    "\"deviceList\":[{\"deviceId\":\"TestAuthId2\"},{\"deviceId\":\"TestAuthId3\"}]}";
9817fd14ceSopenharmony_cistatic const char *DELETE_PARAMS =
9917fd14ceSopenharmony_ci    "{\"groupId\":\"E2EE6F830B176B2C96A9F99BFAE2A61F5D1490B9F4A090E9D8C2874C230C7C21\",\"deleteId\":\"TestAuthId2\"}";
10017fd14ceSopenharmony_cistatic const char *GET_REGISTER_INFO_PARAMS =
10117fd14ceSopenharmony_ci    "{\"version\":\"1.0.0\",\"deviceId\":\"TestAuthId\","
10217fd14ceSopenharmony_ci    "\"userId\":\"4269DC28B639681698809A67EDAD08E39F207900038F91FEF95DD042FE2874E4\"}";
10317fd14ceSopenharmony_cistatic const char *QUERY_PARAMS = "{\"groupOwner\":\"TestAppId\"}";
10417fd14ceSopenharmony_cistatic const char *QUERY_PK_PARAMS = "{\"udid\":\"52E2706717D5C39D736E134CC1E3BE1BAA2AA52DB7C76A37C749558BD"
10517fd14ceSopenharmony_ci    "2E6492C\",\"isSelfPk\":true}";
10617fd14ceSopenharmony_cistatic const char *QUERY_PK_PARAMS2 = "{\"udid\":\"52E2706717D5C39D736E134CC1E3BE1BAA2AA52DB7C76A37C749558BD"
10717fd14ceSopenharmony_ci    "2E6492C\",\"isSelfPk\":false}";
10817fd14ceSopenharmony_ci
10917fd14ceSopenharmony_cienum AsyncStatus {
11017fd14ceSopenharmony_ci    ASYNC_STATUS_WAITING = 0,
11117fd14ceSopenharmony_ci    ASYNC_STATUS_TRANSMIT = 1,
11217fd14ceSopenharmony_ci    ASYNC_STATUS_FINISH = 2,
11317fd14ceSopenharmony_ci    ASYNC_STATUS_ERROR = 3
11417fd14ceSopenharmony_ci};
11517fd14ceSopenharmony_ci
11617fd14ceSopenharmony_cistatic AsyncStatus volatile g_asyncStatus;
11717fd14ceSopenharmony_cistatic uint8_t g_transmitData[2048] = { 0 };
11817fd14ceSopenharmony_cistatic uint32_t g_transmitDataLen = 0;
11917fd14ceSopenharmony_ci
12017fd14ceSopenharmony_cistatic bool OnTransmit(int64_t requestId, const uint8_t *data, uint32_t dataLen)
12117fd14ceSopenharmony_ci{
12217fd14ceSopenharmony_ci    if (memcpy_s(g_transmitData, TEST_TRANSMIT_DATA_LEN, data, dataLen) != EOK) {
12317fd14ceSopenharmony_ci        return false;
12417fd14ceSopenharmony_ci    }
12517fd14ceSopenharmony_ci    g_transmitDataLen = dataLen;
12617fd14ceSopenharmony_ci    g_asyncStatus = ASYNC_STATUS_TRANSMIT;
12717fd14ceSopenharmony_ci    return true;
12817fd14ceSopenharmony_ci}
12917fd14ceSopenharmony_ci
13017fd14ceSopenharmony_cistatic void OnSessionKeyReturned(int64_t requestId, const uint8_t *sessionKey, uint32_t sessionKeyLen)
13117fd14ceSopenharmony_ci{
13217fd14ceSopenharmony_ci    (void)requestId;
13317fd14ceSopenharmony_ci    (void)sessionKey;
13417fd14ceSopenharmony_ci    (void)sessionKeyLen;
13517fd14ceSopenharmony_ci    return;
13617fd14ceSopenharmony_ci}
13717fd14ceSopenharmony_ci
13817fd14ceSopenharmony_cistatic void OnFinish(int64_t requestId, int operationCode, const char *authReturn)
13917fd14ceSopenharmony_ci{
14017fd14ceSopenharmony_ci    g_asyncStatus = ASYNC_STATUS_FINISH;
14117fd14ceSopenharmony_ci}
14217fd14ceSopenharmony_ci
14317fd14ceSopenharmony_cistatic void OnError(int64_t requestId, int operationCode, int errorCode, const char *errorReturn)
14417fd14ceSopenharmony_ci{
14517fd14ceSopenharmony_ci    g_asyncStatus = ASYNC_STATUS_ERROR;
14617fd14ceSopenharmony_ci}
14717fd14ceSopenharmony_ci
14817fd14ceSopenharmony_cistatic char *OnBindRequest(int64_t requestId, int operationCode, const char* reqParam)
14917fd14ceSopenharmony_ci{
15017fd14ceSopenharmony_ci    CJson *json = CreateJson();
15117fd14ceSopenharmony_ci    AddIntToJson(json, FIELD_CONFIRMATION, REQUEST_ACCEPTED);
15217fd14ceSopenharmony_ci    AddIntToJson(json, FIELD_OS_ACCOUNT_ID, TEST_AUTH_OS_ACCOUNT_ID);
15317fd14ceSopenharmony_ci    AddStringToJson(json, FIELD_PIN_CODE, TEST_PIN_CODE);
15417fd14ceSopenharmony_ci    AddStringToJson(json, FIELD_DEVICE_ID, TEST_AUTH_ID2);
15517fd14ceSopenharmony_ci    char *returnDataStr = PackJsonToString(json);
15617fd14ceSopenharmony_ci    FreeJson(json);
15717fd14ceSopenharmony_ci    return returnDataStr;
15817fd14ceSopenharmony_ci}
15917fd14ceSopenharmony_ci
16017fd14ceSopenharmony_cistatic char *OnAuthRequest(int64_t requestId, int operationCode, const char* reqParam)
16117fd14ceSopenharmony_ci{
16217fd14ceSopenharmony_ci    CJson *json = CreateJson();
16317fd14ceSopenharmony_ci    AddIntToJson(json, FIELD_CONFIRMATION, REQUEST_ACCEPTED);
16417fd14ceSopenharmony_ci    AddIntToJson(json, FIELD_OS_ACCOUNT_ID, TEST_AUTH_OS_ACCOUNT_ID);
16517fd14ceSopenharmony_ci    AddStringToJson(json, FIELD_PEER_CONN_DEVICE_ID, TEST_UDID_CLIENT);
16617fd14ceSopenharmony_ci    AddStringToJson(json, FIELD_SERVICE_PKG_NAME, TEST_APP_ID);
16717fd14ceSopenharmony_ci    char *returnDataStr = PackJsonToString(json);
16817fd14ceSopenharmony_ci    FreeJson(json);
16917fd14ceSopenharmony_ci    return returnDataStr;
17017fd14ceSopenharmony_ci}
17117fd14ceSopenharmony_ci
17217fd14ceSopenharmony_cistatic DeviceAuthCallback g_gmCallback = {
17317fd14ceSopenharmony_ci    .onTransmit = OnTransmit,
17417fd14ceSopenharmony_ci    .onSessionKeyReturned = OnSessionKeyReturned,
17517fd14ceSopenharmony_ci    .onFinish = OnFinish,
17617fd14ceSopenharmony_ci    .onError = OnError,
17717fd14ceSopenharmony_ci    .onRequest = OnBindRequest
17817fd14ceSopenharmony_ci};
17917fd14ceSopenharmony_ci
18017fd14ceSopenharmony_cistatic DeviceAuthCallback g_gaCallback = {
18117fd14ceSopenharmony_ci    .onTransmit = OnTransmit,
18217fd14ceSopenharmony_ci    .onSessionKeyReturned = OnSessionKeyReturned,
18317fd14ceSopenharmony_ci    .onFinish = OnFinish,
18417fd14ceSopenharmony_ci    .onError = OnError,
18517fd14ceSopenharmony_ci    .onRequest = OnAuthRequest
18617fd14ceSopenharmony_ci};
18717fd14ceSopenharmony_ci
18817fd14ceSopenharmony_cistatic void OnGroupCreated(const char *groupInfo) {}
18917fd14ceSopenharmony_ci
19017fd14ceSopenharmony_cistatic void OnGroupDeleted(const char *groupInfo) {}
19117fd14ceSopenharmony_ci
19217fd14ceSopenharmony_cistatic void OnDeviceBound(const char *peerUdid, const char* groupInfo) {}
19317fd14ceSopenharmony_ci
19417fd14ceSopenharmony_cistatic void OnDeviceUnBound(const char *peerUdid, const char* groupInfo) {}
19517fd14ceSopenharmony_ci
19617fd14ceSopenharmony_cistatic void OnDeviceNotTrusted(const char *peerUdid) {}
19717fd14ceSopenharmony_ci
19817fd14ceSopenharmony_cistatic void OnLastGroupDeleted(const char *peerUdid, int groupType) {}
19917fd14ceSopenharmony_ci
20017fd14ceSopenharmony_cistatic void OnTrustedDeviceNumChanged(int curTrustedDeviceNum) {}
20117fd14ceSopenharmony_ci
20217fd14ceSopenharmony_cistatic DataChangeListener g_listener = {
20317fd14ceSopenharmony_ci    .onGroupCreated = OnGroupCreated,
20417fd14ceSopenharmony_ci    .onGroupDeleted = OnGroupDeleted,
20517fd14ceSopenharmony_ci    .onDeviceBound = OnDeviceBound,
20617fd14ceSopenharmony_ci    .onDeviceUnBound = OnDeviceUnBound,
20717fd14ceSopenharmony_ci    .onDeviceNotTrusted = OnDeviceNotTrusted,
20817fd14ceSopenharmony_ci    .onLastGroupDeleted = OnLastGroupDeleted,
20917fd14ceSopenharmony_ci    .onTrustedDeviceNumChanged = OnTrustedDeviceNumChanged
21017fd14ceSopenharmony_ci};
21117fd14ceSopenharmony_ci
21217fd14ceSopenharmony_cistatic void RemoveDir(const char *path)
21317fd14ceSopenharmony_ci{
21417fd14ceSopenharmony_ci    char strBuf[TEST_DEV_AUTH_BUFFER_SIZE] = {0};
21517fd14ceSopenharmony_ci    if (path == nullptr) {
21617fd14ceSopenharmony_ci        return;
21717fd14ceSopenharmony_ci    }
21817fd14ceSopenharmony_ci    if (sprintf_s(strBuf, sizeof(strBuf) - 1, "rm -rf %s", path) < 0) {
21917fd14ceSopenharmony_ci        return;
22017fd14ceSopenharmony_ci    }
22117fd14ceSopenharmony_ci    system(strBuf);
22217fd14ceSopenharmony_ci    return;
22317fd14ceSopenharmony_ci}
22417fd14ceSopenharmony_ci
22517fd14ceSopenharmony_cistatic void DeleteDatabase()
22617fd14ceSopenharmony_ci{
22717fd14ceSopenharmony_ci    const char *groupPath = "/data/service/el1/public/deviceauthMock";
22817fd14ceSopenharmony_ci    RemoveDir(groupPath);
22917fd14ceSopenharmony_ci    RemoveDir(TEST_HKS_MAIN_DATA_PATH);
23017fd14ceSopenharmony_ci    return;
23117fd14ceSopenharmony_ci}
23217fd14ceSopenharmony_ci
23317fd14ceSopenharmony_cistatic int32_t GenerateTempKeyPair(const Uint8Buff *keyAlias)
23417fd14ceSopenharmony_ci{
23517fd14ceSopenharmony_ci    int32_t ret = GetLoaderInstance()->checkKeyExist(keyAlias, false, DEFAULT_OS_ACCOUNT);
23617fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
23717fd14ceSopenharmony_ci        int32_t authId = 0;
23817fd14ceSopenharmony_ci        Uint8Buff authIdBuff = { reinterpret_cast<uint8_t *>(&authId), sizeof(int32_t)};
23917fd14ceSopenharmony_ci        ExtraInfo extInfo = {authIdBuff, -1, -1};
24017fd14ceSopenharmony_ci        KeyParams keyParams = { { keyAlias->val, keyAlias->length, true }, false, DEFAULT_OS_ACCOUNT };
24117fd14ceSopenharmony_ci        ret = GetLoaderInstance()->generateKeyPairWithStorage(&keyParams, TEST_DEV_AUTH_TEMP_KEY_PAIR_LEN, P256,
24217fd14ceSopenharmony_ci            KEY_PURPOSE_SIGN_VERIFY, &extInfo);
24317fd14ceSopenharmony_ci    }
24417fd14ceSopenharmony_ci    return ret;
24517fd14ceSopenharmony_ci}
24617fd14ceSopenharmony_ci
24717fd14ceSopenharmony_cistatic CJson *GetAsyCredentialJson(const std::string registerInfo)
24817fd14ceSopenharmony_ci{
24917fd14ceSopenharmony_ci    uint8_t keyAliasValue[] = "TestServerKeyPair";
25017fd14ceSopenharmony_ci    int32_t keyAliasLen = 18;
25117fd14ceSopenharmony_ci    Uint8Buff keyAlias = {
25217fd14ceSopenharmony_ci        .val = keyAliasValue,
25317fd14ceSopenharmony_ci        .length = keyAliasLen
25417fd14ceSopenharmony_ci    };
25517fd14ceSopenharmony_ci    if (GenerateTempKeyPair(&keyAlias) != HC_SUCCESS) {
25617fd14ceSopenharmony_ci        return nullptr;
25717fd14ceSopenharmony_ci    }
25817fd14ceSopenharmony_ci    uint8_t *serverPkVal = reinterpret_cast<uint8_t *>(HcMalloc(SERVER_PK_SIZE, 0));
25917fd14ceSopenharmony_ci    Uint8Buff serverPk = {
26017fd14ceSopenharmony_ci        .val = serverPkVal,
26117fd14ceSopenharmony_ci        .length = SERVER_PK_SIZE
26217fd14ceSopenharmony_ci    };
26317fd14ceSopenharmony_ci
26417fd14ceSopenharmony_ci    KeyParams keyAliasParams = { { keyAlias.val, keyAlias.length, true }, false, DEFAULT_OS_ACCOUNT };
26517fd14ceSopenharmony_ci    int32_t ret = GetLoaderInstance()->exportPublicKey(&keyAliasParams, &serverPk);
26617fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
26717fd14ceSopenharmony_ci        HcFree(serverPkVal);
26817fd14ceSopenharmony_ci        return nullptr;
26917fd14ceSopenharmony_ci    }
27017fd14ceSopenharmony_ci
27117fd14ceSopenharmony_ci    Uint8Buff messageBuff = {
27217fd14ceSopenharmony_ci        .val = reinterpret_cast<uint8_t *>(const_cast<char *>(registerInfo.c_str())),
27317fd14ceSopenharmony_ci        .length = registerInfo.length() + 1
27417fd14ceSopenharmony_ci    };
27517fd14ceSopenharmony_ci    uint8_t *signatureValue = reinterpret_cast<uint8_t *>(HcMalloc(SIGNATURE_SIZE, 0));
27617fd14ceSopenharmony_ci    Uint8Buff signature = {
27717fd14ceSopenharmony_ci        .val = signatureValue,
27817fd14ceSopenharmony_ci        .length = SIGNATURE_SIZE
27917fd14ceSopenharmony_ci    };
28017fd14ceSopenharmony_ci    ret = GetLoaderInstance()->sign(&keyAliasParams, &messageBuff, P256, &signature);
28117fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
28217fd14ceSopenharmony_ci        HcFree(serverPkVal);
28317fd14ceSopenharmony_ci        HcFree(signatureValue);
28417fd14ceSopenharmony_ci        return nullptr;
28517fd14ceSopenharmony_ci    }
28617fd14ceSopenharmony_ci
28717fd14ceSopenharmony_ci    CJson *pkInfoJson = CreateJsonFromString(registerInfo.c_str());
28817fd14ceSopenharmony_ci    CJson *credentialJson = CreateJson();
28917fd14ceSopenharmony_ci    (void)AddIntToJson(credentialJson, FIELD_CREDENTIAL_TYPE, ASYMMETRIC_CRED);
29017fd14ceSopenharmony_ci    (void)AddByteToJson(credentialJson, FIELD_SERVER_PK, serverPkVal, serverPk.length);
29117fd14ceSopenharmony_ci    (void)AddByteToJson(credentialJson, FIELD_PK_INFO_SIGNATURE, signatureValue, signature.length);
29217fd14ceSopenharmony_ci    (void)AddObjToJson(credentialJson, FIELD_PK_INFO, pkInfoJson);
29317fd14ceSopenharmony_ci    FreeJson(pkInfoJson);
29417fd14ceSopenharmony_ci    return credentialJson;
29517fd14ceSopenharmony_ci}
29617fd14ceSopenharmony_ci
29717fd14ceSopenharmony_cistatic int32_t CreateDemoGroup(int32_t osAccountId, int64_t reqId, const char *appId, const char *createParams)
29817fd14ceSopenharmony_ci{
29917fd14ceSopenharmony_ci    g_asyncStatus = ASYNC_STATUS_WAITING;
30017fd14ceSopenharmony_ci    const DeviceGroupManager *gm = GetGmInstance();
30117fd14ceSopenharmony_ci    if (gm == nullptr) {
30217fd14ceSopenharmony_ci        return HC_ERR_NULL_PTR;
30317fd14ceSopenharmony_ci    }
30417fd14ceSopenharmony_ci    int32_t ret = gm->createGroup(osAccountId, reqId, appId, createParams);
30517fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
30617fd14ceSopenharmony_ci        g_asyncStatus = ASYNC_STATUS_ERROR;
30717fd14ceSopenharmony_ci        return ret;
30817fd14ceSopenharmony_ci    }
30917fd14ceSopenharmony_ci    while (g_asyncStatus == ASYNC_STATUS_WAITING) {
31017fd14ceSopenharmony_ci        usleep(TEST_DEV_AUTH_SLEEP_TIME);
31117fd14ceSopenharmony_ci    }
31217fd14ceSopenharmony_ci    usleep(TEST_DEV_AUTH_SLEEP_TIME);
31317fd14ceSopenharmony_ci    return g_asyncStatus == ASYNC_STATUS_ERROR ? HC_ERROR : HC_SUCCESS;
31417fd14ceSopenharmony_ci}
31517fd14ceSopenharmony_ci
31617fd14ceSopenharmony_cistatic int32_t CreateDemoIdenticalAccountGroup(int32_t osAccountId, int64_t reqId,
31717fd14ceSopenharmony_ci    const char *appId, const char *userId)
31817fd14ceSopenharmony_ci{
31917fd14ceSopenharmony_ci    g_asyncStatus = ASYNC_STATUS_WAITING;
32017fd14ceSopenharmony_ci    const DeviceGroupManager *gm = GetGmInstance();
32117fd14ceSopenharmony_ci    if (gm == nullptr) {
32217fd14ceSopenharmony_ci        return HC_ERR_NULL_PTR;
32317fd14ceSopenharmony_ci    }
32417fd14ceSopenharmony_ci    char *returnData = nullptr;
32517fd14ceSopenharmony_ci    int32_t ret = gm->getRegisterInfo(GET_REGISTER_INFO_PARAMS, &returnData);
32617fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
32717fd14ceSopenharmony_ci        return ret;
32817fd14ceSopenharmony_ci    }
32917fd14ceSopenharmony_ci    std::string registerInfo(returnData);
33017fd14ceSopenharmony_ci    CJson *credJson = GetAsyCredentialJson(registerInfo);
33117fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
33217fd14ceSopenharmony_ci        gm->destroyInfo(&returnData);
33317fd14ceSopenharmony_ci        return ret;
33417fd14ceSopenharmony_ci    }
33517fd14ceSopenharmony_ci    CJson *json = CreateJson();
33617fd14ceSopenharmony_ci    AddIntToJson(json, FIELD_GROUP_TYPE, IDENTICAL_ACCOUNT_GROUP);
33717fd14ceSopenharmony_ci    AddStringToJson(json, FIELD_USER_ID, userId);
33817fd14ceSopenharmony_ci    AddObjToJson(json, FIELD_CREDENTIAL, credJson);
33917fd14ceSopenharmony_ci    char *jsonStr = PackJsonToString(json);
34017fd14ceSopenharmony_ci    FreeJson(credJson);
34117fd14ceSopenharmony_ci    FreeJson(json);
34217fd14ceSopenharmony_ci    gm->destroyInfo(&returnData);
34317fd14ceSopenharmony_ci    ret = gm->createGroup(osAccountId, reqId, appId, jsonStr);
34417fd14ceSopenharmony_ci    FreeJsonString(jsonStr);
34517fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
34617fd14ceSopenharmony_ci        return ret;
34717fd14ceSopenharmony_ci    }
34817fd14ceSopenharmony_ci    while (g_asyncStatus == ASYNC_STATUS_WAITING) {
34917fd14ceSopenharmony_ci        usleep(TEST_DEV_AUTH_SLEEP_TIME);
35017fd14ceSopenharmony_ci    }
35117fd14ceSopenharmony_ci    return g_asyncStatus == ASYNC_STATUS_ERROR ? HC_ERROR : HC_SUCCESS;
35217fd14ceSopenharmony_ci}
35317fd14ceSopenharmony_ci
35417fd14ceSopenharmony_cistatic int32_t CreateDemoSymIdenticalAccountGroup(int32_t osAccountId, int64_t reqId,
35517fd14ceSopenharmony_ci    const char *appId, const char *userId)
35617fd14ceSopenharmony_ci{
35717fd14ceSopenharmony_ci    g_asyncStatus = ASYNC_STATUS_WAITING;
35817fd14ceSopenharmony_ci    const DeviceGroupManager *gm = GetGmInstance();
35917fd14ceSopenharmony_ci    if (gm == nullptr) {
36017fd14ceSopenharmony_ci        return HC_ERR_NULL_PTR;
36117fd14ceSopenharmony_ci    }
36217fd14ceSopenharmony_ci
36317fd14ceSopenharmony_ci    CJson *credJson = CreateJson();
36417fd14ceSopenharmony_ci    (void)AddIntToJson(credJson, FIELD_CREDENTIAL_TYPE, SYMMETRIC_CRED);
36517fd14ceSopenharmony_ci    (void)AddStringToJson(credJson, FIELD_AUTH_CODE, TEST_AUTH_CODE);
36617fd14ceSopenharmony_ci    CJson *json = CreateJson();
36717fd14ceSopenharmony_ci    AddIntToJson(json, FIELD_GROUP_TYPE, IDENTICAL_ACCOUNT_GROUP);
36817fd14ceSopenharmony_ci    AddStringToJson(json, FIELD_USER_ID, userId);
36917fd14ceSopenharmony_ci    AddObjToJson(json, FIELD_CREDENTIAL, credJson);
37017fd14ceSopenharmony_ci    char *jsonStr = PackJsonToString(json);
37117fd14ceSopenharmony_ci    FreeJson(credJson);
37217fd14ceSopenharmony_ci    FreeJson(json);
37317fd14ceSopenharmony_ci    if (jsonStr == nullptr) {
37417fd14ceSopenharmony_ci        return HC_ERR_NULL_PTR;
37517fd14ceSopenharmony_ci    }
37617fd14ceSopenharmony_ci    int32_t ret = gm->createGroup(osAccountId, reqId, appId, jsonStr);
37717fd14ceSopenharmony_ci    FreeJsonString(jsonStr);
37817fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
37917fd14ceSopenharmony_ci        return ret;
38017fd14ceSopenharmony_ci    }
38117fd14ceSopenharmony_ci    while (g_asyncStatus == ASYNC_STATUS_WAITING) {
38217fd14ceSopenharmony_ci        usleep(TEST_DEV_AUTH_SLEEP_TIME);
38317fd14ceSopenharmony_ci    }
38417fd14ceSopenharmony_ci    return g_asyncStatus == ASYNC_STATUS_ERROR ? HC_ERROR : HC_SUCCESS;
38517fd14ceSopenharmony_ci}
38617fd14ceSopenharmony_ci
38717fd14ceSopenharmony_cistatic int32_t DeleteDemoGroup(int32_t osAccountId, int64_t reqId, const char *appId,
38817fd14ceSopenharmony_ci    const char *disbandParams)
38917fd14ceSopenharmony_ci{
39017fd14ceSopenharmony_ci    g_asyncStatus = ASYNC_STATUS_WAITING;
39117fd14ceSopenharmony_ci    const DeviceGroupManager *gm = GetGmInstance();
39217fd14ceSopenharmony_ci    if (gm == nullptr) {
39317fd14ceSopenharmony_ci        return HC_ERR_NULL_PTR;
39417fd14ceSopenharmony_ci    }
39517fd14ceSopenharmony_ci    int32_t ret = gm->deleteGroup(osAccountId, reqId, appId, disbandParams);
39617fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
39717fd14ceSopenharmony_ci        return ret;
39817fd14ceSopenharmony_ci    }
39917fd14ceSopenharmony_ci    while (g_asyncStatus == ASYNC_STATUS_WAITING) {
40017fd14ceSopenharmony_ci        usleep(TEST_DEV_AUTH_SLEEP_TIME);
40117fd14ceSopenharmony_ci    }
40217fd14ceSopenharmony_ci    return g_asyncStatus == ASYNC_STATUS_ERROR ? HC_ERROR : HC_SUCCESS;
40317fd14ceSopenharmony_ci}
40417fd14ceSopenharmony_ci
40517fd14ceSopenharmony_cistatic int32_t AddDemoMember(void)
40617fd14ceSopenharmony_ci{
40717fd14ceSopenharmony_ci    g_asyncStatus = ASYNC_STATUS_WAITING;
40817fd14ceSopenharmony_ci    bool isClient = true;
40917fd14ceSopenharmony_ci    SetDeviceStatus(isClient);
41017fd14ceSopenharmony_ci    const DeviceGroupManager *gm = GetGmInstance();
41117fd14ceSopenharmony_ci    if (gm == nullptr) {
41217fd14ceSopenharmony_ci        return HC_ERR_NULL_PTR;
41317fd14ceSopenharmony_ci    }
41417fd14ceSopenharmony_ci    int32_t ret = gm->addMemberToGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, ADD_PARAMS);
41517fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
41617fd14ceSopenharmony_ci        g_asyncStatus = ASYNC_STATUS_ERROR;
41717fd14ceSopenharmony_ci        return ret;
41817fd14ceSopenharmony_ci    }
41917fd14ceSopenharmony_ci    while (g_asyncStatus == ASYNC_STATUS_WAITING) {
42017fd14ceSopenharmony_ci        usleep(TEST_DEV_AUTH_SLEEP_TIME);
42117fd14ceSopenharmony_ci    }
42217fd14ceSopenharmony_ci    while (g_asyncStatus == ASYNC_STATUS_TRANSMIT) {
42317fd14ceSopenharmony_ci        isClient = !isClient;
42417fd14ceSopenharmony_ci        SetDeviceStatus(isClient);
42517fd14ceSopenharmony_ci        g_asyncStatus = ASYNC_STATUS_WAITING;
42617fd14ceSopenharmony_ci        if (isClient) {
42717fd14ceSopenharmony_ci            ret = gm->processData(TEST_REQ_ID, g_transmitData, g_transmitDataLen);
42817fd14ceSopenharmony_ci        } else {
42917fd14ceSopenharmony_ci            ret = gm->processData(TEST_REQ_ID2, g_transmitData, g_transmitDataLen);
43017fd14ceSopenharmony_ci        }
43117fd14ceSopenharmony_ci        (void)memset_s(g_transmitData, TEST_TRANSMIT_DATA_LEN, 0, TEST_TRANSMIT_DATA_LEN);
43217fd14ceSopenharmony_ci        g_transmitDataLen = 0;
43317fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
43417fd14ceSopenharmony_ci            g_asyncStatus = ASYNC_STATUS_ERROR;
43517fd14ceSopenharmony_ci            return ret;
43617fd14ceSopenharmony_ci        }
43717fd14ceSopenharmony_ci        while (g_asyncStatus == ASYNC_STATUS_WAITING) {
43817fd14ceSopenharmony_ci            usleep(TEST_DEV_AUTH_SLEEP_TIME);
43917fd14ceSopenharmony_ci        }
44017fd14ceSopenharmony_ci        if (g_asyncStatus == ASYNC_STATUS_ERROR) {
44117fd14ceSopenharmony_ci            break;
44217fd14ceSopenharmony_ci        }
44317fd14ceSopenharmony_ci        if (g_transmitDataLen > 0) {
44417fd14ceSopenharmony_ci            g_asyncStatus = ASYNC_STATUS_TRANSMIT;
44517fd14ceSopenharmony_ci        }
44617fd14ceSopenharmony_ci    }
44717fd14ceSopenharmony_ci    usleep(TEST_DEV_AUTH_SLEEP_TIME2);
44817fd14ceSopenharmony_ci    SetDeviceStatus(true);
44917fd14ceSopenharmony_ci    return g_asyncStatus == ASYNC_STATUS_ERROR ? HC_ERROR : HC_SUCCESS;
45017fd14ceSopenharmony_ci}
45117fd14ceSopenharmony_ci
45217fd14ceSopenharmony_cistatic int32_t AuthDemoMember(void)
45317fd14ceSopenharmony_ci{
45417fd14ceSopenharmony_ci    g_asyncStatus = ASYNC_STATUS_WAITING;
45517fd14ceSopenharmony_ci    bool isClient = true;
45617fd14ceSopenharmony_ci    SetDeviceStatus(isClient);
45717fd14ceSopenharmony_ci    const GroupAuthManager *ga = GetGaInstance();
45817fd14ceSopenharmony_ci    if (ga == nullptr) {
45917fd14ceSopenharmony_ci        return HC_ERR_NULL_PTR;
46017fd14ceSopenharmony_ci    }
46117fd14ceSopenharmony_ci    int32_t ret = ga->authDevice(DEFAULT_OS_ACCOUNT, TEST_REQ_ID3, AUTH_PARAMS, &g_gaCallback);
46217fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
46317fd14ceSopenharmony_ci        g_asyncStatus = ASYNC_STATUS_ERROR;
46417fd14ceSopenharmony_ci        return ret;
46517fd14ceSopenharmony_ci    }
46617fd14ceSopenharmony_ci    while (g_asyncStatus == ASYNC_STATUS_WAITING) {
46717fd14ceSopenharmony_ci        usleep(TEST_DEV_AUTH_SLEEP_TIME);
46817fd14ceSopenharmony_ci    }
46917fd14ceSopenharmony_ci    while (g_asyncStatus == ASYNC_STATUS_TRANSMIT) {
47017fd14ceSopenharmony_ci        isClient = !isClient;
47117fd14ceSopenharmony_ci        SetDeviceStatus(isClient);
47217fd14ceSopenharmony_ci        g_asyncStatus = ASYNC_STATUS_WAITING;
47317fd14ceSopenharmony_ci        if (isClient) {
47417fd14ceSopenharmony_ci            ret = ga->processData(TEST_REQ_ID3, g_transmitData, g_transmitDataLen, &g_gaCallback);
47517fd14ceSopenharmony_ci        } else {
47617fd14ceSopenharmony_ci            ret = ga->processData(TEST_REQ_ID4, g_transmitData, g_transmitDataLen, &g_gaCallback);
47717fd14ceSopenharmony_ci        }
47817fd14ceSopenharmony_ci        (void)memset_s(g_transmitData, TEST_TRANSMIT_DATA_LEN, 0, TEST_TRANSMIT_DATA_LEN);
47917fd14ceSopenharmony_ci        g_transmitDataLen = 0;
48017fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
48117fd14ceSopenharmony_ci            g_asyncStatus = ASYNC_STATUS_ERROR;
48217fd14ceSopenharmony_ci            return ret;
48317fd14ceSopenharmony_ci        }
48417fd14ceSopenharmony_ci        while (g_asyncStatus == ASYNC_STATUS_WAITING) {
48517fd14ceSopenharmony_ci            usleep(TEST_DEV_AUTH_SLEEP_TIME);
48617fd14ceSopenharmony_ci        }
48717fd14ceSopenharmony_ci        if (g_asyncStatus == ASYNC_STATUS_ERROR) {
48817fd14ceSopenharmony_ci            break;
48917fd14ceSopenharmony_ci        }
49017fd14ceSopenharmony_ci        if (g_transmitDataLen > 0) {
49117fd14ceSopenharmony_ci            g_asyncStatus = ASYNC_STATUS_TRANSMIT;
49217fd14ceSopenharmony_ci        }
49317fd14ceSopenharmony_ci    }
49417fd14ceSopenharmony_ci    SetDeviceStatus(true);
49517fd14ceSopenharmony_ci    return g_asyncStatus == ASYNC_STATUS_ERROR ? HC_ERROR : HC_SUCCESS;
49617fd14ceSopenharmony_ci}
49717fd14ceSopenharmony_ci
49817fd14ceSopenharmony_cistatic int32_t DelDemoMember(int32_t osAccountId, int64_t reqId, const char *appId,
49917fd14ceSopenharmony_ci    const char *deleteParams)
50017fd14ceSopenharmony_ci{
50117fd14ceSopenharmony_ci    g_asyncStatus = ASYNC_STATUS_WAITING;
50217fd14ceSopenharmony_ci    const DeviceGroupManager *gm = GetGmInstance();
50317fd14ceSopenharmony_ci    if (gm == nullptr) {
50417fd14ceSopenharmony_ci        return HC_ERR_NULL_PTR;
50517fd14ceSopenharmony_ci    }
50617fd14ceSopenharmony_ci    int32_t ret = gm->deleteMemberFromGroup(osAccountId, reqId, appId, deleteParams);
50717fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
50817fd14ceSopenharmony_ci        return ret;
50917fd14ceSopenharmony_ci    }
51017fd14ceSopenharmony_ci    while (g_asyncStatus == ASYNC_STATUS_WAITING) {
51117fd14ceSopenharmony_ci        usleep(TEST_DEV_AUTH_SLEEP_TIME);
51217fd14ceSopenharmony_ci    }
51317fd14ceSopenharmony_ci    return g_asyncStatus == ASYNC_STATUS_ERROR ? HC_ERROR : HC_SUCCESS;
51417fd14ceSopenharmony_ci}
51517fd14ceSopenharmony_ci
51617fd14ceSopenharmony_cistatic int32_t DevAuthTestCase004(void)
51717fd14ceSopenharmony_ci{
51817fd14ceSopenharmony_ci    DeleteDatabase();
51917fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
52017fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
52117fd14ceSopenharmony_ci        return ret;
52217fd14ceSopenharmony_ci    }
52317fd14ceSopenharmony_ci    do {
52417fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
52517fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
52617fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
52717fd14ceSopenharmony_ci            break;
52817fd14ceSopenharmony_ci        }
52917fd14ceSopenharmony_ci        ret = gm->unRegCallback(TEST_APP_ID);
53017fd14ceSopenharmony_ci    } while (0);
53117fd14ceSopenharmony_ci    DestroyDeviceAuthService();
53217fd14ceSopenharmony_ci    return ret;
53317fd14ceSopenharmony_ci}
53417fd14ceSopenharmony_ci
53517fd14ceSopenharmony_cistatic int32_t DevAuthTestCase005(void)
53617fd14ceSopenharmony_ci{
53717fd14ceSopenharmony_ci    DeleteDatabase();
53817fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
53917fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
54017fd14ceSopenharmony_ci        return ret;
54117fd14ceSopenharmony_ci    }
54217fd14ceSopenharmony_ci    do {
54317fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
54417fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
54517fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
54617fd14ceSopenharmony_ci            break;
54717fd14ceSopenharmony_ci        }
54817fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
54917fd14ceSopenharmony_ci    } while (0);
55017fd14ceSopenharmony_ci    DestroyDeviceAuthService();
55117fd14ceSopenharmony_ci    return ret;
55217fd14ceSopenharmony_ci}
55317fd14ceSopenharmony_ci
55417fd14ceSopenharmony_cistatic int32_t DevAuthTestCase006(void)
55517fd14ceSopenharmony_ci{
55617fd14ceSopenharmony_ci    DeleteDatabase();
55717fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
55817fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
55917fd14ceSopenharmony_ci        return ret;
56017fd14ceSopenharmony_ci    }
56117fd14ceSopenharmony_ci    do {
56217fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
56317fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
56417fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
56517fd14ceSopenharmony_ci            break;
56617fd14ceSopenharmony_ci        }
56717fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
56817fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
56917fd14ceSopenharmony_ci            break;
57017fd14ceSopenharmony_ci        }
57117fd14ceSopenharmony_ci        ret = AddDemoMember();
57217fd14ceSopenharmony_ci    } while (0);
57317fd14ceSopenharmony_ci    DestroyDeviceAuthService();
57417fd14ceSopenharmony_ci    return ret;
57517fd14ceSopenharmony_ci}
57617fd14ceSopenharmony_ci
57717fd14ceSopenharmony_cistatic int32_t DevAuthTestCase007(void)
57817fd14ceSopenharmony_ci{
57917fd14ceSopenharmony_ci    DeleteDatabase();
58017fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
58117fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
58217fd14ceSopenharmony_ci        return ret;
58317fd14ceSopenharmony_ci    }
58417fd14ceSopenharmony_ci    do {
58517fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
58617fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
58717fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
58817fd14ceSopenharmony_ci            break;
58917fd14ceSopenharmony_ci        }
59017fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
59117fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
59217fd14ceSopenharmony_ci            break;
59317fd14ceSopenharmony_ci        }
59417fd14ceSopenharmony_ci        ret = AddDemoMember();
59517fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
59617fd14ceSopenharmony_ci            break;
59717fd14ceSopenharmony_ci        }
59817fd14ceSopenharmony_ci        ret = AuthDemoMember();
59917fd14ceSopenharmony_ci    } while (0);
60017fd14ceSopenharmony_ci    DestroyDeviceAuthService();
60117fd14ceSopenharmony_ci    return ret;
60217fd14ceSopenharmony_ci}
60317fd14ceSopenharmony_ci
60417fd14ceSopenharmony_cistatic int32_t DevAuthTestCase008(void)
60517fd14ceSopenharmony_ci{
60617fd14ceSopenharmony_ci    DeleteDatabase();
60717fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
60817fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
60917fd14ceSopenharmony_ci        return ret;
61017fd14ceSopenharmony_ci    }
61117fd14ceSopenharmony_ci    do {
61217fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
61317fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
61417fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
61517fd14ceSopenharmony_ci            break;
61617fd14ceSopenharmony_ci        }
61717fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
61817fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
61917fd14ceSopenharmony_ci            break;
62017fd14ceSopenharmony_ci        }
62117fd14ceSopenharmony_ci        ret = AddDemoMember();
62217fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
62317fd14ceSopenharmony_ci            break;
62417fd14ceSopenharmony_ci        }
62517fd14ceSopenharmony_ci        ret = DelDemoMember(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, DELETE_PARAMS);
62617fd14ceSopenharmony_ci    } while (0);
62717fd14ceSopenharmony_ci    DestroyDeviceAuthService();
62817fd14ceSopenharmony_ci    return ret;
62917fd14ceSopenharmony_ci}
63017fd14ceSopenharmony_ci
63117fd14ceSopenharmony_cistatic int32_t DevAuthTestCase009(void)
63217fd14ceSopenharmony_ci{
63317fd14ceSopenharmony_ci    DeleteDatabase();
63417fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
63517fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
63617fd14ceSopenharmony_ci        return ret;
63717fd14ceSopenharmony_ci    }
63817fd14ceSopenharmony_ci    do {
63917fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
64017fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
64117fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
64217fd14ceSopenharmony_ci            break;
64317fd14ceSopenharmony_ci        }
64417fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
64517fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
64617fd14ceSopenharmony_ci            break;
64717fd14ceSopenharmony_ci        }
64817fd14ceSopenharmony_ci        ret = DeleteDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, DISBAND_PARAMS);
64917fd14ceSopenharmony_ci    } while (0);
65017fd14ceSopenharmony_ci    DestroyDeviceAuthService();
65117fd14ceSopenharmony_ci    return ret;
65217fd14ceSopenharmony_ci}
65317fd14ceSopenharmony_ci
65417fd14ceSopenharmony_cistatic int32_t DevAuthTestCase010(void)
65517fd14ceSopenharmony_ci{
65617fd14ceSopenharmony_ci    DeleteDatabase();
65717fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
65817fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
65917fd14ceSopenharmony_ci        return ret;
66017fd14ceSopenharmony_ci    }
66117fd14ceSopenharmony_ci    do {
66217fd14ceSopenharmony_ci        char *returnData = nullptr;
66317fd14ceSopenharmony_ci        ret = GetGmInstance()->getRegisterInfo(GET_REGISTER_INFO_PARAMS, &returnData);
66417fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
66517fd14ceSopenharmony_ci            break;
66617fd14ceSopenharmony_ci        }
66717fd14ceSopenharmony_ci        if (returnData == nullptr) {
66817fd14ceSopenharmony_ci            ret = HC_ERROR;
66917fd14ceSopenharmony_ci        }
67017fd14ceSopenharmony_ci    } while (0);
67117fd14ceSopenharmony_ci    DestroyDeviceAuthService();
67217fd14ceSopenharmony_ci    return ret;
67317fd14ceSopenharmony_ci}
67417fd14ceSopenharmony_ci
67517fd14ceSopenharmony_cistatic int32_t DevAuthTestCase011(void)
67617fd14ceSopenharmony_ci{
67717fd14ceSopenharmony_ci    DeleteDatabase();
67817fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
67917fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
68017fd14ceSopenharmony_ci        return ret;
68117fd14ceSopenharmony_ci    }
68217fd14ceSopenharmony_ci    do {
68317fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
68417fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
68517fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
68617fd14ceSopenharmony_ci            break;
68717fd14ceSopenharmony_ci        }
68817fd14ceSopenharmony_ci        ret = CreateDemoIdenticalAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, TEST_USER_ID);
68917fd14ceSopenharmony_ci    } while (0);
69017fd14ceSopenharmony_ci    DestroyDeviceAuthService();
69117fd14ceSopenharmony_ci    return ret;
69217fd14ceSopenharmony_ci}
69317fd14ceSopenharmony_ci
69417fd14ceSopenharmony_cistatic int32_t DevAuthTestCase012(void)
69517fd14ceSopenharmony_ci{
69617fd14ceSopenharmony_ci    DeleteDatabase();
69717fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
69817fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
69917fd14ceSopenharmony_ci        return ret;
70017fd14ceSopenharmony_ci    }
70117fd14ceSopenharmony_ci    do {
70217fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
70317fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
70417fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
70517fd14ceSopenharmony_ci            break;
70617fd14ceSopenharmony_ci        }
70717fd14ceSopenharmony_ci        ret = CreateDemoIdenticalAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, TEST_USER_ID);
70817fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
70917fd14ceSopenharmony_ci            break;
71017fd14ceSopenharmony_ci        }
71117fd14ceSopenharmony_ci        ret = gm->addMultiMembersToGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID, ADD_MULTI_PARAMS);
71217fd14ceSopenharmony_ci    } while (0);
71317fd14ceSopenharmony_ci    DestroyDeviceAuthService();
71417fd14ceSopenharmony_ci    return ret;
71517fd14ceSopenharmony_ci}
71617fd14ceSopenharmony_ci
71717fd14ceSopenharmony_cistatic int32_t DevAuthTestCase013(void)
71817fd14ceSopenharmony_ci{
71917fd14ceSopenharmony_ci    DeleteDatabase();
72017fd14ceSopenharmony_ci    SetDeviceStatus(true);
72117fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
72217fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
72317fd14ceSopenharmony_ci        return ret;
72417fd14ceSopenharmony_ci    }
72517fd14ceSopenharmony_ci    DestroyDeviceAuthService();
72617fd14ceSopenharmony_ci    SetDeviceStatus(false);
72717fd14ceSopenharmony_ci    ret = InitDeviceAuthService();
72817fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
72917fd14ceSopenharmony_ci        return ret;
73017fd14ceSopenharmony_ci    }
73117fd14ceSopenharmony_ci    DestroyDeviceAuthService();
73217fd14ceSopenharmony_ci    SetDeviceStatus(true);
73317fd14ceSopenharmony_ci    ret = InitDeviceAuthService();
73417fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
73517fd14ceSopenharmony_ci        return ret;
73617fd14ceSopenharmony_ci    }
73717fd14ceSopenharmony_ci    do {
73817fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
73917fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
74017fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
74117fd14ceSopenharmony_ci            break;
74217fd14ceSopenharmony_ci        }
74317fd14ceSopenharmony_ci        SetDeviceStatus(true);
74417fd14ceSopenharmony_ci        ret = CreateDemoIdenticalAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, TEST_USER_ID);
74517fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
74617fd14ceSopenharmony_ci            break;
74717fd14ceSopenharmony_ci        }
74817fd14ceSopenharmony_ci        SetDeviceStatus(false);
74917fd14ceSopenharmony_ci        ret = CreateDemoIdenticalAccountGroup(TEST_AUTH_OS_ACCOUNT_ID, TEST_REQ_ID, TEST_APP_ID, TEST_USER_ID);
75017fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
75117fd14ceSopenharmony_ci            break;
75217fd14ceSopenharmony_ci        }
75317fd14ceSopenharmony_ci        ret = AuthDemoMember();
75417fd14ceSopenharmony_ci    } while (0);
75517fd14ceSopenharmony_ci    DestroyDeviceAuthService();
75617fd14ceSopenharmony_ci    return ret;
75717fd14ceSopenharmony_ci}
75817fd14ceSopenharmony_ci
75917fd14ceSopenharmony_cistatic int32_t DevAuthTestCase014(void)
76017fd14ceSopenharmony_ci{
76117fd14ceSopenharmony_ci    DeleteDatabase();
76217fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
76317fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
76417fd14ceSopenharmony_ci        return ret;
76517fd14ceSopenharmony_ci    }
76617fd14ceSopenharmony_ci    do {
76717fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
76817fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
76917fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
77017fd14ceSopenharmony_ci            break;
77117fd14ceSopenharmony_ci        }
77217fd14ceSopenharmony_ci        ret = CreateDemoIdenticalAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, TEST_USER_ID);
77317fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
77417fd14ceSopenharmony_ci            break;
77517fd14ceSopenharmony_ci        }
77617fd14ceSopenharmony_ci        ret = gm->addMultiMembersToGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID, ADD_MULTI_PARAMS);
77717fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
77817fd14ceSopenharmony_ci            break;
77917fd14ceSopenharmony_ci        }
78017fd14ceSopenharmony_ci        ret = gm->delMultiMembersFromGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID, DEL_MULTI_PARAMS);
78117fd14ceSopenharmony_ci    } while (0);
78217fd14ceSopenharmony_ci    DestroyDeviceAuthService();
78317fd14ceSopenharmony_ci    return ret;
78417fd14ceSopenharmony_ci}
78517fd14ceSopenharmony_ci
78617fd14ceSopenharmony_cistatic int32_t DevAuthTestCase015(void)
78717fd14ceSopenharmony_ci{
78817fd14ceSopenharmony_ci    DeleteDatabase();
78917fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
79017fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
79117fd14ceSopenharmony_ci        return ret;
79217fd14ceSopenharmony_ci    }
79317fd14ceSopenharmony_ci    do {
79417fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
79517fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
79617fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
79717fd14ceSopenharmony_ci            break;
79817fd14ceSopenharmony_ci        }
79917fd14ceSopenharmony_ci        ret = CreateDemoIdenticalAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, TEST_USER_ID);
80017fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
80117fd14ceSopenharmony_ci            break;
80217fd14ceSopenharmony_ci        }
80317fd14ceSopenharmony_ci        ret = gm->addMultiMembersToGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID, ADD_MULTI_PARAMS);
80417fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
80517fd14ceSopenharmony_ci            break;
80617fd14ceSopenharmony_ci        }
80717fd14ceSopenharmony_ci        ret = DeleteDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, DISBAND_PARAMS2);
80817fd14ceSopenharmony_ci    } while (0);
80917fd14ceSopenharmony_ci    DestroyDeviceAuthService();
81017fd14ceSopenharmony_ci    return ret;
81117fd14ceSopenharmony_ci}
81217fd14ceSopenharmony_ci
81317fd14ceSopenharmony_cistatic int32_t DevAuthTestCase016(void)
81417fd14ceSopenharmony_ci{
81517fd14ceSopenharmony_ci    DeleteDatabase();
81617fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
81717fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
81817fd14ceSopenharmony_ci        return ret;
81917fd14ceSopenharmony_ci    }
82017fd14ceSopenharmony_ci    do {
82117fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
82217fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
82317fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
82417fd14ceSopenharmony_ci            break;
82517fd14ceSopenharmony_ci        }
82617fd14ceSopenharmony_ci        ret = CreateDemoIdenticalAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, TEST_USER_ID);
82717fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
82817fd14ceSopenharmony_ci            break;
82917fd14ceSopenharmony_ci        }
83017fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS2);
83117fd14ceSopenharmony_ci    } while (0);
83217fd14ceSopenharmony_ci    DestroyDeviceAuthService();
83317fd14ceSopenharmony_ci    return ret;
83417fd14ceSopenharmony_ci}
83517fd14ceSopenharmony_ci
83617fd14ceSopenharmony_cistatic int32_t DevAuthTestCase018(void)
83717fd14ceSopenharmony_ci{
83817fd14ceSopenharmony_ci    DeleteDatabase();
83917fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
84017fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
84117fd14ceSopenharmony_ci        return ret;
84217fd14ceSopenharmony_ci    }
84317fd14ceSopenharmony_ci    do {
84417fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
84517fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
84617fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
84717fd14ceSopenharmony_ci            break;
84817fd14ceSopenharmony_ci        }
84917fd14ceSopenharmony_ci        ret = CreateDemoIdenticalAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, TEST_USER_ID);
85017fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
85117fd14ceSopenharmony_ci            break;
85217fd14ceSopenharmony_ci        }
85317fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS2);
85417fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
85517fd14ceSopenharmony_ci            break;
85617fd14ceSopenharmony_ci        }
85717fd14ceSopenharmony_ci        ret = DeleteDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, DISBAND_PARAMS3);
85817fd14ceSopenharmony_ci    } while (0);
85917fd14ceSopenharmony_ci    DestroyDeviceAuthService();
86017fd14ceSopenharmony_ci    return ret;
86117fd14ceSopenharmony_ci}
86217fd14ceSopenharmony_ci
86317fd14ceSopenharmony_cistatic int32_t DevAuthTestCase019(void)
86417fd14ceSopenharmony_ci{
86517fd14ceSopenharmony_ci    DeleteDatabase();
86617fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
86717fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
86817fd14ceSopenharmony_ci        return ret;
86917fd14ceSopenharmony_ci    }
87017fd14ceSopenharmony_ci    do {
87117fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
87217fd14ceSopenharmony_ci        ret = gm->regDataChangeListener(TEST_APP_ID, &g_listener);
87317fd14ceSopenharmony_ci    } while (0);
87417fd14ceSopenharmony_ci    DestroyDeviceAuthService();
87517fd14ceSopenharmony_ci    return ret;
87617fd14ceSopenharmony_ci}
87717fd14ceSopenharmony_ci
87817fd14ceSopenharmony_cistatic int32_t DevAuthTestCase020(void)
87917fd14ceSopenharmony_ci{
88017fd14ceSopenharmony_ci    DeleteDatabase();
88117fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
88217fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
88317fd14ceSopenharmony_ci        return ret;
88417fd14ceSopenharmony_ci    }
88517fd14ceSopenharmony_ci    do {
88617fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
88717fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
88817fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
88917fd14ceSopenharmony_ci            break;
89017fd14ceSopenharmony_ci        }
89117fd14ceSopenharmony_ci        ret = gm->regDataChangeListener(TEST_APP_ID, &g_listener);
89217fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
89317fd14ceSopenharmony_ci            break;
89417fd14ceSopenharmony_ci        }
89517fd14ceSopenharmony_ci        ret = CreateDemoIdenticalAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, TEST_USER_ID);
89617fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
89717fd14ceSopenharmony_ci            break;
89817fd14ceSopenharmony_ci        }
89917fd14ceSopenharmony_ci        ret = gm->addMultiMembersToGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID, ADD_MULTI_PARAMS);
90017fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
90117fd14ceSopenharmony_ci            break;
90217fd14ceSopenharmony_ci        }
90317fd14ceSopenharmony_ci        ret = gm->delMultiMembersFromGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID, DEL_MULTI_PARAMS);
90417fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
90517fd14ceSopenharmony_ci            break;
90617fd14ceSopenharmony_ci        }
90717fd14ceSopenharmony_ci        ret = DeleteDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, DISBAND_PARAMS2);
90817fd14ceSopenharmony_ci    } while (0);
90917fd14ceSopenharmony_ci    DestroyDeviceAuthService();
91017fd14ceSopenharmony_ci    return ret;
91117fd14ceSopenharmony_ci}
91217fd14ceSopenharmony_ci
91317fd14ceSopenharmony_cistatic int32_t DevAuthTestCase021(void)
91417fd14ceSopenharmony_ci{
91517fd14ceSopenharmony_ci    DeleteDatabase();
91617fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
91717fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
91817fd14ceSopenharmony_ci        return ret;
91917fd14ceSopenharmony_ci    }
92017fd14ceSopenharmony_ci    do {
92117fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
92217fd14ceSopenharmony_ci        ret = gm->regDataChangeListener(TEST_APP_ID, &g_listener);
92317fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
92417fd14ceSopenharmony_ci            break;
92517fd14ceSopenharmony_ci        }
92617fd14ceSopenharmony_ci        ret = gm->unRegDataChangeListener(TEST_APP_ID);
92717fd14ceSopenharmony_ci    } while (0);
92817fd14ceSopenharmony_ci    DestroyDeviceAuthService();
92917fd14ceSopenharmony_ci    return ret;
93017fd14ceSopenharmony_ci}
93117fd14ceSopenharmony_ci
93217fd14ceSopenharmony_cistatic int32_t DevAuthTestCase022(void)
93317fd14ceSopenharmony_ci{
93417fd14ceSopenharmony_ci    DeleteDatabase();
93517fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
93617fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
93717fd14ceSopenharmony_ci        return ret;
93817fd14ceSopenharmony_ci    }
93917fd14ceSopenharmony_ci    do {
94017fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
94117fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
94217fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
94317fd14ceSopenharmony_ci            break;
94417fd14ceSopenharmony_ci        }
94517fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
94617fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
94717fd14ceSopenharmony_ci            break;
94817fd14ceSopenharmony_ci        }
94917fd14ceSopenharmony_ci        ret = gm->checkAccessToGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID);
95017fd14ceSopenharmony_ci    } while (0);
95117fd14ceSopenharmony_ci    DestroyDeviceAuthService();
95217fd14ceSopenharmony_ci    return ret;
95317fd14ceSopenharmony_ci}
95417fd14ceSopenharmony_ci
95517fd14ceSopenharmony_cistatic int32_t DevAuthTestCase023(void)
95617fd14ceSopenharmony_ci{
95717fd14ceSopenharmony_ci    DeleteDatabase();
95817fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
95917fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
96017fd14ceSopenharmony_ci        return ret;
96117fd14ceSopenharmony_ci    }
96217fd14ceSopenharmony_ci    do {
96317fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
96417fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
96517fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
96617fd14ceSopenharmony_ci            break;
96717fd14ceSopenharmony_ci        }
96817fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
96917fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
97017fd14ceSopenharmony_ci            break;
97117fd14ceSopenharmony_ci        }
97217fd14ceSopenharmony_ci        char* returnRes = nullptr;
97317fd14ceSopenharmony_ci        ret = gm->getGroupInfoById(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID, &returnRes);
97417fd14ceSopenharmony_ci        if (ret != HC_SUCCESS || returnRes == nullptr) {
97517fd14ceSopenharmony_ci            ret = HC_ERROR;
97617fd14ceSopenharmony_ci        }
97717fd14ceSopenharmony_ci    } while (0);
97817fd14ceSopenharmony_ci    DestroyDeviceAuthService();
97917fd14ceSopenharmony_ci    return ret;
98017fd14ceSopenharmony_ci}
98117fd14ceSopenharmony_ci
98217fd14ceSopenharmony_cistatic int32_t DevAuthTestCase024(void)
98317fd14ceSopenharmony_ci{
98417fd14ceSopenharmony_ci    DeleteDatabase();
98517fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
98617fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
98717fd14ceSopenharmony_ci        return ret;
98817fd14ceSopenharmony_ci    }
98917fd14ceSopenharmony_ci    do {
99017fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
99117fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
99217fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
99317fd14ceSopenharmony_ci            break;
99417fd14ceSopenharmony_ci        }
99517fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
99617fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
99717fd14ceSopenharmony_ci            break;
99817fd14ceSopenharmony_ci        }
99917fd14ceSopenharmony_ci        uint32_t returnNum = 0;
100017fd14ceSopenharmony_ci        char* returnRes = nullptr;
100117fd14ceSopenharmony_ci        ret = gm->getGroupInfo(DEFAULT_OS_ACCOUNT, TEST_APP_ID, QUERY_PARAMS, &returnRes, &returnNum);
100217fd14ceSopenharmony_ci        if (ret != HC_SUCCESS || returnNum == 0 || returnRes == nullptr) {
100317fd14ceSopenharmony_ci            ret = HC_ERROR;
100417fd14ceSopenharmony_ci        }
100517fd14ceSopenharmony_ci    } while (0);
100617fd14ceSopenharmony_ci    DestroyDeviceAuthService();
100717fd14ceSopenharmony_ci    return ret;
100817fd14ceSopenharmony_ci}
100917fd14ceSopenharmony_ci
101017fd14ceSopenharmony_cistatic int32_t DevAuthTestCase025(void)
101117fd14ceSopenharmony_ci{
101217fd14ceSopenharmony_ci    DeleteDatabase();
101317fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
101417fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
101517fd14ceSopenharmony_ci        return ret;
101617fd14ceSopenharmony_ci    }
101717fd14ceSopenharmony_ci    do {
101817fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
101917fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
102017fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
102117fd14ceSopenharmony_ci            break;
102217fd14ceSopenharmony_ci        }
102317fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
102417fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
102517fd14ceSopenharmony_ci            break;
102617fd14ceSopenharmony_ci        }
102717fd14ceSopenharmony_ci        uint32_t returnNum = 0;
102817fd14ceSopenharmony_ci        char* returnRes = nullptr;
102917fd14ceSopenharmony_ci        ret = gm->getJoinedGroups(DEFAULT_OS_ACCOUNT, TEST_APP_ID, PEER_TO_PEER_GROUP, &returnRes, &returnNum);
103017fd14ceSopenharmony_ci        if (ret != HC_SUCCESS || returnNum == 0 || returnRes == nullptr) {
103117fd14ceSopenharmony_ci            ret = HC_ERROR;
103217fd14ceSopenharmony_ci        }
103317fd14ceSopenharmony_ci    } while (0);
103417fd14ceSopenharmony_ci    DestroyDeviceAuthService();
103517fd14ceSopenharmony_ci    return ret;
103617fd14ceSopenharmony_ci}
103717fd14ceSopenharmony_ci
103817fd14ceSopenharmony_cistatic int32_t DevAuthTestCase026(void)
103917fd14ceSopenharmony_ci{
104017fd14ceSopenharmony_ci    DeleteDatabase();
104117fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
104217fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
104317fd14ceSopenharmony_ci        return ret;
104417fd14ceSopenharmony_ci    }
104517fd14ceSopenharmony_ci    do {
104617fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
104717fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
104817fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
104917fd14ceSopenharmony_ci            break;
105017fd14ceSopenharmony_ci        }
105117fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
105217fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
105317fd14ceSopenharmony_ci            break;
105417fd14ceSopenharmony_ci        }
105517fd14ceSopenharmony_ci        uint32_t returnNum = 0;
105617fd14ceSopenharmony_ci        char* returnRes = nullptr;
105717fd14ceSopenharmony_ci        ret = gm->getRelatedGroups(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_AUTH_ID, &returnRes, &returnNum);
105817fd14ceSopenharmony_ci        if (ret != HC_SUCCESS || returnNum == 0 || returnRes == nullptr) {
105917fd14ceSopenharmony_ci            ret = HC_ERROR;
106017fd14ceSopenharmony_ci        }
106117fd14ceSopenharmony_ci    } while (0);
106217fd14ceSopenharmony_ci    DestroyDeviceAuthService();
106317fd14ceSopenharmony_ci    return ret;
106417fd14ceSopenharmony_ci}
106517fd14ceSopenharmony_ci
106617fd14ceSopenharmony_cistatic int32_t DevAuthTestCase027(void)
106717fd14ceSopenharmony_ci{
106817fd14ceSopenharmony_ci    DeleteDatabase();
106917fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
107017fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
107117fd14ceSopenharmony_ci        return ret;
107217fd14ceSopenharmony_ci    }
107317fd14ceSopenharmony_ci    do {
107417fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
107517fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
107617fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
107717fd14ceSopenharmony_ci            break;
107817fd14ceSopenharmony_ci        }
107917fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
108017fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
108117fd14ceSopenharmony_ci            break;
108217fd14ceSopenharmony_ci        }
108317fd14ceSopenharmony_ci        char* returnRes = nullptr;
108417fd14ceSopenharmony_ci        ret = gm->getDeviceInfoById(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_AUTH_ID, TEST_GROUP_ID, &returnRes);
108517fd14ceSopenharmony_ci        if (ret != HC_SUCCESS || returnRes == nullptr) {
108617fd14ceSopenharmony_ci            ret = HC_ERROR;
108717fd14ceSopenharmony_ci        }
108817fd14ceSopenharmony_ci    } while (0);
108917fd14ceSopenharmony_ci    DestroyDeviceAuthService();
109017fd14ceSopenharmony_ci    return ret;
109117fd14ceSopenharmony_ci}
109217fd14ceSopenharmony_ci
109317fd14ceSopenharmony_cistatic int32_t DevAuthTestCase028(void)
109417fd14ceSopenharmony_ci{
109517fd14ceSopenharmony_ci    DeleteDatabase();
109617fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
109717fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
109817fd14ceSopenharmony_ci        return ret;
109917fd14ceSopenharmony_ci    }
110017fd14ceSopenharmony_ci    do {
110117fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
110217fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
110317fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
110417fd14ceSopenharmony_ci            break;
110517fd14ceSopenharmony_ci        }
110617fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
110717fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
110817fd14ceSopenharmony_ci            break;
110917fd14ceSopenharmony_ci        }
111017fd14ceSopenharmony_ci        uint32_t returnNum = 0;
111117fd14ceSopenharmony_ci        char* returnRes = nullptr;
111217fd14ceSopenharmony_ci        ret = gm->getTrustedDevices(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID, &returnRes, &returnNum);
111317fd14ceSopenharmony_ci        if (ret != HC_SUCCESS || returnNum == 0 || returnRes == nullptr) {
111417fd14ceSopenharmony_ci            ret = HC_ERROR;
111517fd14ceSopenharmony_ci        }
111617fd14ceSopenharmony_ci    } while (0);
111717fd14ceSopenharmony_ci    DestroyDeviceAuthService();
111817fd14ceSopenharmony_ci    return ret;
111917fd14ceSopenharmony_ci}
112017fd14ceSopenharmony_ci
112117fd14ceSopenharmony_cistatic int32_t DevAuthTestCase029(void)
112217fd14ceSopenharmony_ci{
112317fd14ceSopenharmony_ci    DeleteDatabase();
112417fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
112517fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
112617fd14ceSopenharmony_ci        return ret;
112717fd14ceSopenharmony_ci    }
112817fd14ceSopenharmony_ci    do {
112917fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
113017fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
113117fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
113217fd14ceSopenharmony_ci            break;
113317fd14ceSopenharmony_ci        }
113417fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
113517fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
113617fd14ceSopenharmony_ci            break;
113717fd14ceSopenharmony_ci        }
113817fd14ceSopenharmony_ci        if (!gm->isDeviceInGroup(DEFAULT_OS_ACCOUNT, TEST_APP_ID, TEST_GROUP_ID, TEST_AUTH_ID)) {
113917fd14ceSopenharmony_ci            ret = HC_ERROR;
114017fd14ceSopenharmony_ci        }
114117fd14ceSopenharmony_ci    } while (0);
114217fd14ceSopenharmony_ci    DestroyDeviceAuthService();
114317fd14ceSopenharmony_ci    return ret;
114417fd14ceSopenharmony_ci}
114517fd14ceSopenharmony_ci
114617fd14ceSopenharmony_cistatic int32_t DevAuthTestCase030(void)
114717fd14ceSopenharmony_ci{
114817fd14ceSopenharmony_ci    DeleteDatabase();
114917fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
115017fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
115117fd14ceSopenharmony_ci        return ret;
115217fd14ceSopenharmony_ci    }
115317fd14ceSopenharmony_ci    do {
115417fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
115517fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
115617fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
115717fd14ceSopenharmony_ci            break;
115817fd14ceSopenharmony_ci        }
115917fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
116017fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
116117fd14ceSopenharmony_ci            break;
116217fd14ceSopenharmony_ci        }
116317fd14ceSopenharmony_ci        g_asyncStatus = ASYNC_STATUS_WAITING;
116417fd14ceSopenharmony_ci        bool isClient = true;
116517fd14ceSopenharmony_ci        SetDeviceStatus(isClient);
116617fd14ceSopenharmony_ci        ret = gm->addMemberToGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, ADD_PARAMS);
116717fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
116817fd14ceSopenharmony_ci            g_asyncStatus = ASYNC_STATUS_WAITING;
116917fd14ceSopenharmony_ci            return ret;
117017fd14ceSopenharmony_ci        }
117117fd14ceSopenharmony_ci        while (g_asyncStatus == ASYNC_STATUS_WAITING) {
117217fd14ceSopenharmony_ci            usleep(TEST_DEV_AUTH_SLEEP_TIME);
117317fd14ceSopenharmony_ci        }
117417fd14ceSopenharmony_ci        (void)memset_s(g_transmitData, TEST_TRANSMIT_DATA_LEN, 0, TEST_TRANSMIT_DATA_LEN);
117517fd14ceSopenharmony_ci        g_transmitDataLen = 0;
117617fd14ceSopenharmony_ci        g_asyncStatus = ASYNC_STATUS_WAITING;
117717fd14ceSopenharmony_ci        gm->cancelRequest(TEST_REQ_ID, TEST_APP_ID);
117817fd14ceSopenharmony_ci    } while (0);
117917fd14ceSopenharmony_ci    DestroyDeviceAuthService();
118017fd14ceSopenharmony_ci    return HC_SUCCESS;
118117fd14ceSopenharmony_ci}
118217fd14ceSopenharmony_ci
118317fd14ceSopenharmony_cistatic int32_t DevAuthTestCase031(void)
118417fd14ceSopenharmony_ci{
118517fd14ceSopenharmony_ci    DeleteDatabase();
118617fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
118717fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
118817fd14ceSopenharmony_ci        return ret;
118917fd14ceSopenharmony_ci    }
119017fd14ceSopenharmony_ci    do {
119117fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
119217fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
119317fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
119417fd14ceSopenharmony_ci            break;
119517fd14ceSopenharmony_ci        }
119617fd14ceSopenharmony_ci        gm->cancelRequest(TEST_REQ_ID, TEST_APP_ID);
119717fd14ceSopenharmony_ci    } while (0);
119817fd14ceSopenharmony_ci    DestroyDeviceAuthService();
119917fd14ceSopenharmony_ci    return HC_SUCCESS;
120017fd14ceSopenharmony_ci}
120117fd14ceSopenharmony_ci
120217fd14ceSopenharmony_cistatic int32_t DevAuthTestCase032(void)
120317fd14ceSopenharmony_ci{
120417fd14ceSopenharmony_ci    DeleteDatabase();
120517fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
120617fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
120717fd14ceSopenharmony_ci        return ret;
120817fd14ceSopenharmony_ci    }
120917fd14ceSopenharmony_ci    do {
121017fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
121117fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
121217fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
121317fd14ceSopenharmony_ci            break;
121417fd14ceSopenharmony_ci        }
121517fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
121617fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
121717fd14ceSopenharmony_ci            break;
121817fd14ceSopenharmony_ci        }
121917fd14ceSopenharmony_ci        ret = AddDemoMember();
122017fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
122117fd14ceSopenharmony_ci            break;
122217fd14ceSopenharmony_ci        }
122317fd14ceSopenharmony_ci        uint32_t returnNum = 0;
122417fd14ceSopenharmony_ci        char *returnRes = nullptr;
122517fd14ceSopenharmony_ci        ret = gm->getPkInfoList(DEFAULT_OS_ACCOUNT, TEST_APP_ID, QUERY_PK_PARAMS, &returnRes, &returnNum);
122617fd14ceSopenharmony_ci        if (ret != HC_SUCCESS || returnNum == 0 || returnRes == nullptr) {
122717fd14ceSopenharmony_ci            ret = HC_ERROR;
122817fd14ceSopenharmony_ci        }
122917fd14ceSopenharmony_ci    } while (0);
123017fd14ceSopenharmony_ci    DestroyDeviceAuthService();
123117fd14ceSopenharmony_ci    return ret;
123217fd14ceSopenharmony_ci}
123317fd14ceSopenharmony_ci
123417fd14ceSopenharmony_cistatic int32_t DevAuthTestCase033(void)
123517fd14ceSopenharmony_ci{
123617fd14ceSopenharmony_ci    DeleteDatabase();
123717fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
123817fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
123917fd14ceSopenharmony_ci        return ret;
124017fd14ceSopenharmony_ci    }
124117fd14ceSopenharmony_ci    do {
124217fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
124317fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
124417fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
124517fd14ceSopenharmony_ci            break;
124617fd14ceSopenharmony_ci        }
124717fd14ceSopenharmony_ci        ret = CreateDemoGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, CREATE_PARAMS);
124817fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
124917fd14ceSopenharmony_ci            break;
125017fd14ceSopenharmony_ci        }
125117fd14ceSopenharmony_ci        ret = AddDemoMember();
125217fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
125317fd14ceSopenharmony_ci            break;
125417fd14ceSopenharmony_ci        }
125517fd14ceSopenharmony_ci        uint32_t returnNum = 0;
125617fd14ceSopenharmony_ci        char *returnRes = nullptr;
125717fd14ceSopenharmony_ci        ret = gm->getPkInfoList(DEFAULT_OS_ACCOUNT, TEST_APP_ID, QUERY_PK_PARAMS2, &returnRes, &returnNum);
125817fd14ceSopenharmony_ci        if (ret != HC_SUCCESS || returnNum == 0 || returnRes == nullptr) {
125917fd14ceSopenharmony_ci            ret = HC_ERROR;
126017fd14ceSopenharmony_ci        }
126117fd14ceSopenharmony_ci    } while (0);
126217fd14ceSopenharmony_ci    DestroyDeviceAuthService();
126317fd14ceSopenharmony_ci    return ret;
126417fd14ceSopenharmony_ci}
126517fd14ceSopenharmony_ci
126617fd14ceSopenharmony_cistatic int32_t DevAuthTestCase034(void)
126717fd14ceSopenharmony_ci{
126817fd14ceSopenharmony_ci    DeleteDatabase();
126917fd14ceSopenharmony_ci    SetDeviceStatus(true);
127017fd14ceSopenharmony_ci    int32_t ret = InitDeviceAuthService();
127117fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
127217fd14ceSopenharmony_ci        return ret;
127317fd14ceSopenharmony_ci    }
127417fd14ceSopenharmony_ci    DestroyDeviceAuthService();
127517fd14ceSopenharmony_ci    SetDeviceStatus(false);
127617fd14ceSopenharmony_ci    ret = InitDeviceAuthService();
127717fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
127817fd14ceSopenharmony_ci        return ret;
127917fd14ceSopenharmony_ci    }
128017fd14ceSopenharmony_ci    DestroyDeviceAuthService();
128117fd14ceSopenharmony_ci    SetDeviceStatus(true);
128217fd14ceSopenharmony_ci    ret = InitDeviceAuthService();
128317fd14ceSopenharmony_ci    if (ret != HC_SUCCESS) {
128417fd14ceSopenharmony_ci        return ret;
128517fd14ceSopenharmony_ci    }
128617fd14ceSopenharmony_ci    do {
128717fd14ceSopenharmony_ci        const DeviceGroupManager *gm = GetGmInstance();
128817fd14ceSopenharmony_ci        ret = gm->regCallback(TEST_APP_ID, &g_gmCallback);
128917fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
129017fd14ceSopenharmony_ci            break;
129117fd14ceSopenharmony_ci        }
129217fd14ceSopenharmony_ci        SetDeviceStatus(true);
129317fd14ceSopenharmony_ci        ret = CreateDemoSymIdenticalAccountGroup(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, TEST_APP_ID, TEST_USER_ID);
129417fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
129517fd14ceSopenharmony_ci            break;
129617fd14ceSopenharmony_ci        }
129717fd14ceSopenharmony_ci        SetDeviceStatus(false);
129817fd14ceSopenharmony_ci        ret = CreateDemoSymIdenticalAccountGroup(TEST_AUTH_OS_ACCOUNT_ID, TEST_REQ_ID, TEST_APP_ID, TEST_USER_ID);
129917fd14ceSopenharmony_ci        if (ret != HC_SUCCESS) {
130017fd14ceSopenharmony_ci            break;
130117fd14ceSopenharmony_ci        }
130217fd14ceSopenharmony_ci        ret = AuthDemoMember();
130317fd14ceSopenharmony_ci    } while (0);
130417fd14ceSopenharmony_ci    DestroyDeviceAuthService();
130517fd14ceSopenharmony_ci    return ret;
130617fd14ceSopenharmony_ci}
130717fd14ceSopenharmony_ci
130817fd14ceSopenharmony_cistatic int32_t DevAuthTestCase051(void)
130917fd14ceSopenharmony_ci{
131017fd14ceSopenharmony_ci    SetPakeV1Supported(false);
131117fd14ceSopenharmony_ci    SetSessionV2Supported(false);
131217fd14ceSopenharmony_ci    int32_t ret = DevAuthTestCase007();
131317fd14ceSopenharmony_ci    SetPakeV1Supported(true);
131417fd14ceSopenharmony_ci    SetSessionV2Supported(true);
131517fd14ceSopenharmony_ci    return ret;
131617fd14ceSopenharmony_ci}
131717fd14ceSopenharmony_ci
131817fd14ceSopenharmony_cistatic int32_t DevAuthTestCase052(void)
131917fd14ceSopenharmony_ci{
132017fd14ceSopenharmony_ci    SetIsoSupported(false);
132117fd14ceSopenharmony_ci    SetPakeV1Supported(false);
132217fd14ceSopenharmony_ci    SetSessionV2Supported(false);
132317fd14ceSopenharmony_ci    int32_t ret = DevAuthTestCase007();
132417fd14ceSopenharmony_ci    SetIsoSupported(true);
132517fd14ceSopenharmony_ci    SetPakeV1Supported(true);
132617fd14ceSopenharmony_ci    SetSessionV2Supported(true);
132717fd14ceSopenharmony_ci    return ret;
132817fd14ceSopenharmony_ci}
132917fd14ceSopenharmony_ci
133017fd14ceSopenharmony_cistatic int32_t DevAuthTestCase053(void)
133117fd14ceSopenharmony_ci{
133217fd14ceSopenharmony_ci    SetIsoSupported(false);
133317fd14ceSopenharmony_ci    SetPakeV1Supported(false);
133417fd14ceSopenharmony_ci    int32_t ret = DevAuthTestCase007();
133517fd14ceSopenharmony_ci    SetIsoSupported(true);
133617fd14ceSopenharmony_ci    SetPakeV1Supported(true);
133717fd14ceSopenharmony_ci    return ret;
133817fd14ceSopenharmony_ci}
133917fd14ceSopenharmony_ci
134017fd14ceSopenharmony_cibool FuzzDoDevAuthFuncFuzz(const uint8_t* data, size_t size)
134117fd14ceSopenharmony_ci{
134217fd14ceSopenharmony_ci    (void)data;
134317fd14ceSopenharmony_ci    (void)size;
134417fd14ceSopenharmony_ci    (void)DevAuthTestCase004();
134517fd14ceSopenharmony_ci    (void)DevAuthTestCase005();
134617fd14ceSopenharmony_ci    (void)DevAuthTestCase006();
134717fd14ceSopenharmony_ci    (void)DevAuthTestCase007();
134817fd14ceSopenharmony_ci    (void)DevAuthTestCase008();
134917fd14ceSopenharmony_ci    (void)DevAuthTestCase009();
135017fd14ceSopenharmony_ci    (void)DevAuthTestCase010();
135117fd14ceSopenharmony_ci    (void)DevAuthTestCase011();
135217fd14ceSopenharmony_ci    (void)DevAuthTestCase012();
135317fd14ceSopenharmony_ci    (void)DevAuthTestCase013();
135417fd14ceSopenharmony_ci    (void)DevAuthTestCase014();
135517fd14ceSopenharmony_ci    (void)DevAuthTestCase015();
135617fd14ceSopenharmony_ci    (void)DevAuthTestCase016();
135717fd14ceSopenharmony_ci    (void)DevAuthTestCase018();
135817fd14ceSopenharmony_ci    (void)DevAuthTestCase019();
135917fd14ceSopenharmony_ci    (void)DevAuthTestCase020();
136017fd14ceSopenharmony_ci    (void)DevAuthTestCase021();
136117fd14ceSopenharmony_ci    (void)DevAuthTestCase022();
136217fd14ceSopenharmony_ci    (void)DevAuthTestCase023();
136317fd14ceSopenharmony_ci    (void)DevAuthTestCase024();
136417fd14ceSopenharmony_ci    (void)DevAuthTestCase025();
136517fd14ceSopenharmony_ci    (void)DevAuthTestCase026();
136617fd14ceSopenharmony_ci    (void)DevAuthTestCase027();
136717fd14ceSopenharmony_ci    (void)DevAuthTestCase028();
136817fd14ceSopenharmony_ci    (void)DevAuthTestCase029();
136917fd14ceSopenharmony_ci    (void)DevAuthTestCase030();
137017fd14ceSopenharmony_ci    (void)DevAuthTestCase031();
137117fd14ceSopenharmony_ci    (void)DevAuthTestCase032();
137217fd14ceSopenharmony_ci    (void)DevAuthTestCase033();
137317fd14ceSopenharmony_ci    (void)DevAuthTestCase034();
137417fd14ceSopenharmony_ci    (void)DevAuthTestCase051();
137517fd14ceSopenharmony_ci    (void)DevAuthTestCase052();
137617fd14ceSopenharmony_ci    (void)DevAuthTestCase053();
137717fd14ceSopenharmony_ci    return true;
137817fd14ceSopenharmony_ci}
137917fd14ceSopenharmony_ci}
138017fd14ceSopenharmony_ci
138117fd14ceSopenharmony_ci/* Fuzzer entry point */
138217fd14ceSopenharmony_ciextern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
138317fd14ceSopenharmony_ci{
138417fd14ceSopenharmony_ci    /* Run your code on data */
138517fd14ceSopenharmony_ci    OHOS::FuzzDoDevAuthFuncFuzz(data, size);
138617fd14ceSopenharmony_ci    return 0;
138717fd14ceSopenharmony_ci}
138817fd14ceSopenharmony_ci
1389