• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 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 "identityservice_fuzzer.h"
17 
18 #include <cinttypes>
19 #include <unistd.h>
20 #include "alg_loader.h"
21 #include "common_defs.h"
22 #include "device_auth.h"
23 #include "device_auth_defines.h"
24 #include "device_auth_ext.h"
25 #include "hc_dev_info_mock.h"
26 #include "json_utils.h"
27 #include "protocol_task_main_mock.h"
28 #include "securec.h"
29 #include "hc_file.h"
30 #include "hc_string.h"
31 #include <dirent.h>
32 #include <fcntl.h>
33 #include <sys/types.h>
34 #include <sys/stat.h>
35 #include "hc_log.h"
36 #include "hc_types.h"
37 #include "base/security/device_auth/services/identity_service/src/identity_service_impl.c"
38 #include "base/security/device_auth/services/identity_service/src/identity_operation.c"
39 #include "base/security/device_auth/services/identity_service/src/identity_service.c"
40 #include "base/security/device_auth/services/data_manager/cred_data_manager/src/credential_data_manager.c"
41 
42 namespace OHOS {
43 #define TEST_RESULT_SUCCESS 0
44 #define TEST_APP_ID "TestAppId"
45 #define TEST_APP_ID1 "TestAppId1"
46 #define QUERY_RESULT_NUM 0
47 #define QUERY_RESULT_NUM_2 2
48 #define TEST_CRED_TYPE 1
49 #define TEST_CRED_TYPE_1 3
50 #define TEST_REQ_ID 11111111
51 #define TEST_REQ_ID_S 22222222
52 #define TEST_REQ_ID_AUTH 12312121
53 #define TEST_REQ_ID_AUTH_S 4352345234534
54 #define TEST_OWNER_UID_1 1
55 #define TEST_OWNER_UID_2 2
56 #define TEST_OWNER_UID_1 1
57 #define TEST_OWNER_UID_2 2
58 #define TEST_DEV_AUTH_SLEEP_TIME 50000
59 #define DATA_LEN 10
60 
61 #define TEST_CRED_DATA_PATH "/data/service/el1/public/deviceauthMock/hccredential.dat"
62 
63 static const char *ADD_PARAMS =
64     "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
65     "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
66     "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
67     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
68     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
69 static const char *CLIENT_AUTH_PARAMS =
70     "{\"credType\":2,\"keyFormat\":1,\"algorithmType\":1,\"subject\":1,"
71     "\"proofType\":1,\"method\":2,\"authorizedScope\":1,"
72     "\"keyValue\":\"1234567812345678123456781234567812345678123456781234567812345678\","
73     "\"deviceId\":\"52E2706717D5C39D736E134CC1E3BE1BAA2AA52DB7C76A37C749558BD2E6492C\",\"credOwner\":\"TestAppId\","
74     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
75     "\"peerUserSpaceId\":\"0\",\"extendInfo\":\"\"}";
76 static const char *SERVER_AUTH_PARAMS =
77     "{\"credType\":2,\"keyFormat\":1,\"algorithmType\":1,\"subject\":1,"
78     "\"proofType\":1,\"method\":2,\"authorizedScope\":1,"
79     "\"keyValue\":\"1234567812345678123456781234567812345678123456781234567812345678\","
80     "\"deviceId\":\"5420459D93FE773F9945FD64277FBA2CAB8FB996DDC1D0B97676FBB1242B3930\",\"credOwner\":\"TestAppId\","
81     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
82     "\"peerUserSpaceId\":\"0\",\"extendInfo\":\"\"}";
83 static const char *ADD_PARAMS1 =
84     "{\"credType\":0,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
85     "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
86     "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
87     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
88     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
89 static const char *ADD_PARAMS2 =
90     "{\"credType\":1,\"keyFormat\":0,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
91     "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
92     "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
93     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
94     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
95 static const char *ADD_PARAMS3 =
96     "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":0,\"subject\":1,\"issuer\":1,"
97     "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
98     "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
99     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
100     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
101 static const char *ADD_PARAMS4 =
102     "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":0,\"issuer\":1,"
103     "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
104     "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
105     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
106     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
107 static const char *ADD_PARAMS5 =
108     "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":0,"
109     "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
110     "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
111     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
112     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
113 static const char *ADD_PARAMS6 =
114     "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
115     "\"proofType\":0,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
116     "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
117     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
118     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
119 static const char *ADD_PARAMS7 =
120     "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
121     "\"proofType\":1,\"method\":0,\"authorizedScope\":1,\"userId\":\"TestUserId\","
122     "\"keyValue\":\"TestKeyValue\",\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
123     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
124     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
125 static const char *ADD_PARAMS8 =
126     "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
127     "\"proofType\":1,\"method\":1,\"authorizedScope\":0,\"userId\":\"TestUserId\","
128     "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
129     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
130     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
131 static const char *ADD_PARAMS9 =
132     "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
133     "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
134     "\"credOwner\":\"TestAppId\","
135     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
136     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
137 static const char *ADD_PARAMS10 =
138     "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
139     "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
140     "\"deviceId\":\"TestDeviceId\","
141     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
142     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
143 static const char *ADD_PARAMS11 =
144     "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
145     "\"proofType\":1,\"method\":1,\"authorizedScope\":1,"
146     "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
147     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
148     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
149 static const char *ADD_PARAMS12 =
150     "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
151     "\"proofType\":1,\"method\":2,\"authorizedScope\":1,\"userId\":\"TestUserId\","
152     "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
153     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
154     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
155 static const char *ADD_PARAMS13 =
156     "{\"credType\":2,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
157     "\"proofType\":1,\"method\":2,\"authorizedScope\":1,\"userId\":\"TestUserId\","
158     "\"keyValue\":\"9A9A9A9A\",\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
159     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
160     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
161 static const char *ADD_PARAMS14 =
162     "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
163     "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
164     "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId1\","
165     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
166     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
167 static const char *ADD_PARAMS15 =
168     "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
169     "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
170     "\"keyValue\":\"TestKeyValue\",\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
171     "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
172     "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
173 static const char *REQUEST_PARAMS =
174     "{\"authorizedScope\":1, \"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\","
175     "\"TestName4\"],\"extendInfo\":\"\"}";
176 static const char *BATCH_UPDATE_PARAMS =
177     "{\"baseInfo\":{\"credType\":3,\"credOwner\":\"com.test.test\"},"
178     "\"updateLists\":[{\"deviceId\":\"testDevicId\", \"userId\":\"TestUserId\"}]}";
179 
180 static const char *QUERY_PARAMS = "{\"deviceId\":\"TestDeviceId\"}";
181 static const char *QUERY_PARAMS1 = "{\"deviceId\":\"TestDeviceId1\"}";
182 static const char *TEST_CRED_ID = "345234562567437654356743";
183 static const char *TEST_USER_ID = "testUserId";
184 static const char *TEST_DEVICE_ID = "testDeviceId";
185 static const char *TEST_CRED_OWNER = "testCredOwner";
186 
187 enum CredListenerStatus {
188     CRED_LISTENER_INIT = 0,
189     CRED_LISTENER_ON_ADD = 1,
190     CRED_LISTENER_ON_UPDATE = 2,
191     CRED_LISTENER_ON_DELETE = 3,
192 };
193 enum AsyncStatus {
194     ASYNC_STATUS_WAITING = 0,
195     ASYNC_STATUS_TRANSMIT = 1,
196     ASYNC_STATUS_FINISH = 2,
197     ASYNC_STATUS_ERROR = 3
198 };
199 
200 static AsyncStatus volatile g_asyncStatus;
201 static uint32_t g_transmitDataMaxLen = 2048;
202 static uint8_t g_transmitData[2048] = { 0 };
203 static uint32_t g_transmitDataLen = 0;
204 static bool g_isBind = false;
205 static char g_clientCredId[256] = { 0 };
206 static char g_serverCredId[256] = { 0 };
207 static const char *PIN_CODE = "000000";
208 
209 static CredListenerStatus volatile g_credListenerStatus;
210 
TestOnCredAdd(const char * credId,const char * credInfo)211 static void TestOnCredAdd(const char *credId, const char *credInfo)
212 {
213     (void)credId;
214     (void)credInfo;
215     g_credListenerStatus = CRED_LISTENER_ON_ADD;
216 }
217 
TestOnCredUpdate(const char * credId,const char * credInfo)218 static void TestOnCredUpdate(const char *credId, const char *credInfo)
219 {
220     (void)credId;
221     (void)credInfo;
222     g_credListenerStatus = CRED_LISTENER_ON_UPDATE;
223 }
224 
TestOnCredDelete(const char * credId,const char * credInfo)225 static void TestOnCredDelete(const char *credId, const char *credInfo)
226 {
227     (void)credId;
228     (void)credInfo;
229     g_credListenerStatus = CRED_LISTENER_ON_DELETE;
230 }
231 
232 static CredChangeListener g_credChangeListener = {
233     .onCredAdd = TestOnCredAdd,
234     .onCredDelete = TestOnCredDelete,
235     .onCredUpdate = TestOnCredUpdate,
236 };
237 
DeleteDatabase()238 static void DeleteDatabase()
239 {
240     HcFileRemove(TEST_CRED_DATA_PATH);
241 }
242 
CompareSubject(Credential * credential,QueryCredentialParams * params)243 static bool CompareSubject(Credential *credential, QueryCredentialParams *params)
244 {
245     credential->subject = SUBJECT_ACCESSORY_DEVICE;
246     (void)CompareIntParams(params, credential);
247     credential->subject = DEFAULT_CRED_PARAM_VAL;
248     (void)CompareIntParams(params, credential);
249     params->subject = SUBJECT_MASTER_CONTROLLER;
250     credential->subject = SUBJECT_ACCESSORY_DEVICE;
251     (void)CompareIntParams(params, credential);
252     credential->subject = SUBJECT_MASTER_CONTROLLER;
253     bool ret = CompareIntParams(params, credential);
254     params->subject = DEFAULT_CRED_PARAM_VAL;
255     return ret;
256 }
257 
CompareIssuer(Credential * credential,QueryCredentialParams * params)258 static bool CompareIssuer(Credential *credential, QueryCredentialParams *params)
259 {
260     credential->issuer = SYSTEM_ACCOUNT;
261     (void)CompareIntParams(params, credential);
262     credential->issuer = DEFAULT_CRED_PARAM_VAL;
263     (void)CompareIntParams(params, credential);
264     params->issuer = SYSTEM_ACCOUNT;
265     credential->issuer = SYSTEM_ACCOUNT;
266     (void)CompareIntParams(params, credential);
267     credential->issuer = APP_ACCOUNT;
268     bool ret = CompareIntParams(params, credential);
269     params->issuer = DEFAULT_CRED_PARAM_VAL;
270     return ret;
271 }
272 
CompareOwnerUid(Credential * credential,QueryCredentialParams * params)273 static bool CompareOwnerUid(Credential *credential, QueryCredentialParams *params)
274 {
275     credential->ownerUid = TEST_OWNER_UID_1;
276     (void)CompareIntParams(params, credential);
277     credential->ownerUid = DEFAULT_CRED_PARAM_VAL;
278     (void)CompareIntParams(params, credential);
279     params->ownerUid = TEST_OWNER_UID_1;
280     credential->ownerUid = TEST_OWNER_UID_1;
281     (void)CompareIntParams(params, credential);
282     credential->ownerUid = TEST_OWNER_UID_2;
283     bool ret = CompareIntParams(params, credential);
284     params->ownerUid = DEFAULT_CRED_PARAM_VAL;
285     return ret;
286 }
287 
CompareAuthorziedScope(Credential * credential,QueryCredentialParams * params)288 static bool CompareAuthorziedScope(Credential *credential, QueryCredentialParams *params)
289 {
290     credential->authorizedScope = SCOPE_DEVICE;
291     (void)CompareIntParams(params, credential);
292     credential->authorizedScope = DEFAULT_CRED_PARAM_VAL;
293     (void)CompareIntParams(params, credential);
294     params->authorizedScope = SCOPE_DEVICE;
295     credential->authorizedScope = SCOPE_DEVICE;
296     (void)CompareIntParams(params, credential);
297     credential->authorizedScope = SCOPE_USER;
298     bool ret = CompareIntParams(params, credential);
299     params->authorizedScope = DEFAULT_CRED_PARAM_VAL;
300     return ret;
301 }
302 
CompareKeyFormat(Credential * credential,QueryCredentialParams * params)303 static bool CompareKeyFormat(Credential *credential, QueryCredentialParams *params)
304 {
305     credential->keyFormat = SYMMETRIC_KEY;
306     (void)CompareIntParams(params, credential);
307     credential->keyFormat = DEFAULT_CRED_PARAM_VAL;
308     (void)CompareIntParams(params, credential);
309     params->keyFormat = SYMMETRIC_KEY;
310     credential->keyFormat = SYMMETRIC_KEY;
311     (void)CompareIntParams(params, credential);
312     credential->keyFormat = ASYMMETRIC_PUB_KEY;
313     bool ret = CompareIntParams(params, credential);
314     params->keyFormat = DEFAULT_CRED_PARAM_VAL;
315     return ret;
316 }
317 
CompareAlgorithmType(Credential * credential,QueryCredentialParams * params)318 static bool CompareAlgorithmType(Credential *credential, QueryCredentialParams *params)
319 {
320     credential->algorithmType = ALGO_TYPE_AES_256;
321     (void)CompareIntParams(params, credential);
322     credential->algorithmType = DEFAULT_CRED_PARAM_VAL;
323     (void)CompareIntParams(params, credential);
324     params->algorithmType = ALGO_TYPE_AES_256;
325     credential->algorithmType = ALGO_TYPE_AES_256;
326     (void)CompareIntParams(params, credential);
327     credential->algorithmType = ALGO_TYPE_AES_128;
328     bool ret = CompareIntParams(params, credential);
329     params->algorithmType = DEFAULT_CRED_PARAM_VAL;
330     return ret;
331 }
332 
CompareProofType(Credential * credential,QueryCredentialParams * params)333 static bool CompareProofType(Credential *credential, QueryCredentialParams *params)
334 {
335     credential->proofType = PROOF_TYPE_PSK;
336     (void)CompareIntParams(params, credential);
337     credential->proofType = DEFAULT_CRED_PARAM_VAL;
338     (void)CompareIntParams(params, credential);
339     params->proofType = PROOF_TYPE_PSK;
340     credential->proofType = PROOF_TYPE_PSK;
341     (void)CompareIntParams(params, credential);
342     credential->proofType = PROOF_TYPE_PKI;
343     bool ret = CompareIntParams(params, credential);
344     params->proofType = DEFAULT_CRED_PARAM_VAL;
345     return ret;
346 }
347 
348 
OnTransmit(int64_t requestId,const uint8_t * data,uint32_t dataLen)349 static bool OnTransmit(int64_t requestId, const uint8_t *data, uint32_t dataLen)
350 {
351     if (memcpy_s(g_transmitData, g_transmitDataMaxLen, data, dataLen) != EOK) {
352         return false;
353     }
354     g_transmitDataLen = dataLen;
355     g_asyncStatus = ASYNC_STATUS_TRANSMIT;
356     return true;
357 }
358 
OnSessionKeyReturned(int64_t requestId,const uint8_t * sessionKey,uint32_t sessionKeyLen)359 static void OnSessionKeyReturned(int64_t requestId, const uint8_t *sessionKey, uint32_t sessionKeyLen)
360 {
361     (void)requestId;
362     (void)sessionKey;
363     (void)sessionKeyLen;
364     return;
365 }
366 
OnFinish(int64_t requestId,int operationCode,const char * authReturn)367 static void OnFinish(int64_t requestId, int operationCode, const char *authReturn)
368 {
369     g_asyncStatus = ASYNC_STATUS_FINISH;
370 }
371 
OnError(int64_t requestId,int operationCode,int errorCode,const char * errorReturn)372 static void OnError(int64_t requestId, int operationCode, int errorCode, const char *errorReturn)
373 {
374     g_asyncStatus = ASYNC_STATUS_ERROR;
375 }
376 
OnAuthRequest(int64_t requestId,int operationCode,const char * reqParam)377 static char *OnAuthRequest(int64_t requestId, int operationCode, const char* reqParam)
378 {
379     CJson *json = CreateJson();
380     AddIntToJson(json, FIELD_CONFIRMATION, REQUEST_ACCEPTED);
381     AddIntToJson(json, FIELD_OS_ACCOUNT_ID, DEFAULT_OS_ACCOUNT);
382     if (g_isBind) {
383         AddStringToJson(json, FIELD_PIN_CODE, PIN_CODE);
384     } else {
385         AddStringToJson(json, FIELD_CRED_ID, g_serverCredId);
386     }
387     AddStringToJson(json, FIELD_SERVICE_PKG_NAME, TEST_APP_ID);
388     char *returnDataStr = PackJsonToString(json);
389     FreeJson(json);
390     return returnDataStr;
391 }
392 
393 static DeviceAuthCallback g_caCallback = {
394     .onTransmit = OnTransmit,
395     .onSessionKeyReturned = OnSessionKeyReturned,
396     .onFinish = OnFinish,
397     .onError = OnError,
398     .onRequest = OnAuthRequest
399 };
400 
GenerateBindParams()401 static const char *GenerateBindParams()
402 {
403     CJson *json = CreateJson();
404     AddStringToJson(json, FIELD_PIN_CODE, PIN_CODE);
405     AddIntToJson(json, FIELD_OS_ACCOUNT_ID, DEFAULT_OS_ACCOUNT);
406     AddStringToJson(json, FIELD_SERVICE_PKG_NAME, TEST_APP_ID);
407     char *returnDataStr = PackJsonToString(json);
408     FreeJson(json);
409     return returnDataStr;
410 }
411 
GenerateAuthParams()412 static const char *GenerateAuthParams()
413 {
414     CJson *json = CreateJson();
415     AddStringToJson(json, FIELD_CRED_ID, g_clientCredId);
416     AddStringToJson(json, FIELD_SERVICE_PKG_NAME, TEST_APP_ID);
417     char *returnDataStr = PackJsonToString(json);
418     FreeJson(json);
419     return returnDataStr;
420 }
421 
IdentityServiceTestCase001(void)422 static int32_t IdentityServiceTestCase001(void)
423 {
424     DeleteDatabase();
425     int32_t ret = InitDeviceAuthService();
426     if (ret != HC_SUCCESS) {
427         return ret;
428     }
429     do {
430         char *returnData = nullptr;
431         const CredManager *cm = GetCredMgrInstance();
432         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &returnData);
433         HcFree(returnData);
434     } while (0);
435     DestroyDeviceAuthService();
436     return ret;
437 }
438 
IdentityServiceTestCase002(void)439 static int32_t IdentityServiceTestCase002(void)
440 {
441     DeleteDatabase();
442     int32_t ret = InitDeviceAuthService();
443     if (ret != HC_SUCCESS) {
444         return ret;
445     }
446     do {
447         char *returnData = nullptr;
448         const CredManager *cm = GetCredMgrInstance();
449         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, nullptr, &returnData);
450         HcFree(returnData);
451     } while (0);
452     DestroyDeviceAuthService();
453     return ret;
454 }
455 
IdentityServiceTestCase003(void)456 static int32_t IdentityServiceTestCase003(void)
457 {
458     DeleteDatabase();
459     int32_t ret = InitDeviceAuthService();
460     if (ret != HC_SUCCESS) {
461         return ret;
462     }
463     do {
464         const CredManager *cm = GetCredMgrInstance();
465         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, nullptr);
466     } while (0);
467     DestroyDeviceAuthService();
468     return ret;
469 }
470 
IdentityServiceTestCase004(void)471 static int32_t IdentityServiceTestCase004(void)
472 {
473     DeleteDatabase();
474     int32_t ret = InitDeviceAuthService();
475     if (ret != HC_SUCCESS) {
476         return ret;
477     }
478     do {
479         const CredManager *cm = GetCredMgrInstance();
480         char *returnData = nullptr;
481         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS1, &returnData);
482         HcFree(returnData);
483     } while (0);
484     DestroyDeviceAuthService();
485     return ret;
486 }
487 
IdentityServiceTestCase005(void)488 static int32_t IdentityServiceTestCase005(void)
489 {
490     DeleteDatabase();
491     int32_t ret = InitDeviceAuthService();
492     if (ret != HC_SUCCESS) {
493         return ret;
494     }
495     do {
496         const CredManager *cm = GetCredMgrInstance();
497         char *returnData = nullptr;
498         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS2, &returnData);
499         HcFree(returnData);
500     } while (0);
501     DestroyDeviceAuthService();
502     return ret;
503 }
504 
IdentityServiceTestCase006(void)505 static int32_t IdentityServiceTestCase006(void)
506 {
507     DeleteDatabase();
508     int32_t ret = InitDeviceAuthService();
509     if (ret != HC_SUCCESS) {
510         return ret;
511     }
512     do {
513         const CredManager *cm = GetCredMgrInstance();
514         char *returnData = nullptr;
515         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS3, &returnData);
516         HcFree(returnData);
517     } while (0);
518     DestroyDeviceAuthService();
519     return ret;
520 }
521 
IdentityServiceTestCase007(void)522 static int32_t IdentityServiceTestCase007(void)
523 {
524     DeleteDatabase();
525     int32_t ret = InitDeviceAuthService();
526     if (ret != HC_SUCCESS) {
527         return ret;
528     }
529     do {
530         const CredManager *cm = GetCredMgrInstance();
531         char *returnData = nullptr;
532         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS4, &returnData);
533         HcFree(returnData);
534     } while (0);
535     DestroyDeviceAuthService();
536     return ret;
537 }
538 
IdentityServiceTestCase008(void)539 static int32_t IdentityServiceTestCase008(void)
540 {
541     DeleteDatabase();
542     int32_t ret = InitDeviceAuthService();
543     if (ret != HC_SUCCESS) {
544         return ret;
545     }
546     do {
547         const CredManager *cm = GetCredMgrInstance();
548         char *returnData = nullptr;
549         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS5, &returnData);
550         HcFree(returnData);
551     } while (0);
552     DestroyDeviceAuthService();
553     return ret;
554 }
555 
IdentityServiceTestCase009(void)556 static int32_t IdentityServiceTestCase009(void)
557 {
558     DeleteDatabase();
559     int32_t ret = InitDeviceAuthService();
560     if (ret != HC_SUCCESS) {
561         return ret;
562     }
563     do {
564         const CredManager *cm = GetCredMgrInstance();
565         char *returnData = nullptr;
566         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS6, &returnData);
567         HcFree(returnData);
568     } while (0);
569     DestroyDeviceAuthService();
570     return ret;
571 }
572 
IdentityServiceTestCase010(void)573 static int32_t IdentityServiceTestCase010(void)
574 {
575     DeleteDatabase();
576     int32_t ret = InitDeviceAuthService();
577     if (ret != HC_SUCCESS) {
578         return ret;
579     }
580     do {
581         const CredManager *cm = GetCredMgrInstance();
582         char *returnData = nullptr;
583         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS7, &returnData);
584         HcFree(returnData);
585     } while (0);
586     DestroyDeviceAuthService();
587     return ret;
588 }
589 
IdentityServiceTestCase011(void)590 static int32_t IdentityServiceTestCase011(void)
591 {
592     DeleteDatabase();
593     int32_t ret = InitDeviceAuthService();
594     if (ret != HC_SUCCESS) {
595         return ret;
596     }
597     do {
598         const CredManager *cm = GetCredMgrInstance();
599         char *returnData = nullptr;
600         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS8, &returnData);
601         HcFree(returnData);
602     } while (0);
603     DestroyDeviceAuthService();
604     return ret;
605 }
606 
IdentityServiceTestCase012(void)607 static int32_t IdentityServiceTestCase012(void)
608 {
609     DeleteDatabase();
610     int32_t ret = InitDeviceAuthService();
611     if (ret != HC_SUCCESS) {
612         return ret;
613     }
614     do {
615         const CredManager *cm = GetCredMgrInstance();
616         char *returnData = nullptr;
617         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS9, &returnData);
618         HcFree(returnData);
619     } while (0);
620     DestroyDeviceAuthService();
621     return ret;
622 }
623 
IdentityServiceTestCase013(void)624 static int32_t IdentityServiceTestCase013(void)
625 {
626     DeleteDatabase();
627     int32_t ret = InitDeviceAuthService();
628     if (ret != HC_SUCCESS) {
629         return ret;
630     }
631     do {
632         const CredManager *cm = GetCredMgrInstance();
633         char *returnData = nullptr;
634         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS10, &returnData);
635         HcFree(returnData);
636     } while (0);
637     DestroyDeviceAuthService();
638     return ret;
639 }
640 
IdentityServiceTestCase014(void)641 static int32_t IdentityServiceTestCase014(void)
642 {
643     DeleteDatabase();
644     int32_t ret = InitDeviceAuthService();
645     if (ret != HC_SUCCESS) {
646         return ret;
647     }
648     do {
649         const CredManager *cm = GetCredMgrInstance();
650         char *returnData = nullptr;
651         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS11, &returnData);
652         HcFree(returnData);
653     } while (0);
654     DestroyDeviceAuthService();
655     return ret;
656 }
657 
IdentityServiceTestCase015(void)658 static int32_t IdentityServiceTestCase015(void)
659 {
660     DeleteDatabase();
661     int32_t ret = InitDeviceAuthService();
662     if (ret != HC_SUCCESS) {
663         return ret;
664     }
665     do {
666         const CredManager *cm = GetCredMgrInstance();
667         char *returnData = nullptr;
668         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS12, &returnData);
669         HcFree(returnData);
670     } while (0);
671     DestroyDeviceAuthService();
672     return ret;
673 }
674 
IdentityServiceTestCase016(void)675 static int32_t IdentityServiceTestCase016(void)
676 {
677     DeleteDatabase();
678     int32_t ret = InitDeviceAuthService();
679     if (ret != HC_SUCCESS) {
680         return ret;
681     }
682     do {
683         const CredManager *cm = GetCredMgrInstance();
684         char *returnData = nullptr;
685         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS13, &returnData);
686         HcFree(returnData);
687     } while (0);
688     DestroyDeviceAuthService();
689     return ret;
690 }
691 
IdentityServiceTestCase048(void)692 static int32_t IdentityServiceTestCase048(void)
693 {
694     DeleteDatabase();
695     int32_t ret = InitDeviceAuthService();
696     if (ret != HC_SUCCESS) {
697         return ret;
698     }
699     do {
700         const CredManager *cm = GetCredMgrInstance();
701         char *returnData = nullptr;
702         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS15, &returnData);
703         HcFree(returnData);
704     } while (0);
705     DestroyDeviceAuthService();
706     return ret;
707 }
708 
IdentityServiceTestCase017(void)709 static int32_t IdentityServiceTestCase017(void)
710 {
711     DeleteDatabase();
712     int32_t ret = InitDeviceAuthService();
713     if (ret != HC_SUCCESS) {
714         return ret;
715     }
716     do {
717         const CredManager *cm = GetCredMgrInstance();
718         char *credId = nullptr;
719         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
720         char *returnData = nullptr;
721         ret = cm->exportCredential(DEFAULT_OS_ACCOUNT, credId, &returnData);
722         HcFree(credId);
723         HcFree(returnData);
724     } while (0);
725     DestroyDeviceAuthService();
726     return ret;
727 }
728 
IdentityServiceTestCase018(void)729 static int32_t IdentityServiceTestCase018(void)
730 {
731     DeleteDatabase();
732     int32_t ret = InitDeviceAuthService();
733     if (ret != HC_SUCCESS) {
734         return ret;
735     }
736     do {
737         const CredManager *cm = GetCredMgrInstance();
738         char *credId = nullptr;
739         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS2, &credId);
740         char *returnData = nullptr;
741         ret = cm->exportCredential(DEFAULT_OS_ACCOUNT, credId, &returnData);
742         HcFree(credId);
743         HcFree(returnData);
744     } while (0);
745     DestroyDeviceAuthService();
746     return ret;
747 }
748 
IdentityServiceTestCase019(void)749 static int32_t IdentityServiceTestCase019(void)
750 {
751     DeleteDatabase();
752     int32_t ret = InitDeviceAuthService();
753     if (ret != HC_SUCCESS) {
754         return ret;
755     }
756     do {
757         const CredManager *cm = GetCredMgrInstance();
758         char *credId = nullptr;
759         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
760         ret = cm->exportCredential(DEFAULT_OS_ACCOUNT, credId, nullptr);
761         HcFree(credId);
762     } while (0);
763     DestroyDeviceAuthService();
764     return ret;
765 }
766 
IdentityServiceTestCase020(void)767 static int32_t IdentityServiceTestCase020(void)
768 {
769     DeleteDatabase();
770     int32_t ret = InitDeviceAuthService();
771     if (ret != HC_SUCCESS) {
772         return ret;
773     }
774     do {
775         const CredManager *cm = GetCredMgrInstance();
776         char *credId = nullptr;
777         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
778         HcFree(credId);
779         char *returnData = nullptr;
780         ret = cm->exportCredential(DEFAULT_OS_ACCOUNT, nullptr, &returnData);
781     } while (0);
782     DestroyDeviceAuthService();
783     return ret;
784 }
785 
IdentityServiceTestCase021(void)786 static int32_t IdentityServiceTestCase021(void)
787 {
788     DeleteDatabase();
789     int32_t ret = InitDeviceAuthService();
790     if (ret != HC_SUCCESS) {
791         return ret;
792     }
793     do {
794         const CredManager *cm = GetCredMgrInstance();
795         char *returnData = nullptr;
796         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &returnData);
797         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS14, &returnData);
798         HcFree(returnData);
799         char *credIdList = nullptr;
800         ret = cm->queryCredentialByParams(DEFAULT_OS_ACCOUNT, QUERY_PARAMS, &credIdList);
801         CJson *jsonArr = CreateJsonFromString(credIdList);
802         HcFree(credIdList);
803         FreeJson(jsonArr);
804     } while (0);
805     DestroyDeviceAuthService();
806     return ret;
807 }
808 
IdentityServiceTestCase022(void)809 static int32_t IdentityServiceTestCase022(void)
810 {
811     DeleteDatabase();
812     int32_t ret = InitDeviceAuthService();
813     if (ret != HC_SUCCESS) {
814         return ret;
815     }
816     do {
817         const CredManager *cm = GetCredMgrInstance();
818         char *credIdList = nullptr;
819         ret = cm->queryCredentialByParams(DEFAULT_OS_ACCOUNT, nullptr, &credIdList);
820     } while (0);
821     DestroyDeviceAuthService();
822     return ret;
823 }
824 
IdentityServiceTestCase023(void)825 static int32_t IdentityServiceTestCase023(void)
826 {
827     DeleteDatabase();
828     int32_t ret = InitDeviceAuthService();
829     if (ret != HC_SUCCESS) {
830         return ret;
831     }
832     do {
833         const CredManager *cm = GetCredMgrInstance();
834         ret = cm->queryCredentialByParams(DEFAULT_OS_ACCOUNT, QUERY_PARAMS, nullptr);
835     } while (0);
836     DestroyDeviceAuthService();
837     return ret;
838 }
839 
IdentityServiceTestCase024(void)840 static int32_t IdentityServiceTestCase024(void)
841 {
842     DeleteDatabase();
843     int32_t ret = InitDeviceAuthService();
844     if (ret != HC_SUCCESS) {
845         return ret;
846     }
847     do {
848         const CredManager *cm = GetCredMgrInstance();
849         char *returnData = nullptr;
850         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &returnData);
851         HcFree(returnData);
852         char *credIdList = nullptr;
853         ret = cm->queryCredentialByParams(DEFAULT_OS_ACCOUNT, QUERY_PARAMS1, &credIdList);
854         CJson *jsonArr = CreateJsonFromString(credIdList);
855         HcFree(credIdList);
856         FreeJson(jsonArr);
857     } while (0);
858     DestroyDeviceAuthService();
859     return ret;
860 }
861 
IdentityServiceTestCase025(void)862 static int32_t IdentityServiceTestCase025(void)
863 {
864     DeleteDatabase();
865     int32_t ret = InitDeviceAuthService();
866     if (ret != HC_SUCCESS) {
867         return ret;
868     }
869     do {
870         const CredManager *cm = GetCredMgrInstance();
871         char *credId = nullptr;
872         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
873         char *returnCredInfo = nullptr;
874         ret = cm->queryCredInfoByCredId(DEFAULT_OS_ACCOUNT, credId, &returnCredInfo);
875         HcFree(credId);
876         CJson *credInfoJson = CreateJsonFromString(returnCredInfo);
877         HcFree(returnCredInfo);
878         FreeJson(credInfoJson);
879     } while (0);
880     DestroyDeviceAuthService();
881     return ret;
882 }
883 
IdentityServiceTestCase026(void)884 static int32_t IdentityServiceTestCase026(void)
885 {
886     DeleteDatabase();
887     int32_t ret = InitDeviceAuthService();
888     if (ret != HC_SUCCESS) {
889         return ret;
890     }
891     do {
892         const CredManager *cm = GetCredMgrInstance();
893         char *returnCredInfo = nullptr;
894         ret = cm->queryCredInfoByCredId(DEFAULT_OS_ACCOUNT, nullptr, &returnCredInfo);
895     } while (0);
896     DestroyDeviceAuthService();
897     return ret;
898 }
899 
IdentityServiceTestCase027(void)900 static int32_t IdentityServiceTestCase027(void)
901 {
902     DeleteDatabase();
903     int32_t ret = InitDeviceAuthService();
904     if (ret != HC_SUCCESS) {
905         return ret;
906     }
907     do {
908         const CredManager *cm = GetCredMgrInstance();
909         char *returnCredInfo = nullptr;
910         ret = cm->queryCredInfoByCredId(DEFAULT_OS_ACCOUNT, nullptr, &returnCredInfo);
911     } while (0);
912     DestroyDeviceAuthService();
913     return ret;
914 }
915 
IdentityServiceTestCase028(void)916 static int32_t IdentityServiceTestCase028(void)
917 {
918     DeleteDatabase();
919     int32_t ret = InitDeviceAuthService();
920     if (ret != HC_SUCCESS) {
921         return ret;
922     }
923     do {
924         const CredManager *cm = GetCredMgrInstance();
925         char *credId = nullptr;
926         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS14, &credId);
927         ret = cm->queryCredInfoByCredId(DEFAULT_OS_ACCOUNT, credId, nullptr);
928         HcFree(credId);
929     } while (0);
930     DestroyDeviceAuthService();
931     return ret;
932 }
933 
IdentityServiceTestCase029(void)934 static int32_t IdentityServiceTestCase029(void)
935 {
936     DeleteDatabase();
937     int32_t ret = InitDeviceAuthService();
938     if (ret != HC_SUCCESS) {
939         return ret;
940     }
941     do {
942         const CredManager *cm = GetCredMgrInstance();
943         char *credId = nullptr;
944         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
945         ret = cm->deleteCredential(DEFAULT_OS_ACCOUNT, credId);
946         HcFree(credId);
947     } while (0);
948     DestroyDeviceAuthService();
949     return ret;
950 }
951 
IdentityServiceTestCase031(void)952 static int32_t IdentityServiceTestCase031(void)
953 {
954     DeleteDatabase();
955     int32_t ret = InitDeviceAuthService();
956     if (ret != HC_SUCCESS) {
957         return ret;
958     }
959     do {
960         const CredManager *cm = GetCredMgrInstance();
961         ret = cm->deleteCredential(DEFAULT_OS_ACCOUNT, nullptr);
962     } while (0);
963     DestroyDeviceAuthService();
964     return ret;
965 }
966 
IdentityServiceTestCase033(void)967 static int32_t IdentityServiceTestCase033(void)
968 {
969     DeleteDatabase();
970     int32_t ret = InitDeviceAuthService();
971     if (ret != HC_SUCCESS) {
972         return ret;
973     }
974     do {
975         const CredManager *cm = GetCredMgrInstance();
976         char *credId = nullptr;
977         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
978         ret = cm->updateCredInfo(DEFAULT_OS_ACCOUNT, credId, REQUEST_PARAMS);
979         HcFree(credId);
980     } while (0);
981     DestroyDeviceAuthService();
982     return ret;
983 }
984 
IdentityServiceTestCase034(void)985 static int32_t IdentityServiceTestCase034(void)
986 {
987     DeleteDatabase();
988     int32_t ret = InitDeviceAuthService();
989     if (ret != HC_SUCCESS) {
990         return ret;
991     }
992     do {
993         const CredManager *cm = GetCredMgrInstance();
994         char *credId = nullptr;
995         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
996         ret = cm->updateCredInfo(DEFAULT_OS_ACCOUNT, credId, "");
997         HcFree(credId);
998     } while (0);
999     DestroyDeviceAuthService();
1000     return ret;
1001 }
1002 
IdentityServiceTestCase036(void)1003 static int32_t IdentityServiceTestCase036(void)
1004 {
1005     DeleteDatabase();
1006     int32_t ret = InitDeviceAuthService();
1007     if (ret != HC_SUCCESS) {
1008         return ret;
1009     }
1010     do {
1011         const CredManager *cm = GetCredMgrInstance();
1012         char *credId = nullptr;
1013         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
1014         ret = cm->updateCredInfo(DEFAULT_OS_ACCOUNT, nullptr, REQUEST_PARAMS);
1015         HcFree(credId);
1016     } while (0);
1017     DestroyDeviceAuthService();
1018     return ret;
1019 }
1020 
IdentityServiceTestCase038(void)1021 static int32_t IdentityServiceTestCase038(void)
1022 {
1023     DeleteDatabase();
1024     int32_t ret = InitDeviceAuthService();
1025     if (ret != HC_SUCCESS) {
1026         return ret;
1027     }
1028     do {
1029         const CredManager *cm = GetCredMgrInstance();
1030         CredChangeListener listener;
1031         ret = cm->registerChangeListener(TEST_APP_ID, &listener);
1032     } while (0);
1033     DestroyDeviceAuthService();
1034     return ret;
1035 }
1036 
IdentityServiceTestCase039(void)1037 static int32_t IdentityServiceTestCase039(void)
1038 {
1039     DeleteDatabase();
1040     int32_t ret = InitDeviceAuthService();
1041     if (ret != HC_SUCCESS) {
1042         return ret;
1043     }
1044     do {
1045         const CredManager *cm = GetCredMgrInstance();
1046         CredChangeListener listener;
1047         ret = cm->registerChangeListener(TEST_APP_ID, &listener);
1048         ret = cm->registerChangeListener(TEST_APP_ID, &listener);
1049     } while (0);
1050     DestroyDeviceAuthService();
1051     return ret;
1052 }
1053 
IdentityServiceTestCase040(void)1054 static int32_t IdentityServiceTestCase040(void)
1055 {
1056     DeleteDatabase();
1057     int32_t ret = InitDeviceAuthService();
1058     if (ret != HC_SUCCESS) {
1059         return ret;
1060     }
1061     do {
1062         const CredManager *cm = GetCredMgrInstance();
1063         CredChangeListener listener;
1064         ret = cm->registerChangeListener(nullptr, &listener);
1065     } while (0);
1066     DestroyDeviceAuthService();
1067     return ret;
1068 }
1069 
IdentityServiceTestCase041(void)1070 static int32_t IdentityServiceTestCase041(void)
1071 {
1072     DeleteDatabase();
1073     int32_t ret = InitDeviceAuthService();
1074     if (ret != HC_SUCCESS) {
1075         return ret;
1076     }
1077     do {
1078         const CredManager *cm = GetCredMgrInstance();
1079         ret = cm->registerChangeListener(TEST_APP_ID, nullptr);
1080     } while (0);
1081     DestroyDeviceAuthService();
1082     return ret;
1083 }
1084 
IdentityServiceTestCase042(void)1085 static int32_t IdentityServiceTestCase042(void)
1086 {
1087     DeleteDatabase();
1088     int32_t ret = InitDeviceAuthService();
1089     if (ret != HC_SUCCESS) {
1090         return ret;
1091     }
1092     do {
1093         g_credListenerStatus = CRED_LISTENER_INIT;
1094         const CredManager *cm = GetCredMgrInstance();
1095         ret = cm->registerChangeListener(TEST_APP_ID, &g_credChangeListener);
1096         char *credId = nullptr;
1097         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
1098         HcFree(credId);
1099     } while (0);
1100     DestroyDeviceAuthService();
1101     return ret;
1102 }
1103 
IdentityServiceTestCase043(void)1104 static int32_t IdentityServiceTestCase043(void)
1105 {
1106     DeleteDatabase();
1107     int32_t ret = InitDeviceAuthService();
1108     if (ret != HC_SUCCESS) {
1109         return ret;
1110     }
1111     do {
1112         g_credListenerStatus = CRED_LISTENER_INIT;
1113         const CredManager *cm = GetCredMgrInstance();
1114         ret = cm->registerChangeListener(TEST_APP_ID, &g_credChangeListener);
1115         char *credId = nullptr;
1116         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
1117         ret = cm->updateCredInfo(DEFAULT_OS_ACCOUNT, credId, REQUEST_PARAMS);
1118         HcFree(credId);
1119     } while (0);
1120     DestroyDeviceAuthService();
1121     return ret;
1122 }
1123 
IdentityServiceTestCase044(void)1124 static int32_t IdentityServiceTestCase044(void)
1125 {
1126     DeleteDatabase();
1127     int32_t ret = InitDeviceAuthService();
1128     if (ret != HC_SUCCESS) {
1129         return ret;
1130     }
1131     do {
1132         g_credListenerStatus = CRED_LISTENER_INIT;
1133         const CredManager *cm = GetCredMgrInstance();
1134         ret = cm->registerChangeListener(TEST_APP_ID, &g_credChangeListener);
1135         char *credId = nullptr;
1136         ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
1137         ret = cm->deleteCredential(DEFAULT_OS_ACCOUNT, credId);
1138         HcFree(credId);
1139     } while (0);
1140     DestroyDeviceAuthService();
1141     return ret;
1142 }
1143 
IdentityServiceTestCase045(void)1144 static int32_t IdentityServiceTestCase045(void)
1145 {
1146     DeleteDatabase();
1147     int32_t ret = InitDeviceAuthService();
1148     if (ret != HC_SUCCESS) {
1149         return ret;
1150     }
1151     do {
1152         const CredManager *cm = GetCredMgrInstance();
1153         CredChangeListener listener;
1154         ret = cm->registerChangeListener(TEST_APP_ID, &listener);
1155         ret = cm->unregisterChangeListener(TEST_APP_ID);
1156     } while (0);
1157     DestroyDeviceAuthService();
1158     return ret;
1159 }
1160 
IdentityServiceTestCase046(void)1161 static int32_t IdentityServiceTestCase046(void)
1162 {
1163     DeleteDatabase();
1164     int32_t ret = InitDeviceAuthService();
1165     if (ret != HC_SUCCESS) {
1166         return ret;
1167     }
1168     do {
1169         const CredManager *cm = GetCredMgrInstance();
1170         ret = cm->unregisterChangeListener(TEST_APP_ID);
1171     } while (0);
1172     DestroyDeviceAuthService();
1173     return ret;
1174 }
1175 
IdentityServiceTestCase047(void)1176 static int32_t IdentityServiceTestCase047(void)
1177 {
1178     DeleteDatabase();
1179     int32_t ret = InitDeviceAuthService();
1180     if (ret != HC_SUCCESS) {
1181         return ret;
1182     }
1183     do {
1184         const CredManager *cm = GetCredMgrInstance();
1185         ret = cm->unregisterChangeListener(nullptr);
1186     } while (0);
1187     DestroyDeviceAuthService();
1188     return ret;
1189 }
1190 
AddCredFuzzPart(void)1191 static void AddCredFuzzPart(void)
1192 {
1193     (void)IdentityServiceTestCase001();
1194     (void)IdentityServiceTestCase002();
1195     (void)IdentityServiceTestCase003();
1196     (void)IdentityServiceTestCase004();
1197     (void)IdentityServiceTestCase005();
1198     (void)IdentityServiceTestCase006();
1199     (void)IdentityServiceTestCase007();
1200     (void)IdentityServiceTestCase008();
1201     (void)IdentityServiceTestCase009();
1202     (void)IdentityServiceTestCase010();
1203     (void)IdentityServiceTestCase011();
1204     (void)IdentityServiceTestCase012();
1205     (void)IdentityServiceTestCase013();
1206     (void)IdentityServiceTestCase014();
1207     (void)IdentityServiceTestCase015();
1208     (void)IdentityServiceTestCase016();
1209     (void)IdentityServiceTestCase048();
1210 }
1211 
ExportCredFuzzPart(void)1212 static void ExportCredFuzzPart(void)
1213 {
1214     (void)IdentityServiceTestCase017();
1215     (void)IdentityServiceTestCase018();
1216     (void)IdentityServiceTestCase019();
1217     (void)IdentityServiceTestCase020();
1218 }
1219 
QueryCredFuzzPart(void)1220 static void QueryCredFuzzPart(void)
1221 {
1222     (void)IdentityServiceTestCase021();
1223     (void)IdentityServiceTestCase022();
1224     (void)IdentityServiceTestCase023();
1225     (void)IdentityServiceTestCase024();
1226     (void)IdentityServiceTestCase025();
1227     (void)IdentityServiceTestCase026();
1228     (void)IdentityServiceTestCase027();
1229     (void)IdentityServiceTestCase028();
1230 }
1231 
DelCredFuzzPart(void)1232 static void DelCredFuzzPart(void)
1233 {
1234     (void)IdentityServiceTestCase029();
1235     (void)IdentityServiceTestCase031();
1236 }
1237 
UpdateCredFuzzPart(void)1238 static void UpdateCredFuzzPart(void)
1239 {
1240     (void)IdentityServiceTestCase033();
1241     (void)IdentityServiceTestCase034();
1242     (void)IdentityServiceTestCase036();
1243 }
1244 
CredListenerFuzzPart(void)1245 static void CredListenerFuzzPart(void)
1246 {
1247     (void)IdentityServiceTestCase038();
1248     (void)IdentityServiceTestCase039();
1249     (void)IdentityServiceTestCase040();
1250     (void)IdentityServiceTestCase041();
1251     (void)IdentityServiceTestCase042();
1252     (void)IdentityServiceTestCase043();
1253     (void)IdentityServiceTestCase044();
1254     (void)IdentityServiceTestCase045();
1255     (void)IdentityServiceTestCase046();
1256     (void)IdentityServiceTestCase047();
1257 }
1258 
IdentityServiceTestCase049()1259 static void IdentityServiceTestCase049()
1260 {
1261     CredentialVec vec = CreateCredentialVec();
1262     Credential *credential = CreateCredential();
1263     if (vec.pushBackT(&vec, credential) == nullptr) {
1264         LOGE("[CRED#DB]: Failed to push entry to vec!");
1265         DestroyCredential(credential);
1266     }
1267     (void)DelCredsWithHash(DEFAULT_OS_ACCOUNT, nullptr, &vec, nullptr);
1268     (void)StringSetPointer(&credential->credId, TEST_CRED_ID);
1269     (void)DelCredsWithHash(DEFAULT_OS_ACCOUNT, nullptr, &vec, nullptr);
1270     ClearCredentialVec(&vec);
1271 }
1272 
IdentityServiceTestCase050()1273 static void IdentityServiceTestCase050()
1274 {
1275     char *returnData = nullptr;
1276     (void)DeleteCredByParamsImpl(DEFAULT_OS_ACCOUNT, ADD_PARAMS14, &returnData);
1277     FreeJsonString(returnData);
1278 }
1279 
IdentityServiceTestCase051()1280 static void IdentityServiceTestCase051()
1281 {
1282     QueryCredentialParams params = InitQueryCredentialParams();
1283     params.userId = TEST_USER_ID;
1284     params.deviceId = TEST_DEVICE_ID;
1285     (void)AddUpdateCred(DEFAULT_OS_ACCOUNT, nullptr, &params);
1286     CJson *json = CreateJson();
1287     (void)AddUpdateCred(DEFAULT_OS_ACCOUNT, json, &params);
1288     FreeJson(json);
1289 }
1290 
IdentityServiceTestCase052()1291 static void IdentityServiceTestCase052()
1292 {
1293     CredentialVec vec = CreateCredentialVec();
1294     Credential *credential = CreateCredential();
1295     if (vec.pushBackT(&vec, credential) == nullptr) {
1296         LOGE("[CRED#DB]: Failed to push entry to vec!");
1297         DestroyCredential(credential);
1298     }
1299     (void)DelCredInVec(DEFAULT_OS_ACCOUNT, &vec);
1300     (void)StringSetPointer(&credential->credId, TEST_CRED_ID);
1301     (void)DelCredInVec(DEFAULT_OS_ACCOUNT, &vec);
1302     ClearCredentialVec(&vec);
1303 }
1304 
IdentityServiceTestCase053()1305 static void IdentityServiceTestCase053()
1306 {
1307     (void)ProcessAbnormalCreds(DEFAULT_OS_ACCOUNT, nullptr, nullptr);
1308     QueryCredentialParams params = InitQueryCredentialParams();
1309     params.userId = TEST_USER_ID;
1310     params.deviceId = TEST_DEVICE_ID;
1311     CJson *json = CreateJson();
1312     (void)ProcessAbnormalCreds(DEFAULT_OS_ACCOUNT, json, &params);
1313     FreeJson(json);
1314 }
1315 
IdentityServiceTestCase054()1316 static void IdentityServiceTestCase054()
1317 {
1318     CredentialVec vec = CreateCredentialVec();
1319     QueryCredentialParams params = InitQueryCredentialParams();
1320     params.userId = TEST_USER_ID;
1321     params.deviceId = TEST_DEVICE_ID;
1322     (void)HandleUpdateCredsBySize(DEFAULT_OS_ACCOUNT, nullptr, &params, &vec, &vec);
1323     Credential *credential = CreateCredential();
1324     if (vec.pushBackT(&vec, credential) == nullptr) {
1325         LOGE("[CRED#DB]: Failed to push entry to vec!");
1326         DestroyCredential(credential);
1327     }
1328     (void)HandleUpdateCredsBySize(DEFAULT_OS_ACCOUNT, nullptr, &params, &vec, &vec);
1329 
1330     Credential *credential1 = CreateCredential();
1331     if (vec.pushBackT(&vec, credential1) == nullptr) {
1332         LOGE("[CRED#DB]: Failed to push entry to vec!");
1333         DestroyCredential(credential1);
1334     }
1335     (void)HandleUpdateCredsBySize(DEFAULT_OS_ACCOUNT, nullptr, &params, &vec, &vec);
1336 
1337     (void)EraseCredIdInVec(TEST_CRED_ID, &vec);
1338     ClearCredentialVec(&vec);
1339 }
1340 
IdentityServiceTestCase055()1341 static void IdentityServiceTestCase055()
1342 {
1343     CredentialVec vec = CreateCredentialVec();
1344     QueryCredentialParams params = InitQueryCredentialParams();
1345     params.userId = TEST_USER_ID;
1346     params.deviceId = TEST_DEVICE_ID;
1347     Credential *credential = CreateCredential();
1348     if (vec.pushBackT(&vec, credential) == nullptr) {
1349         LOGE("[CRED#DB]: Failed to push entry to vec!");
1350         DestroyCredential(credential);
1351     }
1352     CJson *json = CreateJson();
1353     (void)ProcessUpdateInfo(DEFAULT_OS_ACCOUNT, json, json, &params, &vec);
1354     FreeJson(json);
1355     ClearCredentialVec(&vec);
1356 }
1357 
IdentityServiceTestCase056()1358 static void IdentityServiceTestCase056()
1359 {
1360     char *returnData = nullptr;
1361     (void)GetCurrentCredIds(DEFAULT_OS_ACCOUNT, nullptr, &returnData);
1362     CJson *json = CreateJson();
1363     AddStringToJson(json, FIELD_CRED_OWNER, TEST_CRED_OWNER);
1364     (void)GetCurrentCredIds(DEFAULT_OS_ACCOUNT, json, &returnData);
1365     FreeJson(json);
1366 }
1367 
IdentityServiceTestCase057()1368 static void IdentityServiceTestCase057()
1369 {
1370     char *returnData = nullptr;
1371     CJson *json = CreateJson();
1372     AddIntToJson(json, FIELD_CRED_TYPE, TEST_CRED_TYPE);
1373     (void)BatchUpdateCredsImplInner(DEFAULT_OS_ACCOUNT, json, json, &returnData);
1374 
1375     AddIntToJson(json, FIELD_CRED_TYPE, TEST_CRED_TYPE_1);
1376     (void)BatchUpdateCredsImplInner(DEFAULT_OS_ACCOUNT, json, json, &returnData);
1377     AddStringToJson(json, FIELD_CRED_OWNER, TEST_CRED_OWNER);
1378     (void)BatchUpdateCredsImplInner(DEFAULT_OS_ACCOUNT, json, json, &returnData);
1379     FreeJson(json);
1380 }
1381 
IdentityServiceTestCase058()1382 static void IdentityServiceTestCase058()
1383 {
1384     char *returnData = nullptr;
1385     (void)BatchUpdateCredsImpl(DEFAULT_OS_ACCOUNT, ADD_PARAMS4, &returnData);
1386 }
1387 
IdentityServiceTestCase059()1388 static void IdentityServiceTestCase059()
1389 {
1390     char *returnData = nullptr;
1391     (void)AgreeCredentialImpl(DEFAULT_OS_ACCOUNT, TEST_CRED_ID, ADD_PARAMS4, &returnData);
1392 }
1393 
IdentityServiceTestCase060()1394 static void IdentityServiceTestCase060()
1395 {
1396     Credential *credential = CreateCredential();
1397 
1398     char *returnData = nullptr;
1399     const CredManager *cm = GetCredMgrInstance();
1400     (void)cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &returnData);
1401 
1402     (void)StringSetPointer(&credential->credId, returnData);
1403     Uint8Buff agreeCredIdByte = { NULL, 0 };
1404     (void)GenerateCredId(DEFAULT_OS_ACCOUNT, credential, &agreeCredIdByte);
1405     cm->destroyInfo(&returnData);
1406     DestroyCredential(credential);
1407 }
1408 
IdentityServiceTestCase061()1409 static void IdentityServiceTestCase061()
1410 {
1411     Credential *credential = CreateCredential();
1412     CJson *json = CreateJson();
1413     AddStringToJson(json, FIELD_DEVICE_ID_HASH, TEST_DEVICE_ID);
1414     AddStringToJson(json, FIELD_DEVICE_ID_HASH, TEST_USER_ID);
1415     (void)StringSetPointer(&credential->credId, TEST_DEVICE_ID);
1416     (void)IsCredHashMatch(credential, json);
1417 
1418     DestroyCredential(credential);
1419     FreeJson(json);
1420 }
1421 
IdentityServiceTestCase062()1422 static void IdentityServiceTestCase062()
1423 {
1424     uint8_t peerKeyAliasVal[SHA256_LEN] = { 0 };
1425     Uint8Buff peerKeyAlias = { peerKeyAliasVal, SHA256_LEN };
1426     (void)GenerateCredKeyAlias(TEST_CRED_ID, TEST_DEVICE_ID, &peerKeyAlias);
1427 }
1428 
IdentityServiceTestCase063()1429 static void IdentityServiceTestCase063()
1430 {
1431     uint8_t selfKeyAliasVal[SHA256_LEN] = { 0 };
1432     Uint8Buff selfKeyAlias = { selfKeyAliasVal, SHA256_LEN };
1433     uint8_t peerKeyAliasVal[SHA256_LEN] = { 0 };
1434     Uint8Buff peerKeyAlias = { peerKeyAliasVal, SHA256_LEN };
1435     uint8_t sharedKeyAliasVal[SHA256_LEN] = { 0 };
1436     Uint8Buff sharedKeyAlias = { sharedKeyAliasVal, SHA256_LEN };
1437     (void)ComputeAndSavePskInner(DEFAULT_OS_ACCOUNT, ALGO_TYPE_P256, &selfKeyAlias, &peerKeyAlias,
1438         &sharedKeyAlias);
1439 }
1440 
IdentityServiceTestCase064()1441 static void IdentityServiceTestCase064()
1442 {
1443     Credential *credential = CreateCredential();
1444     CJson *json = CreateJson();
1445     uint8_t selfKeyAliasVal[SHA256_LEN] = { 0 };
1446     Uint8Buff selfKeyAlias = { selfKeyAliasVal, SHA256_LEN };
1447     (void)SetAgreeCredInfo(DEFAULT_OS_ACCOUNT, json, credential, &selfKeyAlias, &selfKeyAlias);
1448     DestroyCredential(credential);
1449     FreeJson(json);
1450 }
1451 
IdentityServiceTestCase065()1452 static void IdentityServiceTestCase065()
1453 {
1454     Uint8Buff selfCredIdByte = { NULL, 0 };
1455     (void)CheckAndDelInvalidCred(DEFAULT_OS_ACCOUNT, TEST_CRED_ID, &selfCredIdByte);
1456 }
1457 
IdentityServiceTestCase066()1458 static void IdentityServiceTestCase066()
1459 {
1460     QueryCredentialParams params = InitQueryCredentialParams();
1461     params.userId = TEST_USER_ID;
1462     params.deviceId = TEST_DEVICE_ID;
1463     CJson *updateInfo = CreateJson();
1464     (void)GetUpdateCredVec(DEFAULT_OS_ACCOUNT, updateInfo, &params, nullptr);
1465     AddStringToJson(updateInfo, FIELD_USER_ID, TEST_USER_ID);
1466     (void)GetUpdateCredVec(DEFAULT_OS_ACCOUNT, updateInfo, &params, nullptr);
1467     AddStringToJson(updateInfo, FIELD_DEVICE_ID, TEST_DEVICE_ID);
1468     (void)GetUpdateCredVec(DEFAULT_OS_ACCOUNT, updateInfo, &params, nullptr);
1469     FreeJson(updateInfo);
1470 }
1471 
IdentityServiceTestCase067()1472 static void IdentityServiceTestCase067()
1473 {
1474     (void)DeleteCredByParams(DEFAULT_OS_ACCOUNT, nullptr, nullptr);
1475     char *returnData = nullptr;
1476     (void)DeleteCredByParams(DEFAULT_OS_ACCOUNT, REQUEST_PARAMS, &returnData);
1477     (void)IsJsonString(REQUEST_PARAMS);
1478     (void)IsJsonString(nullptr);
1479 }
1480 
IdentityServiceTestCase068()1481 static void IdentityServiceTestCase068()
1482 {
1483     char *returnData = nullptr;
1484     (void)BatchUpdateCredentials(DEFAULT_OS_ACCOUNT, BATCH_UPDATE_PARAMS, &returnData);
1485 }
1486 
IdentityServiceTestCase069()1487 static void IdentityServiceTestCase069()
1488 {
1489     char *returnData = nullptr;
1490     const CredManager *cm = GetCredMgrInstance();
1491     (void)cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &returnData);
1492     LoadOsAccountCredDb(DEFAULT_OS_ACCOUNT);
1493     cm->destroyInfo(&returnData);
1494 }
1495 
CompareParamsFuzzTestCase(void)1496 static void CompareParamsFuzzTestCase(void)
1497 {
1498     Credential *credential = CreateCredential();
1499     QueryCredentialParams params = InitQueryCredentialParams();
1500     bool ret = CompareIntParams(&params, credential);
1501     params.credType = ACCOUNT_RELATED;
1502     credential->credType = ACCOUNT_UNRELATED;
1503     ret = CompareIntParams(&params, credential);
1504     params.credType = DEFAULT_CRED_PARAM_VAL;
1505     ret = CompareSubject(credential, &params);
1506     ret = CompareIssuer(credential, &params);
1507     ret = CompareOwnerUid(credential, &params);
1508     ret = CompareAuthorziedScope(credential, &params);
1509     ret = CompareKeyFormat(credential, &params);
1510     ret = CompareAlgorithmType(credential, &params);
1511     ret = CompareProofType(credential, &params);
1512     DestroyCredential(credential);
1513 }
1514 
1515 
AuthCredDemo(void)1516 static void AuthCredDemo(void)
1517 {
1518     g_asyncStatus = ASYNC_STATUS_WAITING;
1519     bool isClient = true;
1520     SetDeviceStatus(isClient);
1521     const CredAuthManager *ca = GetCredAuthInstance();
1522     int32_t ret = ca->authCredential(DEFAULT_OS_ACCOUNT, g_isBind ? TEST_REQ_ID : TEST_REQ_ID_AUTH,
1523         g_isBind ? GenerateBindParams() : GenerateAuthParams(), &g_caCallback);
1524     if (ret != HC_SUCCESS) {
1525         g_asyncStatus = ASYNC_STATUS_ERROR;
1526         return;
1527     }
1528     while (g_asyncStatus == ASYNC_STATUS_WAITING) {
1529         usleep(TEST_DEV_AUTH_SLEEP_TIME);
1530     }
1531     while (g_asyncStatus == ASYNC_STATUS_TRANSMIT) {
1532         isClient = !isClient;
1533         SetDeviceStatus(isClient);
1534         g_asyncStatus = ASYNC_STATUS_WAITING;
1535         if (isClient) {
1536             ret = ca->processCredData(g_isBind ? TEST_REQ_ID : TEST_REQ_ID_AUTH, g_transmitData, g_transmitDataLen,
1537                 &g_caCallback);
1538         } else {
1539             ret = ca->processCredData(g_isBind ? TEST_REQ_ID_S : TEST_REQ_ID_AUTH_S, g_transmitData, g_transmitDataLen,
1540                 &g_caCallback);
1541         }
1542         (void)memset_s(g_transmitData, g_transmitDataMaxLen, 0, g_transmitDataMaxLen);
1543         g_transmitDataLen = 0;
1544         if (ret != HC_SUCCESS) {
1545             g_asyncStatus = ASYNC_STATUS_ERROR;
1546             return;
1547         }
1548         while (g_asyncStatus == ASYNC_STATUS_WAITING) {
1549             usleep(TEST_DEV_AUTH_SLEEP_TIME);
1550         }
1551         if (g_asyncStatus == ASYNC_STATUS_ERROR) {
1552             break;
1553         }
1554         if (g_transmitDataLen > 0) {
1555             g_asyncStatus = ASYNC_STATUS_TRANSMIT;
1556         }
1557     }
1558     SetDeviceStatus(true);
1559 }
1560 
IdentityServiceTestCase070()1561 static void IdentityServiceTestCase070()
1562 {
1563     RemoveOsAccountCredInfo(DEFAULT_OS_ACCOUNT);
1564     (void)IsOsAccountCredDataLoaded(DEFAULT_OS_ACCOUNT);
1565     char *returnData = nullptr;
1566     const CredManager *cm = GetCredMgrInstance();
1567     (void)cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &returnData);
1568     RemoveOsAccountCredInfo(DEFAULT_OS_ACCOUNT);
1569     (void)IsOsAccountCredDataLoaded(DEFAULT_OS_ACCOUNT);
1570     cm->destroyInfo(&returnData);
1571 }
1572 
IdentityServiceAuth001(void)1573 static void IdentityServiceAuth001(void)
1574 {
1575     g_isBind = true;
1576     AuthCredDemo();
1577     const CredManager *cm = GetCredMgrInstance();
1578     char *clientReturnData = nullptr;
1579     char *serverReturnData = nullptr;
1580     (void)cm->addCredential(DEFAULT_OS_ACCOUNT, CLIENT_AUTH_PARAMS, &clientReturnData);
1581     (void)cm->addCredential(DEFAULT_OS_ACCOUNT, SERVER_AUTH_PARAMS, &serverReturnData);
1582     (void)strcpy_s(g_clientCredId, HcStrlen(clientReturnData) + 1, clientReturnData);
1583     (void)strcpy_s(g_serverCredId, HcStrlen(serverReturnData) + 1, serverReturnData);
1584     g_isBind = false;
1585     AuthCredDemo();
1586     cm->destroyInfo(&clientReturnData);
1587     cm->destroyInfo(&serverReturnData);
1588 }
1589 
IdentityServiceAuth002(void)1590 static void IdentityServiceAuth002(void)
1591 {
1592     const CredAuthManager *ca = GetCredAuthInstance();
1593     ca->authCredential(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, nullptr, nullptr);
1594     ca->authCredential(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, nullptr, &g_caCallback);
1595     ca->authCredential(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, GenerateBindParams(), nullptr);
1596     ca->processCredData(TEST_REQ_ID, nullptr, DATA_LEN, nullptr);
1597     ca->processCredData(TEST_REQ_ID, nullptr, DATA_LEN, &g_caCallback);
1598     ca->processCredData(TEST_REQ_ID, (const uint8_t*)GenerateBindParams(), DATA_LEN, nullptr);
1599 }
1600 
IdentityServiceAuthPart(void)1601 static void IdentityServiceAuthPart(void)
1602 {
1603     DeleteDatabase();
1604     (void)InitDeviceAuthService();
1605     IdentityServiceAuth001();
1606     IdentityServiceAuth002();
1607     DestroyDeviceAuthService();
1608 }
1609 
IdentiyServiceFuzzPart(void)1610 static void IdentiyServiceFuzzPart(void)
1611 {
1612     DeleteDatabase();
1613     int32_t ret = InitDeviceAuthService();
1614     if (ret != HC_SUCCESS) {
1615         return;
1616     }
1617     (void)IdentityServiceTestCase049();
1618     (void)IdentityServiceTestCase050();
1619     (void)IdentityServiceTestCase051();
1620     (void)IdentityServiceTestCase052();
1621     (void)IdentityServiceTestCase053();
1622     (void)IdentityServiceTestCase054();
1623     (void)IdentityServiceTestCase055();
1624     (void)IdentityServiceTestCase056();
1625     (void)IdentityServiceTestCase057();
1626     (void)IdentityServiceTestCase058();
1627     (void)IdentityServiceTestCase059();
1628     (void)IdentityServiceTestCase060();
1629     (void)IdentityServiceTestCase061();
1630     (void)IdentityServiceTestCase062();
1631     (void)IdentityServiceTestCase063();
1632     (void)IdentityServiceTestCase064();
1633     (void)IdentityServiceTestCase065();
1634     (void)IdentityServiceTestCase066();
1635     (void)IdentityServiceTestCase067();
1636     (void)IdentityServiceTestCase068();
1637     (void)IdentityServiceTestCase069();
1638     (void)IdentityServiceTestCase070();
1639     DestroyDeviceAuthService();
1640 }
1641 
FuzzDoCallback(const uint8_t * data,size_t size)1642 bool FuzzDoCallback(const uint8_t* data, size_t size)
1643 {
1644     (void)data;
1645     (void)size;
1646     (void)AddCredFuzzPart();
1647     (void)ExportCredFuzzPart();
1648     (void)QueryCredFuzzPart();
1649     (void)DelCredFuzzPart();
1650     (void)UpdateCredFuzzPart();
1651     (void)CredListenerFuzzPart();
1652     IdentiyServiceFuzzPart();
1653     CompareParamsFuzzTestCase();
1654     IdentityServiceAuthPart();
1655     return true;
1656 }
1657 }
1658 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)1659 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
1660 {
1661     /* Run your code on data */
1662     OHOS::FuzzDoCallback(data, size);
1663     return 0;
1664 }
1665 
1666