• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <string>
17 #include <cstdlib>
18 #include <random>
19 #include <utility>
20 #include <vector>
21 #include <fuzzer/FuzzedDataProvider.h>
22 
23 #include "device_manager_service_listener.h"
24 #include "dm_anonymous.h"
25 #include "dm_auth_manager.h"
26 #include "dm_constants.h"
27 #include "hichain_connector.h"
28 
29 #include "hichain_connector_fuzzer.h"
30 
31 namespace OHOS {
32 namespace DistributedHardware {
33 constexpr const char* FIELD_OPERATION_CODE = "operationCode";
34 constexpr const char* FIELD_META_NODE_TYPE = "metaNodeType";
35 constexpr const char* FIELD_TYPE = "TType";
36 
37 class HiChainConnectorCallbackTest : public IHiChainConnectorCallback {
38 public:
HiChainConnectorCallbackTest()39     HiChainConnectorCallbackTest() {}
~HiChainConnectorCallbackTest()40     virtual ~HiChainConnectorCallbackTest() {}
OnGroupCreated(int64_t requestId,const std::string & groupId)41     void OnGroupCreated(int64_t requestId, const std::string &groupId) override
42     {
43         (void)requestId;
44         (void)groupId;
45     }
OnMemberJoin(int64_t requestId,int32_t status,int32_t operationCode)46     void OnMemberJoin(int64_t requestId, int32_t status, int32_t operationCode) override
47     {
48         (void)requestId;
49         (void)status;
50         (void)operationCode;
51     }
GetConnectAddr(std::string deviceId)52     std::string GetConnectAddr(std::string deviceId) override
53     {
54         (void)deviceId;
55         return "";
56     }
GetPinCode(std::string & code)57     int32_t GetPinCode(std::string &code) override
58     {
59         (void)code;
60         return DM_OK;
61     }
62 };
63 
AddGroupInfo(std::vector<GroupInfo> & groupList)64 void AddGroupInfo(std::vector<GroupInfo> &groupList)
65 {
66     GroupInfo groupInfo1;
67     groupInfo1.groupId = "234";
68     groupInfo1.groupType = GROUP_TYPE_IDENTICAL_ACCOUNT_GROUP;
69     groupList.push_back(groupInfo1);
70     GroupInfo groupInfo2;
71     groupInfo2.groupId = "1485";
72     groupInfo2.groupOwner = DM_PKG_NAME;
73     groupList.push_back(groupInfo2);
74 }
75 
GenerateJsonObject(JsonObject & jsonObject,FuzzedDataProvider & fdp)76 void GenerateJsonObject(JsonObject &jsonObject, FuzzedDataProvider &fdp)
77 {
78     jsonObject[FIELD_GROUP_NAME] = fdp.ConsumeRandomLengthString();
79     jsonObject[FIELD_GROUP_ID] = fdp.ConsumeRandomLengthString();
80     jsonObject[FIELD_GROUP_OWNER] = fdp.ConsumeRandomLengthString();
81     jsonObject[FIELD_GROUP_TYPE] = fdp.ConsumeIntegral<int32_t>();
82     jsonObject[FIELD_GROUP_VISIBILITY] = fdp.ConsumeIntegral<int32_t>();
83     jsonObject[FIELD_USER_ID] = fdp.ConsumeRandomLengthString();
84 }
85 
AddAclInfo(std::vector<std::pair<int32_t,std::string>> & delACLInfoVec,std::vector<int32_t> & userIdVec)86 void AddAclInfo(std::vector<std::pair<int32_t, std::string>> &delACLInfoVec, std::vector<int32_t> &userIdVec)
87 {
88     int32_t key = 12;
89     std::string value = "acl_info1";
90     delACLInfoVec.push_back(std::make_pair(key, value));
91     userIdVec.push_back(key);
92     int32_t key1 = 23;
93     value = "acl_info2";
94     delACLInfoVec.push_back(std::make_pair(key1, value));
95     userIdVec.push_back(key);
96     int32_t key2 = 25;
97     value = "acl_info3";
98     delACLInfoVec.push_back(std::make_pair(key2, value));
99     userIdVec.push_back(key);
100 }
101 
HiChainConnectorFuzzTest(const uint8_t * data,size_t size)102 void HiChainConnectorFuzzTest(const uint8_t* data, size_t size)
103 {
104     if ((data == nullptr) || (size < (sizeof(int32_t) + sizeof(int32_t) + sizeof(int32_t)))) {
105         return;
106     }
107 
108     std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
109     hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
110 
111     FuzzedDataProvider fdp(data, size);
112     std::string userId(reinterpret_cast<const char*>(data), size);
113     int32_t authType = fdp.ConsumeIntegral<int32_t>();
114     std::vector<GroupInfo> groupList;
115     std::string queryParams(reinterpret_cast<const char*>(data), size);
116     std::string deviceId(reinterpret_cast<const char*>(data), size);
117     std::string reqDeviceId(reinterpret_cast<const char*>(data), size);
118     std::string hostDevice(reinterpret_cast<const char*>(data), size);
119     std::vector<std::string> remoteGroupIdList;
120     int32_t groupType = fdp.ConsumeIntegral<int32_t>();
121     JsonObject jsonDeviceList;
122     std::string groupOwner(reinterpret_cast<const char*>(data), size);
123     std::string credentialInfo(reinterpret_cast<const char*>(data), size);
124     std::string jsonStr(reinterpret_cast<const char*>(data), size);
125     std::vector<std::string> udidList;
126     std::string pkgNameStr(reinterpret_cast<const char*>(data), size);
127     int32_t delUserid = fdp.ConsumeIntegral<int32_t>();
128 
129     hichainConnector->IsRedundanceGroup(userId, authType, groupList);
130     hichainConnector->GetGroupInfo(queryParams, groupList);
131     hichainConnector->GetGroupInfo(delUserid, queryParams, groupList);
132     hichainConnector->GetGroupType(deviceId);
133     hichainConnector->AddMember(deviceId, queryParams);
134     hichainConnector->GetConnectPara(deviceId, reqDeviceId);
135     hichainConnector->IsDevicesInP2PGroup(hostDevice, reqDeviceId);
136     hichainConnector->SyncGroups(deviceId, remoteGroupIdList);
137     hichainConnector->DeleteTimeOutGroup(deviceId.data());
138     hichainConnector->getRegisterInfo(queryParams, jsonStr);
139     hichainConnector->GetGroupId(userId, groupType, queryParams);
140     hichainConnector->addMultiMembers(groupType, userId, jsonDeviceList);
141     hichainConnector->GetGroupIdExt(userId, groupType, queryParams, groupOwner);
142     hichainConnector->ParseRemoteCredentialExt(credentialInfo, queryParams, groupOwner);
143     hichainConnector->addMultiMembersExt(credentialInfo);
144     hichainConnector->GetTrustedDevices(deviceId);
145     hichainConnector->GetTrustedDevicesUdid(jsonStr.data(), udidList);
146     hichainConnector->DeleteAllGroup(delUserid);
147     hichainConnector->GetRelatedGroupsCommon(deviceId, pkgNameStr.data(), groupList);
148     hichainConnector->UnRegisterHiChainCallback();
149 }
150 
HiChainConnectorSecondFuzzTest(const uint8_t * data,size_t size)151 void HiChainConnectorSecondFuzzTest(const uint8_t* data, size_t size)
152 {
153     std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
154     hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
155 
156     std::vector<GroupInfo> groupList;
157     JsonObject jsonDeviceList;
158     GroupInfo groupInfo;
159     std::vector<std::string> syncGroupList;
160     hichainConnector->GetSyncGroupList(groupList, syncGroupList);
161     hichainConnector->IsGroupInfoInvalid(groupInfo);
162     hichainConnector->UnRegisterHiChainGroupCallback();
163     hichainConnector->GetJsonStr(jsonDeviceList, "key");
164 }
165 
HiChainConnectorThirdFuzzTest(const uint8_t * data,size_t size)166 void HiChainConnectorThirdFuzzTest(const uint8_t* data, size_t size)
167 {
168     if ((data == nullptr) || (size < (sizeof(int64_t) + sizeof(int32_t) + sizeof(int32_t) + sizeof(int32_t)))) {
169         return;
170     }
171     FuzzedDataProvider fdp(data, size);
172     std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
173     hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
174     int64_t requestId = fdp.ConsumeIntegral<int64_t>();
175     std::string groupName = "groupName";
176     GroupInfo groupInfo;
177     std::string userId(reinterpret_cast<const char*>(data), size);
178     int32_t authType = fdp.ConsumeIntegral<int32_t>();
179     std::vector<GroupInfo> groupList;
180     std::string queryParams(reinterpret_cast<const char*>(data), size);
181     std::string pkgName(reinterpret_cast<const char*>(data), size);
182     std::string deviceId(reinterpret_cast<const char*>(data), size);
183     std::string reqDeviceId(reinterpret_cast<const char*>(data), size);
184     JsonObject jsonOutObj;
185     std::shared_ptr<IDmGroupResCallback> callback;
186     std::string jsonStr(reinterpret_cast<const char*>(data), size);
187     int32_t groupType = fdp.ConsumeIntegral<int32_t>();
188     std::string reqParams(reinterpret_cast<const char*>(data), size);
189     std::string credentialInfo(reinterpret_cast<const char*>(data), size);
190     hichainConnector->deviceGroupManager_ = nullptr;
191     hichainConnector->AddMember(deviceId, queryParams);
192     hichainConnector->getRegisterInfo(queryParams, jsonStr);
193     hichainConnector->addMultiMembers(groupType, userId, jsonOutObj);
194     hichainConnector->addMultiMembersExt(credentialInfo);
195     hichainConnector->deleteMultiMembers(groupType, userId, jsonOutObj);
196     hichainConnector->GetGroupInfoCommon(authType, queryParams, pkgName.c_str(), groupList);
197     hichainConnector->hiChainConnectorCallback_ = nullptr;
198     hichainConnector->GetConnectPara(deviceId, reqDeviceId);
199     char *ret = hichainConnector->onRequest(requestId, GroupOperationCode::MEMBER_JOIN, reqParams.c_str());
200     if (ret != nullptr) {
201         free(ret);
202         ret = nullptr;
203     }
204     hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
205     if (hichainConnector->deviceGroupManager_ == nullptr) {
206         hichainConnector->deviceGroupManager_ = GetGmInstance();
207     }
208     hichainConnector->IsGroupCreated(groupName, groupInfo);
209     hichainConnector->GetGroupInfoExt(authType, queryParams, groupList);
210     hichainConnector->GetGroupInfoCommon(authType, queryParams, pkgName.c_str(), groupList);
211     hichainConnector->RegisterHiChainGroupCallback(callback);
212     hichainConnector->GetJsonInt(jsonOutObj, "key");
213     hichainConnector->deleteMultiMembers(groupType, userId, jsonOutObj);
214     hichainConnector->DeleteAllGroupByUdid(reqParams);
215 }
216 
HiChainConnectorForthFuzzTest(const uint8_t * data,size_t size)217 void HiChainConnectorForthFuzzTest(const uint8_t* data, size_t size)
218 {
219     if ((data == nullptr) || (size < sizeof(int64_t) + sizeof(int32_t))) {
220         return;
221     }
222 
223     std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
224     hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
225     FuzzedDataProvider fdp(data, size);
226     int64_t requestId = fdp.ConsumeIntegral<int64_t>();
227     std::string groupName(reinterpret_cast<const char*>(data), size);
228     std::string groupId = "groupId_forth";
229     std::string deviceId = "deviceId_forth";
230     std::string returnData(reinterpret_cast<const char*>(data), size);
231     std::string userId = "userId_forth";
232     int32_t authType = fdp.ConsumeIntegral<int32_t>();
233     int errCode = 102;
234     std::vector<std::string> syncGroupList;
235     std::vector<std::pair<int32_t, std::string>> delACLInfoVec;
236     std::vector<int32_t> userIdVec;
237     hichainConnector->DeleteGroupByACL(delACLInfoVec, userIdVec);
238     std::vector<GroupInfo> groupList;
239     AddGroupInfo(groupList);
240     AddAclInfo(delACLInfoVec, userIdVec);
241     hichainConnector->DeleteGroup(groupId);
242     hichainConnector->DeleteGroupExt(groupId);
243     hichainConnector->DeleteGroup(authType, groupId);
244     hichainConnector->DeleteGroup(requestId, userId, authType);
245     hichainConnector->DelMemberFromGroup(groupId, deviceId);
246     hichainConnector->DeleteRedundanceGroup(userId);
247     hichainConnector->DealRedundanceGroup(userId, authType);
248     hichainConnector->DeleteGroupByACL(delACLInfoVec, userIdVec);
249     hichainConnector->IsNeedDelete(groupName, authType, delACLInfoVec);
250     hichainConnector->onFinish(requestId, GroupOperationCode::MEMBER_JOIN, returnData.c_str());
251     hichainConnector->onError(requestId, GroupOperationCode::MEMBER_JOIN, errCode, returnData.c_str());
252     char *ret = hichainConnector->onRequest(requestId, GroupOperationCode::MEMBER_JOIN, returnData.c_str());
253     if (ret != nullptr) {
254         free(ret);
255         ret = nullptr;
256     }
257     hichainConnector->onFinish(requestId, GroupOperationCode::GROUP_CREATE, returnData.c_str());
258     hichainConnector->onError(requestId, GroupOperationCode::GROUP_CREATE, errCode, returnData.c_str());
259     hichainConnector->onFinish(requestId, GroupOperationCode::MEMBER_DELETE, returnData.c_str());
260     hichainConnector->onError(requestId, GroupOperationCode::MEMBER_DELETE, errCode, returnData.c_str());
261     hichainConnector->onFinish(requestId, GroupOperationCode::GROUP_DISBAND, returnData.c_str());
262     hichainConnector->onError(requestId, GroupOperationCode::GROUP_DISBAND, errCode, returnData.c_str());
263     hichainConnector->GenRequestId();
264     hichainConnector->GetRelatedGroups(deviceId, groupList);
265     hichainConnector->GetRelatedGroupsExt(deviceId, groupList);
266     hichainConnector->GetSyncGroupList(groupList, syncGroupList);
267     hichainConnector->GetGroupId(userId, authType, userId);
268 }
269 
HiChainConnectorFifthFuzzTest(const uint8_t * data,size_t size)270 void HiChainConnectorFifthFuzzTest(const uint8_t* data, size_t size)
271 {
272     if ((data == nullptr) || (size < sizeof(int64_t) + sizeof(int32_t) + sizeof(int32_t))) {
273         return;
274     }
275 
276     std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
277     hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
278     FuzzedDataProvider fdp(data, size);
279     int64_t requestId = fdp.ConsumeIntegral<int64_t>();
280     std::string groupName = "groupName_fifth";
281     int32_t authType = fdp.ConsumeIntegral<int32_t>();
282     std::string params = "params";
283     int32_t osAccountUserId = fdp.ConsumeIntegral<int32_t>();
284     JsonObject jsonDeviceList;
285     std::vector<std::pair<int32_t, std::string>> delACLInfoVec;
286     std::vector<int32_t> userIdVec;
287     std::vector<std::pair<int32_t, std::string>> delAclInfoVec1;
288     std::string jsonStr = R"({"content": {"deviceid": "123"}}, authId: "123456"))";
289     std::vector<std::string> udidList;
290     int32_t key = 12;
291     std::string value = "acl_info1";
292     std::string credentialInfo = R"({"content": {"deviceid": "123"}}, authId: "123456"))";
293     std::string groupOwner(reinterpret_cast<const char*>(data), size);
294     delAclInfoVec1.push_back(std::make_pair(key, value));
295     JsonObject jsonObj;
296     jsonObj[AUTH_TYPE] = 1;
297     jsonObj[FIELD_USER_ID] = "123456";
298     jsonObj[FIELD_CREDENTIAL_TYPE] = 1;
299     jsonObj[FIELD_OPERATION_CODE] = 1;
300     jsonObj[FIELD_TYPE] = "filed_type";
301     jsonObj[FIELD_DEVICE_LIST] = "device_list";
302     hichainConnector->deviceGroupManager_ = nullptr;
303     hichainConnector->CreateGroup(requestId, groupName);
304     hichainConnector->CreateGroup(requestId, authType, groupName, jsonDeviceList);
305     if (hichainConnector->deviceGroupManager_ == nullptr) {
306         hichainConnector->deviceGroupManager_ = GetGmInstance();
307     }
308     hichainConnector->CreateGroup(requestId, groupName);
309     hichainConnector->CreateGroup(requestId, authType, groupName, jsonDeviceList);
310     hichainConnector->ParseRemoteCredential(authType, groupName, jsonDeviceList, params, osAccountUserId);
311     hichainConnector->ParseRemoteCredential(authType, "", jsonDeviceList, params, osAccountUserId);
312     hichainConnector->IsNeedDelete(groupName, authType, delACLInfoVec);
313     hichainConnector->DeleteGroupByACL(delAclInfoVec1, userIdVec);
314     hichainConnector->GetTrustedDevicesUdid(jsonStr.data(), udidList);
315     jsonStr = R"({"content": {"deviceid": "123"}}, authId: "123456")";
316     hichainConnector->GetTrustedDevicesUdid(jsonStr.data(), udidList);
317     jsonStr = R"({"content": {"deviceid": "123"}}, localId: "123456")";
318     hichainConnector->GetTrustedDevicesUdid(jsonStr.data(), udidList);
319 }
320 
HiChainConnectorSixthFuzzTest(const uint8_t * data,size_t size)321 void HiChainConnectorSixthFuzzTest(const uint8_t* data, size_t size)
322 {
323     if ((data == nullptr) || (size < sizeof(int32_t))) {
324         return;
325     }
326 
327     std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
328     hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
329     std::string groupOwner(reinterpret_cast<const char*>(data), size);
330     JsonObject jsonObj;
331     std::string deviceId = "deviceId";
332     std::string key = "localDeviceId";
333     jsonObj["deviceId"] = 1;
334     hichainConnector->GetJsonInt(jsonObj, key);
335     hichainConnector->GetJsonInt(jsonObj, key);
336     jsonObj[key] = 1;
337     jsonObj["deviceName"] = "devieName1";
338     hichainConnector->GetJsonInt(jsonObj, "devieName");
339     hichainConnector->AddMember(deviceId, jsonObj.Dump());
340     jsonObj[TAG_DEVICE_ID] = "deviceId_001";
341     jsonObj[PIN_CODE_KEY] = 1;
342     jsonObj[TAG_GROUP_ID] = "groupId";
343     jsonObj[TAG_REQUEST_ID] = 1;
344     jsonObj[TAG_GROUP_NAME] = "groupName";
345     hichainConnector->AddMember(deviceId, jsonObj.Dump());
346 
347     JsonObject jsonObjCre;
348     std::string params;
349     jsonObjCre[AUTH_TYPE] = 1;
350     jsonObjCre["userId"] = "user_001";
351     jsonObjCre[FIELD_CREDENTIAL_TYPE] = 1;
352     jsonObjCre[FIELD_OPERATION_CODE] = 1;
353     jsonObjCre[FIELD_META_NODE_TYPE] = "metaNode_002";
354     jsonObjCre[FIELD_DEVICE_LIST] = "deviceList";
355     std::string credentialInfo = jsonObjCre.Dump();
356     hichainConnector->ParseRemoteCredentialExt(credentialInfo, params, groupOwner);
357     int32_t groupType = *(reinterpret_cast<const int32_t*>(data));
358     JsonObject jsonDeviceList;
359     int32_t osAccountUserId = 0;
360     std::string userId = "user_002";
361     std::vector<std::string> fieldDeviceList = {"deviceList"};
362     jsonDeviceList[FIELD_DEVICE_LIST] = fieldDeviceList;
363     hichainConnector->ParseRemoteCredential(groupType, userId, jsonDeviceList, params, osAccountUserId);
364     FuzzedDataProvider fdp(data, size);
365     int32_t userIdInt = fdp.ConsumeIntegral<int32_t>();
366     std::string groupId = fdp.ConsumeRandomLengthString();
367     hichainConnector->DeleteGroupExt(userIdInt, groupId);
368     GroupInfo groupInfo;
369     GenerateJsonObject(jsonObj, fdp);
370     FromJson(jsonObj, groupInfo);
371 }
372 
HiChainConnectorSevenhFuzzTest(const uint8_t * data,size_t size)373 void HiChainConnectorSevenhFuzzTest(const uint8_t* data, size_t size)
374 {
375     if ((data == nullptr) || (size < sizeof(int32_t) + sizeof(int32_t))) {
376         return;
377     }
378 
379     std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
380     hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
381     std::vector<std::pair<int32_t, std::string>> delACLInfoVec;
382     delACLInfoVec.push_back(std::make_pair(1, "aclinfo_001"));
383     std::vector<int32_t> userIdVec;
384     hichainConnector->DeleteGroupByACL(delACLInfoVec, userIdVec);
385     std::string groupName = "";
386     FuzzedDataProvider fdp(data, size);
387     int32_t userId = fdp.ConsumeIntegral<int32_t>();
388     hichainConnector->IsNeedDelete(groupName, userId, delACLInfoVec);
389     userId = 1;
390     groupName = "aclinfo_001";
391     hichainConnector->IsNeedDelete(groupName, userId, delACLInfoVec);
392     std::vector<std::string> udidList;
393     JsonObject jsonObject;
394     std::string jsonStr = "dkocosdpa";
395     hichainConnector->GetTrustedDevicesUdid(jsonStr.data(), udidList);
396     jsonObject["authId"] = 1;
397     jsonStr = jsonObject.Dump();
398     hichainConnector->GetTrustedDevicesUdid(jsonStr.data(), udidList);
399 
400     jsonObject["authId"] = "authInfoId";
401     jsonStr = jsonObject.Dump();
402     hichainConnector->GetTrustedDevicesUdid(jsonStr.data(), udidList);
403     hichainConnector->deviceGroupManager_ = nullptr;
404     int32_t groupType = fdp.ConsumeIntegral<int32_t>();
405     std::string usersId(reinterpret_cast<const char*>(data), size);
406     JsonObject jsonDeviceList;
407     hichainConnector->deleteMultiMembers(groupType, usersId, jsonDeviceList);
408 }
409 
GetGroupInfoExtFuzzTest(const uint8_t * data,size_t size)410 void GetGroupInfoExtFuzzTest(const uint8_t* data, size_t size)
411 {
412     if ((data == nullptr) || (size < sizeof(int32_t))) {
413         return;
414     }
415     FuzzedDataProvider fdp(data, size);
416 
417     int32_t userId = fdp.ConsumeIntegral<int32_t>();
418     int32_t maxStringLength = 64;
419     std::string queryParams = fdp.ConsumeRandomLengthString(maxStringLength);
420     std::vector<GroupInfo> groupList;
421 
422     std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
423     hichainConnector->GetGroupInfoExt(userId, queryParams, groupList);
424 }
425 }
426 }
427 
428 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)429 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
430 {
431     /* Run your code on data */
432     OHOS::DistributedHardware::HiChainConnectorFuzzTest(data, size);
433     OHOS::DistributedHardware::HiChainConnectorSecondFuzzTest(data, size);
434     OHOS::DistributedHardware::HiChainConnectorThirdFuzzTest(data, size);
435     OHOS::DistributedHardware::HiChainConnectorForthFuzzTest(data, size);
436     OHOS::DistributedHardware::HiChainConnectorFifthFuzzTest(data, size);
437     OHOS::DistributedHardware::HiChainConnectorSixthFuzzTest(data, size);
438     OHOS::DistributedHardware::HiChainConnectorSevenhFuzzTest(data, size);
439     OHOS::DistributedHardware::GetGroupInfoExtFuzzTest(data, size);
440     return 0;
441 }