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 <cinttypes>
17 #include <unistd.h>
18 #include <gtest/gtest.h>
19 #include "alg_loader.h"
20 #include "common_defs.h"
21 #include "compatible_sub_session.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_mock.h"
27 #include "permission_adapter.h"
28 #include "json_utils.h"
29 #include "string_util.h"
30 #include "protocol_task_main_mock.h"
31 #include "securec.h"
32 #include "hc_file.h"
33 #include <dirent.h>
34 #include <fcntl.h>
35 #include <sys/types.h>
36 #include <sys/stat.h>
37 #include "hc_log.h"
38 #include "hc_types.h"
39 #include "base/security/device_auth/services/identity_service/src/identity_operation.c"
40 #include "base/security/device_auth/services/identity_service/src/identity_service_impl.c"
41 #include "base/security/device_auth/services/identity_service/session/src/cred_session_util.c"
42 #include "base/security/device_auth/services/data_manager/cred_data_manager/src/credential_data_manager.c"
43
44 #include "cred_listener.h"
45
46 using namespace std;
47 using namespace testing::ext;
48
49 namespace {
50 #define TEST_RESULT_SUCCESS 0
51 #define TEST_APP_ID "TestAppId"
52 #define TEST_APP_ID1 "TestAppId1"
53 #define TEST_DEVICE_ID "TestDeviceId"
54 #define TEST_USER_ID "TestUserId"
55 #define TEST_CRED_ID "TestCredId"
56 #define TEST_CRED_TYPE 1
57 #define TEST_CRED_TYPE_1 2
58 #define TEST_CRED_TYPE_2 3
59 #define TEST_CRED_TYPE_3 4
60 #define TEST_REQ_ID 11111111
61 #define TEST_REQ_ID_S 22222222
62 #define TEST_REQ_ID_AUTH 12312121
63 #define TEST_REQ_ID_AUTH_S 4352345234534
64 #define TEST_OWNER_UID_1 1
65 #define TEST_OWNER_UID_2 2
66 #define TEST_CRED_INFO_ID "TestCredInfoId"
67 #define TEST_PIN_CODE "123456"
68 #define TEST_PIN_CODE_1 ""
69 #define QUERY_RESULT_NUM 0
70 #define QUERY_RESULT_NUM_2 2
71 #define DATA_LEN 10
72 #define DEFAULT_OS_ACCOUNT_ID 100
73 #define DEFAULT_VAL 0
74 #define DEFAULT_CHANNEL_TYPE 0
75 #define TEST_DEV_AUTH_SLEEP_TIME 50000
76 #define TEST_CRED_DATA_PATH "/data/service/el1/public/deviceauthMock/hccredential.dat"
77 static const char *TEST_DATA = "testData";
78 static const char *ADD_PARAMS =
79 "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
80 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
81 "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
82 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
83 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
84 static const char *CLIENT_AUTH_PARAMS =
85 "{\"credType\":2,\"keyFormat\":1,\"algorithmType\":1,\"subject\":1,"
86 "\"proofType\":1,\"method\":2,\"authorizedScope\":1,"
87 "\"keyValue\":\"1234567812345678123456781234567812345678123456781234567812345678\","
88 "\"deviceId\":\"52E2706717D5C39D736E134CC1E3BE1BAA2AA52DB7C76A37C749558BD2E6492C\",\"credOwner\":\"TestAppId\","
89 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
90 "\"peerUserSpaceId\":\"0\",\"extendInfo\":\"\"}";
91 static const char *SERVER_AUTH_PARAMS =
92 "{\"credType\":2,\"keyFormat\":1,\"algorithmType\":1,\"subject\":1,"
93 "\"proofType\":1,\"method\":2,\"authorizedScope\":1,"
94 "\"keyValue\":\"1234567812345678123456781234567812345678123456781234567812345678\","
95 "\"deviceId\":\"5420459D93FE773F9945FD64277FBA2CAB8FB996DDC1D0B97676FBB1242B3930\",\"credOwner\":\"TestAppId\","
96 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
97 "\"peerUserSpaceId\":\"0\",\"extendInfo\":\"\"}";
98 static const char *ADD_PARAMS1 =
99 "{\"credType\":0,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
100 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
101 "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
102 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
103 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
104 static const char *ADD_PARAMS2 =
105 "{\"credType\":1,\"keyFormat\":0,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
106 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
107 "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
108 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
109 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
110 static const char *ADD_PARAMS3 =
111 "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":0,\"subject\":1,\"issuer\":1,"
112 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
113 "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
114 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
115 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
116 static const char *ADD_PARAMS4 =
117 "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":0,\"issuer\":1,"
118 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
119 "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
120 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
121 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
122 static const char *ADD_PARAMS5 =
123 "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":0,"
124 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
125 "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
126 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
127 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
128 static const char *ADD_PARAMS6 =
129 "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
130 "\"proofType\":0,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
131 "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
132 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
133 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
134 static const char *ADD_PARAMS7 =
135 "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
136 "\"proofType\":1,\"method\":0,\"authorizedScope\":1,\"userId\":\"TestUserId\","
137 "\"keyValue\":\"TestKeyValue\",\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
138 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
139 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
140 static const char *ADD_PARAMS8 =
141 "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
142 "\"proofType\":1,\"method\":1,\"authorizedScope\":0,\"userId\":\"TestUserId\","
143 "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
144 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
145 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
146 static const char *ADD_PARAMS9 =
147 "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
148 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
149 "\"credOwner\":\"TestAppId\","
150 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
151 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
152 static const char *ADD_PARAMS10 =
153 "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
154 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
155 "\"deviceId\":\"TestDeviceId\","
156 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
157 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
158 static const char *ADD_PARAMS11 =
159 "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
160 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,"
161 "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
162 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
163 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
164 static const char *ADD_PARAMS12 =
165 "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
166 "\"proofType\":1,\"method\":2,\"authorizedScope\":1,\"userId\":\"TestUserId\","
167 "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
168 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
169 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
170 static const char *ADD_PARAMS13 =
171 "{\"credType\":2,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
172 "\"proofType\":1,\"method\":2,\"authorizedScope\":1,\"userId\":\"TestUserId\","
173 "\"keyValue\":\"9A9A9A9A\",\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
174 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
175 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
176 static const char *ADD_PARAMS14 =
177 "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
178 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
179 "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId1\","
180 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
181 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
182 static const char *ADD_PARAMS15 =
183 "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
184 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
185 "\"keyValue\":\"TestKeyValue\",\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
186 "\"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\"],"
187 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
188 static const char *ADD_PARAMS16 =
189 "{\"credId\":\"14993DDA9D\",\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
190 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
191 "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
192 "\"peerUserSpaceId\":\"100\",\"extendInfo\":\"\"}";
193 static const char *ADD_PARAMS17 =
194 "{\"credType\":2,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,"
195 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,"
196 "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\"}";
197 static const char *ADD_PARAMS18 =
198 "{\"credType\":3,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
199 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId0\","
200 "\"deviceId\":\"TestDeviceId0\",\"credOwner\":\"TestAppId\"}";
201 static const char *REQUEST_PARAMS =
202 "{\"authorizedScope\":1, \"authorizedAppList\":[\"TestName1\",\"TestName2\",\"TestName3\","
203 "\"TestName4\"],\"extendInfo\":\"\"}";
204 static const char *AGREE_PARAMS =
205 "{\"credType\":2, \"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\",\"subject\":1,"
206 "\"keyFormat\":2,\"proofType\":1,\"authorizedScope\":1,\"algorithmType\":3,\"peerUserSpaceId\":\"100\","
207 "\"keyValue\":\"3059301306072a8648ce3d020106082a8648ce3d030107034200043bb1f8107c6306bddcdb70cd9fee0e581"
208 "5bbd305184871cd2880657eb2cc88aeece1a7f076d9fff7e1114e3bc9dfa45b061b2755b46fc282ef59763b4c0288bd\"}";
209 static const char *BATCH_UPDATE_PARAMS =
210 "{\"baseInfo\":{\"credType\":3,\"keyFormat\":2,\"algorithmType\":3,\"subject\":2,\"authorizedScope\":2,"
211 "\"issuer\":1,\"proofType\":2,\"credOwner\":\"TestAppId\"},"
212 "\"updateLists\":[{\"userId\":\"TestUserId\",\"deviceId\":\"TestDeviceId\"}]}";
213 static const char *BATCH_UPDATE_PARAMS1 =
214 "{\"baseInfo\":{\"credType\":1,\"keyFormat\":2,\"algorithmType\":3,\"subject\":2,\"authorizedScope\":2,"
215 "\"issuer\":1,\"proofType\":2,\"credOwner\":\"TestAppId\"},"
216 "\"updateLists\":[{\"userId\":\"TestUserId\",\"deviceId\":\"TestDeviceId\"}]}";
217
218 static const char *CRED_DATA =
219 "{\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
220 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
221 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
222 static const char *CRED_DATA_1 =
223 "{\"credType\":1,\"keyFormat\":4,\"algorithmType\":3,\"subject\":1,\"issuer\":1,"
224 "\"proofType\":1,\"method\":1,\"authorizedScope\":1,\"userId\":\"TestUserId\","
225 "\"deviceId\":\"TestDeviceId\",\"credOwner\":\"TestAppId\","
226 "\"peerUserSpaceId\":100,\"extendInfo\":\"\"}";
227
228 static const char *QUERY_PARAMS = "{\"deviceId\":\"TestDeviceId\"}";
229 static const char *QUERY_PARAMS1 = "{\"deviceId\":\"TestDeviceId1\"}";
230 static const char *DEL_PARAMS = "{\"credOwner\":\"TestAppId\"}";
231 static const char *DEL_PARAMS1 = "{\"credOwner\":\"TestAppId\",\"userIdHash\":\"12D2\",\"deviceIdHash\":\"12D2\"}";
232 enum AsyncStatus {
233 ASYNC_STATUS_WAITING = 0,
234 ASYNC_STATUS_TRANSMIT = 1,
235 ASYNC_STATUS_FINISH = 2,
236 ASYNC_STATUS_ERROR = 3
237 };
238
239 static AsyncStatus volatile g_asyncStatus;
240 static uint32_t g_transmitDataMaxLen = 2048;
241 static uint8_t g_transmitData[2048] = { 0 };
242 static uint32_t g_transmitDataLen = 0;
243 static bool g_isBind = false;
244 static char g_clientCredId[256] = { 0 };
245 static char g_serverCredId[256] = { 0 };
246 static const char *PIN_CODE = "000000";
247
248 enum CredListenerStatus {
249 CRED_LISTENER_INIT = 0,
250 CRED_LISTENER_ON_ADD = 1,
251 CRED_LISTENER_ON_UPDATE = 2,
252 CRED_LISTENER_ON_DELETE = 3,
253 };
254
255 static CredListenerStatus volatile g_credListenerStatus;
256
TestOnCredAdd(const char * credId,const char * credInfo)257 static void TestOnCredAdd(const char *credId, const char *credInfo)
258 {
259 (void)credId;
260 (void)credInfo;
261 g_credListenerStatus = CRED_LISTENER_ON_ADD;
262 }
263
TestOnCredUpdate(const char * credId,const char * credInfo)264 static void TestOnCredUpdate(const char *credId, const char *credInfo)
265 {
266 (void)credId;
267 (void)credInfo;
268 g_credListenerStatus = CRED_LISTENER_ON_UPDATE;
269 }
270
TestOnCredDelete(const char * credId,const char * credInfo)271 static void TestOnCredDelete(const char *credId, const char *credInfo)
272 {
273 (void)credId;
274 (void)credInfo;
275 g_credListenerStatus = CRED_LISTENER_ON_DELETE;
276 }
277
278 static CredChangeListener g_credChangeListener = {
279 .onCredAdd = TestOnCredAdd,
280 .onCredUpdate = TestOnCredUpdate,
281 .onCredDelete = TestOnCredDelete,
282 };
283
DeleteDatabase()284 static void DeleteDatabase()
285 {
286 HcFileRemove(TEST_CRED_DATA_PATH);
287 }
288
CompareSubject(Credential * credential,QueryCredentialParams * params)289 static bool CompareSubject(Credential *credential, QueryCredentialParams *params)
290 {
291 credential->subject = SUBJECT_ACCESSORY_DEVICE;
292 (void)CompareIntParams(params, credential);
293 credential->subject = DEFAULT_CRED_PARAM_VAL;
294 (void)CompareIntParams(params, credential);
295 params->subject = SUBJECT_MASTER_CONTROLLER;
296 credential->subject = SUBJECT_ACCESSORY_DEVICE;
297 (void)CompareIntParams(params, credential);
298 credential->subject = SUBJECT_MASTER_CONTROLLER;
299 bool ret = CompareIntParams(params, credential);
300 params->subject = DEFAULT_CRED_PARAM_VAL;
301 return ret;
302 }
303
CompareIssuer(Credential * credential,QueryCredentialParams * params)304 static bool CompareIssuer(Credential *credential, QueryCredentialParams *params)
305 {
306 credential->issuer = SYSTEM_ACCOUNT;
307 (void)CompareIntParams(params, credential);
308 credential->issuer = DEFAULT_CRED_PARAM_VAL;
309 (void)CompareIntParams(params, credential);
310 params->issuer = SYSTEM_ACCOUNT;
311 credential->issuer = SYSTEM_ACCOUNT;
312 (void)CompareIntParams(params, credential);
313 credential->issuer = APP_ACCOUNT;
314 bool ret = CompareIntParams(params, credential);
315 params->issuer = DEFAULT_CRED_PARAM_VAL;
316 return ret;
317 }
318
CompareOwnerUid(Credential * credential,QueryCredentialParams * params)319 static bool CompareOwnerUid(Credential *credential, QueryCredentialParams *params)
320 {
321 credential->ownerUid = TEST_OWNER_UID_1;
322 (void)CompareIntParams(params, credential);
323 credential->ownerUid = DEFAULT_CRED_PARAM_VAL;
324 (void)CompareIntParams(params, credential);
325 params->ownerUid = TEST_OWNER_UID_1;
326 credential->ownerUid = TEST_OWNER_UID_1;
327 (void)CompareIntParams(params, credential);
328 credential->ownerUid = TEST_OWNER_UID_2;
329 bool ret = CompareIntParams(params, credential);
330 params->ownerUid = DEFAULT_CRED_PARAM_VAL;
331 return ret;
332 }
333
CompareAuthorziedScope(Credential * credential,QueryCredentialParams * params)334 static bool CompareAuthorziedScope(Credential *credential, QueryCredentialParams *params)
335 {
336 credential->authorizedScope = SCOPE_DEVICE;
337 (void)CompareIntParams(params, credential);
338 credential->authorizedScope = DEFAULT_CRED_PARAM_VAL;
339 (void)CompareIntParams(params, credential);
340 params->authorizedScope = SCOPE_DEVICE;
341 credential->authorizedScope = SCOPE_DEVICE;
342 (void)CompareIntParams(params, credential);
343 credential->authorizedScope = SCOPE_USER;
344 bool ret = CompareIntParams(params, credential);
345 params->authorizedScope = DEFAULT_CRED_PARAM_VAL;
346 return ret;
347 }
348
CompareKeyFormat(Credential * credential,QueryCredentialParams * params)349 static bool CompareKeyFormat(Credential *credential, QueryCredentialParams *params)
350 {
351 credential->keyFormat = SYMMETRIC_KEY;
352 (void)CompareIntParams(params, credential);
353 credential->keyFormat = DEFAULT_CRED_PARAM_VAL;
354 (void)CompareIntParams(params, credential);
355 params->keyFormat = SYMMETRIC_KEY;
356 credential->keyFormat = SYMMETRIC_KEY;
357 (void)CompareIntParams(params, credential);
358 credential->keyFormat = ASYMMETRIC_PUB_KEY;
359 bool ret = CompareIntParams(params, credential);
360 params->keyFormat = DEFAULT_CRED_PARAM_VAL;
361 return ret;
362 }
363
CompareAlgorithmType(Credential * credential,QueryCredentialParams * params)364 static bool CompareAlgorithmType(Credential *credential, QueryCredentialParams *params)
365 {
366 credential->algorithmType = ALGO_TYPE_AES_256;
367 (void)CompareIntParams(params, credential);
368 credential->algorithmType = DEFAULT_CRED_PARAM_VAL;
369 (void)CompareIntParams(params, credential);
370 params->algorithmType = ALGO_TYPE_AES_256;
371 credential->algorithmType = ALGO_TYPE_AES_256;
372 (void)CompareIntParams(params, credential);
373 credential->algorithmType = ALGO_TYPE_AES_128;
374 bool ret = CompareIntParams(params, credential);
375 params->algorithmType = DEFAULT_CRED_PARAM_VAL;
376 return ret;
377 }
378
CompareProofType(Credential * credential,QueryCredentialParams * params)379 static bool CompareProofType(Credential *credential, QueryCredentialParams *params)
380 {
381 credential->proofType = PROOF_TYPE_PSK;
382 (void)CompareIntParams(params, credential);
383 credential->proofType = DEFAULT_CRED_PARAM_VAL;
384 (void)CompareIntParams(params, credential);
385 params->proofType = PROOF_TYPE_PSK;
386 credential->proofType = PROOF_TYPE_PSK;
387 (void)CompareIntParams(params, credential);
388 credential->proofType = PROOF_TYPE_PKI;
389 bool ret = CompareIntParams(params, credential);
390 params->proofType = DEFAULT_CRED_PARAM_VAL;
391 return ret;
392 }
393
394 class GetCredMgrInstanceTest : public testing::Test {
395 public:
396 static void SetUpTestCase();
397 static void TearDownTestCase();
398 void SetUp();
399 void TearDown();
400 };
401
SetUpTestCase()402 void GetCredMgrInstanceTest::SetUpTestCase() {}
TearDownTestCase()403 void GetCredMgrInstanceTest::TearDownTestCase() {}
404
SetUp()405 void GetCredMgrInstanceTest::SetUp()
406 {
407 int ret = InitDeviceAuthService();
408 EXPECT_EQ(ret, IS_SUCCESS);
409 }
410
TearDown()411 void GetCredMgrInstanceTest::TearDown()
412 {
413 DestroyDeviceAuthService();
414 }
415
416 HWTEST_F(GetCredMgrInstanceTest, GetCredMgrInstanceTest001, TestSize.Level0)
417 {
418 const CredManager *cm = GetCredMgrInstance();
419 EXPECT_NE(cm, nullptr);
420 }
421
422 HWTEST_F(GetCredMgrInstanceTest, GetCredMgrInstanceTest002, TestSize.Level0)
423 {
424 const CredManager *cm = GetCredMgrInstance();
425 EXPECT_NE(cm, nullptr);
426 char *returnData = nullptr;
427 cm->destroyInfo(nullptr);
428 cm->destroyInfo(&returnData);
429 returnData = static_cast<char *>(HcMalloc(DATA_LEN, 0));
430 int32_t ret = memcpy_s(returnData, DATA_LEN, TEST_DATA, HcStrlen(TEST_DATA));
431 cm->destroyInfo(&returnData);
432 EXPECT_EQ(ret, IS_SUCCESS);
433 }
434
435 class CredMgrAddCredentialTest : public testing::Test {
436 public:
437 static void SetUpTestCase();
438 static void TearDownTestCase();
439 void SetUp();
440 void TearDown();
441 };
442
SetUpTestCase()443 void CredMgrAddCredentialTest::SetUpTestCase() {}
TearDownTestCase()444 void CredMgrAddCredentialTest::TearDownTestCase() {}
445
SetUp()446 void CredMgrAddCredentialTest::SetUp()
447 {
448 DeleteDatabase();
449 int ret = InitDeviceAuthService();
450 EXPECT_EQ(ret, IS_SUCCESS);
451 }
452
TearDown()453 void CredMgrAddCredentialTest::TearDown()
454 {
455 DestroyDeviceAuthService();
456 }
457
458 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest001, TestSize.Level0)
459 {
460 const CredManager *cm = GetCredMgrInstance();
461 ASSERT_NE(cm, nullptr);
462 char *returnData = nullptr;
463 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &returnData);
464 cm->destroyInfo(&returnData);
465 EXPECT_EQ(ret, IS_SUCCESS);
466 }
467
468 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest002, TestSize.Level0)
469 {
470 const CredManager *cm = GetCredMgrInstance();
471 ASSERT_NE(cm, nullptr);
472 char *returnData = nullptr;
473 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, nullptr, &returnData);
474 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
475 }
476
477 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest003, TestSize.Level0)
478 {
479 const CredManager *cm = GetCredMgrInstance();
480 ASSERT_NE(cm, nullptr);
481 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, nullptr);
482 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
483 }
484
485 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest004, TestSize.Level0)
486 {
487 const CredManager *cm = GetCredMgrInstance();
488 ASSERT_NE(cm, nullptr);
489 char *returnData = nullptr;
490 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS1, &returnData);
491 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
492 }
493
494 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest005, TestSize.Level0)
495 {
496 const CredManager *cm = GetCredMgrInstance();
497 ASSERT_NE(cm, nullptr);
498 char *returnData = nullptr;
499 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS2, &returnData);
500 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
501 }
502
503 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest006, TestSize.Level0)
504 {
505 const CredManager *cm = GetCredMgrInstance();
506 ASSERT_NE(cm, nullptr);
507 char *returnData = nullptr;
508 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS3, &returnData);
509 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
510 }
511
512 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest007, TestSize.Level0)
513 {
514 const CredManager *cm = GetCredMgrInstance();
515 ASSERT_NE(cm, nullptr);
516 char *returnData = nullptr;
517 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS4, &returnData);
518 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
519 }
520
521 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest008, TestSize.Level0)
522 {
523 const CredManager *cm = GetCredMgrInstance();
524 ASSERT_NE(cm, nullptr);
525 char *returnData = nullptr;
526 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS5, &returnData);
527 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
528 }
529
530 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest009, TestSize.Level0)
531 {
532 const CredManager *cm = GetCredMgrInstance();
533 ASSERT_NE(cm, nullptr);
534 char *returnData = nullptr;
535 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS6, &returnData);
536 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
537 }
538
539 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest010, TestSize.Level0)
540 {
541 const CredManager *cm = GetCredMgrInstance();
542 ASSERT_NE(cm, nullptr);
543 char *returnData = nullptr;
544 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS7, &returnData);
545 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
546 }
547
548 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest011, TestSize.Level0)
549 {
550 const CredManager *cm = GetCredMgrInstance();
551 ASSERT_NE(cm, nullptr);
552 char *returnData = nullptr;
553 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS8, &returnData);
554 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
555 }
556
557 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest012, TestSize.Level0)
558 {
559 const CredManager *cm = GetCredMgrInstance();
560 ASSERT_NE(cm, nullptr);
561 char *returnData = nullptr;
562 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS9, &returnData);
563 EXPECT_EQ(ret, IS_ERR_JSON_GET);
564 }
565
566 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest013, TestSize.Level0)
567 {
568 const CredManager *cm = GetCredMgrInstance();
569 ASSERT_NE(cm, nullptr);
570 char *returnData = nullptr;
571 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS10, &returnData);
572 EXPECT_EQ(ret, IS_ERR_JSON_GET);
573 }
574
575 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest014, TestSize.Level0)
576 {
577 const CredManager *cm = GetCredMgrInstance();
578 ASSERT_NE(cm, nullptr);
579 char *returnData = nullptr;
580 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS11, &returnData);
581 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
582 }
583
584 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest015, TestSize.Level0)
585 {
586 const CredManager *cm = GetCredMgrInstance();
587 ASSERT_NE(cm, nullptr);
588 char *returnData = nullptr;
589 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS12, &returnData);
590 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
591 }
592
593 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest016, TestSize.Level0)
594 {
595 const CredManager *cm = GetCredMgrInstance();
596 ASSERT_NE(cm, nullptr);
597 char *returnData = nullptr;
598 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS13, &returnData);
599 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
600 }
601
602 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest017, TestSize.Level0)
603 {
604 const CredManager *cm = GetCredMgrInstance();
605 ASSERT_NE(cm, nullptr);
606 char *returnData = nullptr;
607 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS15, &returnData);
608 EXPECT_EQ(ret, IS_ERR_KEYVALUE_METHOD_CONFLICT);
609 }
610
611 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest018, TestSize.Level0)
612 {
613 const CredManager *cm = GetCredMgrInstance();
614 ASSERT_NE(cm, nullptr);
615 char *credId = nullptr;
616 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS16, &credId);
617 EXPECT_EQ(ret, IS_SUCCESS);
618 ret = cm->deleteCredential(DEFAULT_OS_ACCOUNT, credId);
619 HcFree(credId);
620 EXPECT_EQ(ret, IS_SUCCESS);
621 }
622
623 HWTEST_F(CredMgrAddCredentialTest, CredMgrAddCredentialTest019, TestSize.Level0)
624 {
625 Credential *credential = CreateCredential();
626 ASSERT_NE(credential, nullptr);
627 QueryCredentialParams params = InitQueryCredentialParams();
628 bool ret = CompareIntParams(¶ms, credential);
629 EXPECT_EQ(ret, true);
630 params.credType = ACCOUNT_RELATED;
631 credential->credType = ACCOUNT_UNRELATED;
632 ret = CompareIntParams(¶ms, credential);
633 EXPECT_EQ(ret, false);
634 params.credType = DEFAULT_CRED_PARAM_VAL;
635 ret = CompareSubject(credential, ¶ms);
636 EXPECT_EQ(ret, true);
637 ret = CompareIssuer(credential, ¶ms);
638 EXPECT_EQ(ret, false);
639 ret = CompareOwnerUid(credential, ¶ms);
640 EXPECT_EQ(ret, false);
641 ret = CompareAuthorziedScope(credential, ¶ms);
642 EXPECT_EQ(ret, false);
643 ret = CompareKeyFormat(credential, ¶ms);
644 EXPECT_EQ(ret, false);
645 ret = CompareAlgorithmType(credential, ¶ms);
646 EXPECT_EQ(ret, false);
647 ret = CompareProofType(credential, ¶ms);
648 EXPECT_EQ(ret, false);
649 DestroyCredential(credential);
650 }
651
652 class CredMgrExportCredentialTest : public testing::Test {
653 public:
654 static void SetUpTestCase();
655 static void TearDownTestCase();
656 void SetUp();
657 void TearDown();
658 };
659
660
SetUpTestCase()661 void CredMgrExportCredentialTest::SetUpTestCase() {}
TearDownTestCase()662 void CredMgrExportCredentialTest::TearDownTestCase() {}
663
SetUp()664 void CredMgrExportCredentialTest::SetUp()
665 {
666 DeleteDatabase();
667 int ret = InitDeviceAuthService();
668 EXPECT_EQ(ret, IS_SUCCESS);
669 }
670
TearDown()671 void CredMgrExportCredentialTest::TearDown()
672 {
673 DestroyDeviceAuthService();
674 }
675
676 HWTEST_F(CredMgrExportCredentialTest, CredMgrExportCredentialTest001, TestSize.Level0)
677 {
678 const CredManager *cm = GetCredMgrInstance();
679 ASSERT_NE(cm, nullptr);
680 char *credId = nullptr;
681 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
682 EXPECT_EQ(ret, IS_SUCCESS);
683 char *returnData = nullptr;
684 ret = cm->exportCredential(DEFAULT_OS_ACCOUNT, credId, &returnData);
685 HcFree(credId);
686 cm->destroyInfo(&returnData);
687 EXPECT_EQ(ret, IS_SUCCESS);
688 }
689
690 HWTEST_F(CredMgrExportCredentialTest, CredMgrExportCredentialTest002, TestSize.Level0)
691 {
692 const CredManager *cm = GetCredMgrInstance();
693 ASSERT_NE(cm, nullptr);
694 char *credId = nullptr;
695 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS2, &credId);
696 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
697 char *returnData = nullptr;
698 ret = cm->exportCredential(DEFAULT_OS_ACCOUNT, credId, &returnData);
699 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
700 }
701
702 HWTEST_F(CredMgrExportCredentialTest, CredMgrExportCredentialTest003, TestSize.Level0)
703 {
704 const CredManager *cm = GetCredMgrInstance();
705 ASSERT_NE(cm, nullptr);
706 char *credId = nullptr;
707 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
708 EXPECT_EQ(ret, IS_SUCCESS);
709 ret = cm->exportCredential(DEFAULT_OS_ACCOUNT, credId, nullptr);
710 HcFree(credId);
711 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
712 }
713
714 HWTEST_F(CredMgrExportCredentialTest, CredMgrExportCredentialTest004, TestSize.Level0)
715 {
716 const CredManager *cm = GetCredMgrInstance();
717 ASSERT_NE(cm, nullptr);
718 char *credId = nullptr;
719 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
720 HcFree(credId);
721 EXPECT_EQ(ret, IS_SUCCESS);
722 char *returnData = nullptr;
723 ret = cm->exportCredential(DEFAULT_OS_ACCOUNT, nullptr, &returnData);
724 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
725 }
726
727 class CredMgrQueryCredentialByParamsTest : public testing::Test {
728 public:
729 static void SetUpTestCase();
730 static void TearDownTestCase();
731 void SetUp();
732 void TearDown();
733 };
734
SetUpTestCase()735 void CredMgrQueryCredentialByParamsTest::SetUpTestCase() {}
TearDownTestCase()736 void CredMgrQueryCredentialByParamsTest::TearDownTestCase() {}
737
SetUp()738 void CredMgrQueryCredentialByParamsTest::SetUp()
739 {
740 DeleteDatabase();
741 int ret = InitDeviceAuthService();
742 EXPECT_EQ(ret, IS_SUCCESS);
743 }
744
TearDown()745 void CredMgrQueryCredentialByParamsTest::TearDown()
746 {
747 DestroyDeviceAuthService();
748 }
749
750 HWTEST_F(CredMgrQueryCredentialByParamsTest, CredMgrQueryCredentialByParamsTest001, TestSize.Level0)
751 {
752 const CredManager *cm = GetCredMgrInstance();
753 ASSERT_NE(cm, nullptr);
754 char *returnData = nullptr;
755 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &returnData);
756 HcFree(returnData);
757 returnData = nullptr;
758 EXPECT_EQ(ret, IS_SUCCESS);
759 ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS14, &returnData);
760 HcFree(returnData);
761 EXPECT_EQ(ret, IS_SUCCESS);
762 char *credIdList = nullptr;
763 ret = cm->queryCredentialByParams(DEFAULT_OS_ACCOUNT, QUERY_PARAMS, &credIdList);
764 EXPECT_EQ(ret, IS_SUCCESS);
765 CJson *jsonArr = CreateJsonFromString(credIdList);
766 int32_t size = GetItemNum(jsonArr);
767 HcFree(credIdList);
768 FreeJson(jsonArr);
769 EXPECT_EQ(size, QUERY_RESULT_NUM_2);
770 }
771
772 HWTEST_F(CredMgrQueryCredentialByParamsTest, CredMgrQueryCredentialByParamsTest002, TestSize.Level0)
773 {
774 const CredManager *cm = GetCredMgrInstance();
775 ASSERT_NE(cm, nullptr);
776 char *credIdList = nullptr;
777 int32_t ret = cm->queryCredentialByParams(DEFAULT_OS_ACCOUNT, nullptr, &credIdList);
778 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
779 }
780
781 HWTEST_F(CredMgrQueryCredentialByParamsTest, CredMgrQueryCredentialByParamsTest003, TestSize.Level0)
782 {
783 const CredManager *cm = GetCredMgrInstance();
784 ASSERT_NE(cm, nullptr);
785 int32_t ret = cm->queryCredentialByParams(DEFAULT_OS_ACCOUNT, QUERY_PARAMS, nullptr);
786 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
787 }
788
789 HWTEST_F(CredMgrQueryCredentialByParamsTest, CredMgrQueryCredentialByParamsTest004, TestSize.Level0)
790 {
791 const CredManager *cm = GetCredMgrInstance();
792 ASSERT_NE(cm, nullptr);
793 char *returnData = nullptr;
794 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &returnData);
795 HcFree(returnData);
796 EXPECT_EQ(ret, IS_SUCCESS);
797 char *credIdList = nullptr;
798 ret = cm->queryCredentialByParams(DEFAULT_OS_ACCOUNT, QUERY_PARAMS1, &credIdList);
799 EXPECT_EQ(ret, IS_SUCCESS);
800 CJson *jsonArr = CreateJsonFromString(credIdList);
801 int32_t size = GetItemNum(jsonArr);
802 HcFree(credIdList);
803 FreeJson(jsonArr);
804 EXPECT_EQ(size, QUERY_RESULT_NUM);
805 }
806
807 class CredMgrQueryCredInfoByCredIdTest : public testing::Test {
808 public:
809 static void SetUpTestCase();
810 static void TearDownTestCase();
811 void SetUp();
812 void TearDown();
813 };
814
SetUpTestCase()815 void CredMgrQueryCredInfoByCredIdTest::SetUpTestCase() {}
TearDownTestCase()816 void CredMgrQueryCredInfoByCredIdTest::TearDownTestCase() {}
817
SetUp()818 void CredMgrQueryCredInfoByCredIdTest::SetUp()
819 {
820 DeleteDatabase();
821 int ret = InitDeviceAuthService();
822 EXPECT_EQ(ret, IS_SUCCESS);
823 }
824
TearDown()825 void CredMgrQueryCredInfoByCredIdTest::TearDown()
826 {
827 DestroyDeviceAuthService();
828 }
829
830 HWTEST_F(CredMgrQueryCredInfoByCredIdTest, CredMgrQueryCredInfoByCredIdTest001, TestSize.Level0)
831 {
832 const CredManager *cm = GetCredMgrInstance();
833 ASSERT_NE(cm, nullptr);
834 char *credId = nullptr;
835 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
836 EXPECT_EQ(ret, IS_SUCCESS);
837 char *returnCredInfo = nullptr;
838 ret = cm->queryCredInfoByCredId(DEFAULT_OS_ACCOUNT, credId, &returnCredInfo);
839 HcFree(credId);
840 EXPECT_EQ(ret, IS_SUCCESS);
841 CJson *credInfoJson = CreateJsonFromString(returnCredInfo);
842 HcFree(returnCredInfo);
843 const char *deviceId = GetStringFromJson(credInfoJson, FIELD_DEVICE_ID);
844 EXPECT_EQ(IsStrEqual(deviceId, TEST_DEVICE_ID), true);
845 FreeJson(credInfoJson);
846 }
847
848 HWTEST_F(CredMgrQueryCredInfoByCredIdTest, CredMgrQueryCredInfoByCredIdTest002, TestSize.Level0)
849 {
850 const CredManager *cm = GetCredMgrInstance();
851 ASSERT_NE(cm, nullptr);
852 char *returnCredInfo = nullptr;
853 int32_t ret = cm->queryCredInfoByCredId(DEFAULT_OS_ACCOUNT, nullptr, &returnCredInfo);
854 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
855 }
856
857 HWTEST_F(CredMgrQueryCredInfoByCredIdTest, CredMgrQueryCredInfoByCredIdTest003, TestSize.Level0)
858 {
859 const CredManager *cm = GetCredMgrInstance();
860 ASSERT_NE(cm, nullptr);
861 char *credId = nullptr;
862 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS14, &credId);
863 EXPECT_EQ(ret, IS_SUCCESS);
864 ret = cm->queryCredInfoByCredId(DEFAULT_OS_ACCOUNT, credId, nullptr);
865 HcFree(credId);
866 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
867 }
868
869 class CredMgrDeleteCredentialTest : public testing::Test {
870 public:
871 static void SetUpTestCase();
872 static void TearDownTestCase();
873 void SetUp();
874 void TearDown();
875 };
876
SetUpTestCase()877 void CredMgrDeleteCredentialTest::SetUpTestCase() {}
TearDownTestCase()878 void CredMgrDeleteCredentialTest::TearDownTestCase() {}
879
SetUp()880 void CredMgrDeleteCredentialTest::SetUp()
881 {
882 DeleteDatabase();
883 int ret = InitDeviceAuthService();
884 EXPECT_EQ(ret, IS_SUCCESS);
885 }
886
TearDown()887 void CredMgrDeleteCredentialTest::TearDown()
888 {
889 DestroyDeviceAuthService();
890 }
891
892 HWTEST_F(CredMgrDeleteCredentialTest, CredMgrDeleteCredentialTest001, TestSize.Level0)
893 {
894 const CredManager *cm = GetCredMgrInstance();
895 ASSERT_NE(cm, nullptr);
896 char *credId = nullptr;
897 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
898 EXPECT_EQ(ret, IS_SUCCESS);
899 ret = cm->deleteCredential(DEFAULT_OS_ACCOUNT, credId);
900 HcFree(credId);
901 EXPECT_EQ(ret, IS_SUCCESS);
902 }
903
904 HWTEST_F(CredMgrDeleteCredentialTest, CredMgrDeleteCredentialTest003, TestSize.Level0)
905 {
906 const CredManager *cm = GetCredMgrInstance();
907 ASSERT_NE(cm, nullptr);
908 int32_t ret = cm->deleteCredential(DEFAULT_OS_ACCOUNT, nullptr);
909 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
910 }
911
912 class CredMgrUpdateCredInfoTest : public testing::Test {
913 public:
914 static void SetUpTestCase();
915 static void TearDownTestCase();
916 void SetUp();
917 void TearDown();
918 };
919
SetUpTestCase()920 void CredMgrUpdateCredInfoTest::SetUpTestCase() {}
TearDownTestCase()921 void CredMgrUpdateCredInfoTest::TearDownTestCase() {}
922
SetUp()923 void CredMgrUpdateCredInfoTest::SetUp()
924 {
925 DeleteDatabase();
926 int ret = InitDeviceAuthService();
927 EXPECT_EQ(ret, IS_SUCCESS);
928 }
929
TearDown()930 void CredMgrUpdateCredInfoTest::TearDown()
931 {
932 DestroyDeviceAuthService();
933 }
934
935 HWTEST_F(CredMgrUpdateCredInfoTest, CredMgrUpdateCredInfoTest001, TestSize.Level0)
936 {
937 const CredManager *cm = GetCredMgrInstance();
938 ASSERT_NE(cm, nullptr);
939 char *credId = nullptr;
940 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
941 EXPECT_EQ(ret, IS_SUCCESS);
942 ret = cm->updateCredInfo(DEFAULT_OS_ACCOUNT, credId, REQUEST_PARAMS);
943 HcFree(credId);
944 EXPECT_EQ(ret, IS_SUCCESS);
945 }
946
947 HWTEST_F(CredMgrUpdateCredInfoTest, CredMgrUpdateCredInfoTest002, TestSize.Level0)
948 {
949 const CredManager *cm = GetCredMgrInstance();
950 ASSERT_NE(cm, nullptr);
951 char *credId = nullptr;
952 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
953 EXPECT_EQ(ret, IS_SUCCESS);
954 ret = cm->updateCredInfo(DEFAULT_OS_ACCOUNT, credId, "");
955 HcFree(credId);
956 EXPECT_EQ(ret, IS_ERR_JSON_CREATE);
957 }
958
959 HWTEST_F(CredMgrUpdateCredInfoTest, CredMgrUpdateCredInfoTest004, TestSize.Level0)
960 {
961 const CredManager *cm = GetCredMgrInstance();
962 ASSERT_NE(cm, nullptr);
963 char *credId = nullptr;
964 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
965 EXPECT_EQ(ret, IS_SUCCESS);
966 ret = cm->updateCredInfo(DEFAULT_OS_ACCOUNT, nullptr, REQUEST_PARAMS);
967 HcFree(credId);
968 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
969 }
970
971 class CredMgrRegCredListenerTest : public testing::Test {
972 public:
973 static void SetUpTestCase();
974 static void TearDownTestCase();
975 void SetUp();
976 void TearDown();
977 };
978
SetUpTestCase()979 void CredMgrRegCredListenerTest::SetUpTestCase() {}
TearDownTestCase()980 void CredMgrRegCredListenerTest::TearDownTestCase() {}
981
SetUp()982 void CredMgrRegCredListenerTest::SetUp()
983 {
984 DeleteDatabase();
985 int ret = InitDeviceAuthService();
986 EXPECT_EQ(ret, IS_SUCCESS);
987 }
988
TearDown()989 void CredMgrRegCredListenerTest::TearDown()
990 {
991 DestroyDeviceAuthService();
992 }
993
994 HWTEST_F(CredMgrRegCredListenerTest, CredMgrRegCredListenerTest001, TestSize.Level0)
995 {
996 const CredManager *cm = GetCredMgrInstance();
997 ASSERT_NE(cm, nullptr);
998 CredChangeListener listener;
999 int32_t ret = cm->registerChangeListener(TEST_APP_ID, &listener);
1000 EXPECT_EQ(ret, IS_SUCCESS);
1001 }
1002
1003 HWTEST_F(CredMgrRegCredListenerTest, CredMgrRegCredListenerTest002, TestSize.Level0)
1004 {
1005 const CredManager *cm = GetCredMgrInstance();
1006 ASSERT_NE(cm, nullptr);
1007 CredChangeListener listener;
1008 int32_t ret = cm->registerChangeListener(TEST_APP_ID, &listener);
1009 EXPECT_EQ(ret, IS_SUCCESS);
1010 ret = cm->registerChangeListener(TEST_APP_ID, &listener);
1011 EXPECT_EQ(ret, IS_SUCCESS);
1012 }
1013
1014 HWTEST_F(CredMgrRegCredListenerTest, CredMgrRegCredListenerTest003, TestSize.Level0)
1015 {
1016 const CredManager *cm = GetCredMgrInstance();
1017 ASSERT_NE(cm, nullptr);
1018 CredChangeListener listener;
1019 int32_t ret = cm->registerChangeListener(nullptr, &listener);
1020 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
1021 }
1022
1023 HWTEST_F(CredMgrRegCredListenerTest, CredMgrRegCredListenerTest004, TestSize.Level0)
1024 {
1025 const CredManager *cm = GetCredMgrInstance();
1026 ASSERT_NE(cm, nullptr);
1027 int32_t ret = cm->registerChangeListener(TEST_APP_ID, nullptr);
1028 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
1029 }
1030
1031 HWTEST_F(CredMgrRegCredListenerTest, CredMgrRegCredListenerTest005, TestSize.Level0)
1032 {
1033 g_credListenerStatus = CRED_LISTENER_INIT;
1034 const CredManager *cm = GetCredMgrInstance();
1035 ASSERT_NE(cm, nullptr);
1036 int32_t ret = cm->registerChangeListener(TEST_APP_ID, &g_credChangeListener);
1037 EXPECT_EQ(ret, IS_SUCCESS);
1038 char *credId = nullptr;
1039 ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
1040 HcFree(credId);
1041 EXPECT_EQ(ret, IS_SUCCESS);
1042 EXPECT_EQ(g_credListenerStatus, CRED_LISTENER_ON_ADD);
1043 }
1044
1045 HWTEST_F(CredMgrRegCredListenerTest, CredMgrRegCredListenerTest006, TestSize.Level0)
1046 {
1047 g_credListenerStatus = CRED_LISTENER_INIT;
1048 const CredManager *cm = GetCredMgrInstance();
1049 ASSERT_NE(cm, nullptr);
1050 int32_t ret = cm->registerChangeListener(TEST_APP_ID, &g_credChangeListener);
1051 EXPECT_EQ(ret, IS_SUCCESS);
1052 char *credId = nullptr;
1053 ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
1054 EXPECT_EQ(ret, IS_SUCCESS);
1055 ret = cm->updateCredInfo(DEFAULT_OS_ACCOUNT, credId, REQUEST_PARAMS);
1056 HcFree(credId);
1057 EXPECT_EQ(ret, IS_SUCCESS);
1058 EXPECT_EQ(g_credListenerStatus, CRED_LISTENER_ON_UPDATE);
1059 }
1060
1061 HWTEST_F(CredMgrRegCredListenerTest, CredMgrRegCredListenerTest007, TestSize.Level0)
1062 {
1063 g_credListenerStatus = CRED_LISTENER_INIT;
1064 const CredManager *cm = GetCredMgrInstance();
1065 ASSERT_NE(cm, nullptr);
1066 int32_t ret = cm->registerChangeListener(TEST_APP_ID, &g_credChangeListener);
1067 EXPECT_EQ(ret, IS_SUCCESS);
1068 char *credId = nullptr;
1069 ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
1070 EXPECT_EQ(ret, IS_SUCCESS);
1071 ret = cm->deleteCredential(DEFAULT_OS_ACCOUNT, credId);
1072 HcFree(credId);
1073 EXPECT_EQ(ret, IS_SUCCESS);
1074 EXPECT_EQ(g_credListenerStatus, CRED_LISTENER_ON_DELETE);
1075 }
1076
1077 class CredMgrUnRegCredListenerTest : public testing::Test {
1078 public:
1079 static void SetUpTestCase();
1080 static void TearDownTestCase();
1081 void SetUp();
1082 void TearDown();
1083 };
1084
SetUpTestCase()1085 void CredMgrUnRegCredListenerTest::SetUpTestCase() {}
TearDownTestCase()1086 void CredMgrUnRegCredListenerTest::TearDownTestCase() {}
1087
SetUp()1088 void CredMgrUnRegCredListenerTest::SetUp()
1089 {
1090 int ret = InitDeviceAuthService();
1091 EXPECT_EQ(ret, IS_SUCCESS);
1092 }
1093
TearDown()1094 void CredMgrUnRegCredListenerTest::TearDown()
1095 {
1096 DestroyDeviceAuthService();
1097 }
1098
1099 HWTEST_F(CredMgrUnRegCredListenerTest, CredMgrUnRegCredListenerTest001, TestSize.Level0)
1100 {
1101 const CredManager *cm = GetCredMgrInstance();
1102 ASSERT_NE(cm, nullptr);
1103 CredChangeListener listener;
1104 int32_t ret = cm->registerChangeListener(TEST_APP_ID, &listener);
1105 EXPECT_EQ(ret, IS_SUCCESS);
1106 ret = cm->unregisterChangeListener(TEST_APP_ID);
1107 EXPECT_EQ(ret, IS_SUCCESS);
1108 }
1109
1110 HWTEST_F(CredMgrUnRegCredListenerTest, CredMgrUnRegCredListenerTest002, TestSize.Level0)
1111 {
1112 const CredManager *cm = GetCredMgrInstance();
1113 ASSERT_NE(cm, nullptr);
1114 int32_t ret = cm->unregisterChangeListener(TEST_APP_ID);
1115 EXPECT_EQ(ret, IS_SUCCESS);
1116 }
1117
1118 HWTEST_F(CredMgrUnRegCredListenerTest, CredMgrUnRegCredListenerTest003, TestSize.Level0)
1119 {
1120 const CredManager *cm = GetCredMgrInstance();
1121 ASSERT_NE(cm, nullptr);
1122 int32_t ret = cm->unregisterChangeListener(nullptr);
1123 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
1124 }
1125
1126 class CredMgrAgreeCredentialTest : public testing::Test {
1127 public:
1128 static void SetUpTestCase();
1129 static void TearDownTestCase();
1130 void SetUp();
1131 void TearDown();
1132 };
1133
SetUpTestCase()1134 void CredMgrAgreeCredentialTest::SetUpTestCase() {}
TearDownTestCase()1135 void CredMgrAgreeCredentialTest::TearDownTestCase() {}
1136
SetUp()1137 void CredMgrAgreeCredentialTest::SetUp()
1138 {
1139 DeleteDatabase();
1140 int ret = InitDeviceAuthService();
1141 EXPECT_EQ(ret, IS_SUCCESS);
1142 }
1143
TearDown()1144 void CredMgrAgreeCredentialTest::TearDown()
1145 {
1146 DestroyDeviceAuthService();
1147 }
1148
1149 HWTEST_F(CredMgrAgreeCredentialTest, CredMgrAgreeCredentialTest001, TestSize.Level0)
1150 {
1151 const CredManager *cm = GetCredMgrInstance();
1152 ASSERT_NE(cm, nullptr);
1153 char *selfCredId = nullptr;
1154 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS17, &selfCredId);
1155 EXPECT_EQ(ret, IS_SUCCESS);
1156 char *returnData = nullptr;
1157 ret = cm->agreeCredential(DEFAULT_OS_ACCOUNT, selfCredId, AGREE_PARAMS, &returnData);
1158 HcFree(selfCredId);
1159 HcFree(returnData);
1160 EXPECT_EQ(ret, IS_SUCCESS);
1161 }
1162
1163 HWTEST_F(CredMgrAgreeCredentialTest, CredMgrAgreeCredentialTest002, TestSize.Level0)
1164 {
1165 const CredManager *cm = GetCredMgrInstance();
1166 ASSERT_NE(cm, nullptr);
1167 char *returnData = nullptr;
1168 int32_t ret = cm->agreeCredential(DEFAULT_OS_ACCOUNT, nullptr, AGREE_PARAMS, &returnData);
1169 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
1170 }
1171
1172 HWTEST_F(CredMgrAgreeCredentialTest, CredMgrAgreeCredentialTest003, TestSize.Level0)
1173 {
1174 const CredManager *cm = GetCredMgrInstance();
1175 ASSERT_NE(cm, nullptr);
1176 char *returnData = nullptr;
1177 int32_t ret = cm->agreeCredential(DEFAULT_OS_ACCOUNT, TEST_CRED_ID, nullptr, &returnData);
1178 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
1179 }
1180
1181 HWTEST_F(CredMgrAgreeCredentialTest, CredMgrAgreeCredentialTest004, TestSize.Level0)
1182 {
1183 const CredManager *cm = GetCredMgrInstance();
1184 ASSERT_NE(cm, nullptr);
1185 int32_t ret = cm->agreeCredential(DEFAULT_OS_ACCOUNT, TEST_CRED_ID, AGREE_PARAMS, nullptr);
1186 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
1187 }
1188
1189 class CredMgrBatchUpdateCredsTest : public testing::Test {
1190 public:
1191 static void SetUpTestCase();
1192 static void TearDownTestCase();
1193 void SetUp();
1194 void TearDown();
1195 };
1196
SetUpTestCase()1197 void CredMgrBatchUpdateCredsTest::SetUpTestCase() {}
TearDownTestCase()1198 void CredMgrBatchUpdateCredsTest::TearDownTestCase() {}
1199
SetUp()1200 void CredMgrBatchUpdateCredsTest::SetUp()
1201 {
1202 DeleteDatabase();
1203 int ret = InitDeviceAuthService();
1204 EXPECT_EQ(ret, IS_SUCCESS);
1205 }
1206
TearDown()1207 void CredMgrBatchUpdateCredsTest::TearDown()
1208 {
1209 DestroyDeviceAuthService();
1210 }
1211
1212 HWTEST_F(CredMgrBatchUpdateCredsTest, CredMgrBatchUpdateCredsTest001, TestSize.Level0)
1213 {
1214 const CredManager *cm = GetCredMgrInstance();
1215 ASSERT_NE(cm, nullptr);
1216 char *returnData = nullptr;
1217 int32_t ret = cm->batchUpdateCredentials(DEFAULT_OS_ACCOUNT, BATCH_UPDATE_PARAMS, &returnData);
1218 HcFree(returnData);
1219 EXPECT_EQ(ret, IS_SUCCESS);
1220 }
1221
1222 HWTEST_F(CredMgrBatchUpdateCredsTest, CredMgrBatchUpdateCredsTest002, TestSize.Level0)
1223 {
1224 const CredManager *cm = GetCredMgrInstance();
1225 ASSERT_NE(cm, nullptr);
1226 char *returnData = nullptr;
1227 int32_t ret = cm->batchUpdateCredentials(DEFAULT_OS_ACCOUNT, nullptr, &returnData);
1228 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
1229 }
1230
1231 HWTEST_F(CredMgrBatchUpdateCredsTest, CredMgrBatchUpdateCredsTest003, TestSize.Level0)
1232 {
1233 const CredManager *cm = GetCredMgrInstance();
1234 ASSERT_NE(cm, nullptr);
1235 char *returnData = nullptr;
1236 int32_t ret = cm->batchUpdateCredentials(DEFAULT_OS_ACCOUNT, BATCH_UPDATE_PARAMS1, &returnData);
1237 EXPECT_EQ(ret, IS_ERR_NOT_SUPPORT);
1238 }
1239
1240 HWTEST_F(CredMgrBatchUpdateCredsTest, CredMgrBatchUpdateCredsTest004, TestSize.Level0)
1241 {
1242 const CredManager *cm = GetCredMgrInstance();
1243 ASSERT_NE(cm, nullptr);
1244 int32_t ret = cm->batchUpdateCredentials(DEFAULT_OS_ACCOUNT, BATCH_UPDATE_PARAMS, nullptr);
1245 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
1246 }
1247
1248 HWTEST_F(CredMgrBatchUpdateCredsTest, CredMgrBatchUpdateCredsTest005, TestSize.Level0)
1249 {
1250 const CredManager *cm = GetCredMgrInstance();
1251 ASSERT_NE(cm, nullptr);
1252 char *credId = nullptr;
1253 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS18, &credId);
1254 HcFree(credId);
1255 EXPECT_EQ(ret, IS_SUCCESS);
1256 char *returnData = nullptr;
1257 ret = cm->batchUpdateCredentials(DEFAULT_OS_ACCOUNT, BATCH_UPDATE_PARAMS, &returnData);
1258 HcFree(returnData);
1259 EXPECT_EQ(ret, IS_SUCCESS);
1260 }
1261
1262 class CredMgrDelCredByParamsTest : public testing::Test {
1263 public:
1264 static void SetUpTestCase();
1265 static void TearDownTestCase();
1266 void SetUp();
1267 void TearDown();
1268 };
1269
SetUpTestCase()1270 void CredMgrDelCredByParamsTest::SetUpTestCase() {}
TearDownTestCase()1271 void CredMgrDelCredByParamsTest::TearDownTestCase() {}
1272
SetUp()1273 void CredMgrDelCredByParamsTest::SetUp()
1274 {
1275 DeleteDatabase();
1276 int ret = InitDeviceAuthService();
1277 EXPECT_EQ(ret, IS_SUCCESS);
1278 }
1279
TearDown()1280 void CredMgrDelCredByParamsTest::TearDown()
1281 {
1282 DestroyDeviceAuthService();
1283 }
1284
1285 HWTEST_F(CredMgrDelCredByParamsTest, CredMgrDelCredByParamsTest001, TestSize.Level0)
1286 {
1287 const CredManager *cm = GetCredMgrInstance();
1288 ASSERT_NE(cm, nullptr);
1289 char *credId = nullptr;
1290 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
1291 HcFree(credId);
1292 EXPECT_EQ(ret, IS_SUCCESS);
1293 char *returnData = nullptr;
1294 ret = cm->deleteCredByParams(DEFAULT_OS_ACCOUNT, DEL_PARAMS, &returnData);
1295 HcFree(returnData);
1296 EXPECT_EQ(ret, IS_SUCCESS);
1297 }
1298
1299 HWTEST_F(CredMgrDelCredByParamsTest, CredMgrDelCredByParamsTest002, TestSize.Level0)
1300 {
1301 const CredManager *cm = GetCredMgrInstance();
1302 ASSERT_NE(cm, nullptr);
1303 char *returnData = nullptr;
1304 int32_t ret = cm->deleteCredByParams(DEFAULT_OS_ACCOUNT, nullptr, &returnData);
1305 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
1306 }
1307
1308 HWTEST_F(CredMgrDelCredByParamsTest, CredMgrDelCredByParamsTest003, TestSize.Level0)
1309 {
1310 const CredManager *cm = GetCredMgrInstance();
1311 ASSERT_NE(cm, nullptr);
1312 int32_t ret = cm->deleteCredByParams(DEFAULT_OS_ACCOUNT, DEL_PARAMS, nullptr);
1313 EXPECT_EQ(ret, IS_ERR_INVALID_PARAMS);
1314 }
1315
1316 HWTEST_F(CredMgrDelCredByParamsTest, CredMgrDelCredByParamsTest004, TestSize.Level0)
1317 {
1318 const CredManager *cm = GetCredMgrInstance();
1319 ASSERT_NE(cm, nullptr);
1320 char *credId = nullptr;
1321 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, ADD_PARAMS, &credId);
1322 HcFree(credId);
1323 EXPECT_EQ(ret, IS_SUCCESS);
1324 char *returnData = nullptr;
1325 ret = cm->deleteCredByParams(DEFAULT_OS_ACCOUNT, DEL_PARAMS1, &returnData);
1326 HcFree(returnData);
1327 EXPECT_EQ(ret, IS_SUCCESS);
1328 }
1329
1330 class CredListenerTest : public testing::Test {
1331 public:
1332 static void SetUpTestCase();
1333 static void TearDownTestCase();
1334 void SetUp();
1335 void TearDown();
1336 };
1337
SetUpTestCase()1338 void CredListenerTest::SetUpTestCase() {}
TearDownTestCase()1339 void CredListenerTest::TearDownTestCase() {}
1340
SetUp()1341 void CredListenerTest::SetUp()
1342 {
1343 int32_t ret = InitCredListener();
1344 EXPECT_EQ(ret, IS_SUCCESS);
1345 }
1346
TearDown()1347 void CredListenerTest::TearDown()
1348 {
1349 DestroyCredListener();
1350 }
1351
1352 HWTEST_F(CredListenerTest, CredListenerTest001, TestSize.Level0)
1353 {
1354 OnCredAdd(nullptr, nullptr);
1355 OnCredAdd(TEST_CRED_ID, TEST_CRED_INFO_ID);
1356 OnCredDelete(nullptr, nullptr);
1357 OnCredDelete(TEST_CRED_ID, TEST_CRED_INFO_ID);
1358 OnCredUpdate(nullptr, nullptr);
1359 OnCredUpdate(TEST_CRED_ID, TEST_CRED_INFO_ID);
1360 int32_t ret = AddCredListener(nullptr, &g_credChangeListener);
1361 EXPECT_NE(ret, IS_SUCCESS);
1362 ret = AddCredListener(TEST_APP_ID, nullptr);
1363 EXPECT_NE(ret, IS_SUCCESS);
1364 }
1365
1366 HWTEST_F(CredListenerTest, CredListenerTest002, TestSize.Level0)
1367 {
1368 int32_t ret = RemoveCredListener(nullptr);
1369 EXPECT_NE(ret, IS_SUCCESS);
1370 }
1371
1372 class IdentityOperationTest : public testing::Test {
1373 public:
1374 static void SetUpTestCase();
1375 static void TearDownTestCase();
1376 void SetUp();
1377 void TearDown();
1378 };
1379
SetUpTestCase()1380 void IdentityOperationTest::SetUpTestCase() {}
TearDownTestCase()1381 void IdentityOperationTest::TearDownTestCase() {}
1382
SetUp()1383 void IdentityOperationTest::SetUp()
1384 {
1385 }
1386
TearDown()1387 void IdentityOperationTest::TearDown()
1388 {
1389 }
1390
1391 HWTEST_F(IdentityOperationTest, IdentityOperationTest001, TestSize.Level0)
1392 {
1393 int32_t ret = GetCredentialById(DEFAULT_OS_ACCOUNT_ID, nullptr, nullptr);
1394 EXPECT_NE(ret, IS_SUCCESS);
1395 }
1396
1397 HWTEST_F(IdentityOperationTest, IdentityOperationTest002, TestSize.Level0)
1398 {
1399 char *credIdStr = nullptr;
1400 char *deviceId = nullptr;
1401 char *credOwner = nullptr;
1402 Uint8Buff *credIdByte = nullptr;
1403 int32_t ret = GenerateCredIdInner(nullptr, deviceId, credIdByte, &credIdStr);
1404 EXPECT_NE(ret, IS_SUCCESS);
1405 ret = GenerateCredIdInner(credOwner, nullptr, credIdByte, &credIdStr);
1406 EXPECT_NE(ret, IS_SUCCESS);
1407 }
1408
1409 HWTEST_F(IdentityOperationTest, IdentityOperationTest003, TestSize.Level0)
1410 {
1411 Credential *credetial = CreateCredential();
1412 int32_t ret = SetVectorFromList(&credetial->authorizedAppList, nullptr);
1413 DestroyCredential(credetial);
1414 EXPECT_EQ(ret, IS_SUCCESS);
1415 }
1416
1417 HWTEST_F(IdentityOperationTest, IdentityOperationTest004, TestSize.Level0)
1418 {
1419 int32_t ret = SetMethodFromJson(nullptr, nullptr);
1420 EXPECT_NE(ret, IS_SUCCESS);
1421 }
1422
1423 HWTEST_F(IdentityOperationTest, IdentityOperationTest005, TestSize.Level0)
1424 {
1425 int32_t ret = SetCredType(nullptr, nullptr);
1426 EXPECT_NE(ret, IS_SUCCESS);
1427 }
1428
1429 HWTEST_F(IdentityOperationTest, IdentityOperationTest006, TestSize.Level0)
1430 {
1431 int32_t ret = SetKeyFormat(nullptr, nullptr, DEFAULT_VAL);
1432 EXPECT_NE(ret, IS_SUCCESS);
1433 Credential *credetial = CreateCredential();
1434 CJson *json = CreateJson();
1435 ret = AddIntToJson(json, FIELD_KEY_FORMAT, SYMMETRIC_KEY);
1436 EXPECT_EQ(ret, IS_SUCCESS);
1437 ret = SetKeyFormat(credetial, json, DEFAULT_VAL);
1438 EXPECT_NE(ret, IS_SUCCESS);
1439
1440 ret = AddIntToJson(json, FIELD_KEY_FORMAT, ASYMMETRIC_PUB_KEY);
1441 EXPECT_EQ(ret, IS_SUCCESS);
1442 ret = SetKeyFormat(credetial, json, METHOD_GENERATE);
1443 EXPECT_NE(ret, IS_SUCCESS);
1444
1445 ret = AddIntToJson(json, FIELD_KEY_FORMAT, ASYMMETRIC_KEY);
1446 EXPECT_EQ(ret, IS_SUCCESS);
1447 ret = SetKeyFormat(credetial, json, METHOD_IMPORT);
1448 EXPECT_NE(ret, IS_SUCCESS);
1449 DestroyCredential(credetial);
1450 FreeJson(json);
1451 }
1452
1453 HWTEST_F(IdentityOperationTest, IdentityOperationTest007, TestSize.Level0)
1454 {
1455 int32_t ret = SetAuthorizedScope(nullptr, nullptr);
1456 EXPECT_NE(ret, IS_SUCCESS);
1457 }
1458
1459 HWTEST_F(IdentityOperationTest, IdentityOperationTest008, TestSize.Level0)
1460 {
1461 int32_t ret = GetCredentialById(DEFAULT_OS_ACCOUNT_ID, nullptr, nullptr);
1462 EXPECT_NE(ret, IS_SUCCESS);
1463 }
1464
1465 HWTEST_F(IdentityOperationTest, IdentityOperationTest009, TestSize.Level0)
1466 {
1467 int32_t ret = CombineBaseCredId(nullptr, nullptr, nullptr);
1468 EXPECT_NE(ret, IS_SUCCESS);
1469 }
1470
1471 HWTEST_F(IdentityOperationTest, IdentityOperationTest010, TestSize.Level0)
1472 {
1473 int32_t ret = Sha256BaseCredId(nullptr, nullptr, nullptr);
1474 EXPECT_NE(ret, IS_SUCCESS);
1475 }
1476
1477 class IdentityServiceImplTest : public testing::Test {
1478 public:
1479 static void SetUpTestCase();
1480 static void TearDownTestCase();
1481 void SetUp();
1482 void TearDown();
1483 };
1484
SetUpTestCase()1485 void IdentityServiceImplTest::SetUpTestCase() {}
TearDownTestCase()1486 void IdentityServiceImplTest::TearDownTestCase() {}
1487
SetUp()1488 void IdentityServiceImplTest::SetUp()
1489 {
1490 DeleteDatabase();
1491 int ret = InitDeviceAuthService();
1492 EXPECT_EQ(ret, IS_SUCCESS);
1493 }
1494
TearDown()1495 void IdentityServiceImplTest::TearDown()
1496 {
1497 DestroyDeviceAuthService();
1498 }
1499
1500 HWTEST_F(IdentityServiceImplTest, IdentityServiceImplTest001, TestSize.Level0)
1501 {
1502 int32_t ret = AddCredentialImpl(DEFAULT_OS_ACCOUNT_ID, nullptr, nullptr);
1503 EXPECT_NE(ret, IS_SUCCESS);
1504 }
1505
1506 HWTEST_F(IdentityServiceImplTest, IdentityServiceImplTest002, TestSize.Level0)
1507 {
1508 int32_t ret = ExportCredentialImpl(DEFAULT_OS_ACCOUNT_ID, nullptr, nullptr);
1509 EXPECT_NE(ret, IS_SUCCESS);
1510 }
1511
1512 HWTEST_F(IdentityServiceImplTest, IdentityServiceImplTest003, TestSize.Level0)
1513 {
1514 int32_t ret = QueryCredentialByParamsImpl(DEFAULT_OS_ACCOUNT_ID, nullptr, nullptr);
1515 EXPECT_NE(ret, IS_SUCCESS);
1516 }
1517
1518 HWTEST_F(IdentityServiceImplTest, IdentityServiceImplTest004, TestSize.Level0)
1519 {
1520 int32_t ret = QueryCredInfoByCredIdImpl(DEFAULT_OS_ACCOUNT_ID, DEFAULT_VAL, nullptr, nullptr);
1521 EXPECT_NE(ret, IS_SUCCESS);
1522 }
1523
1524 HWTEST_F(IdentityServiceImplTest, IdentityServiceImplTest005, TestSize.Level0)
1525 {
1526 int32_t ret = DeleteCredentialImpl(DEFAULT_OS_ACCOUNT_ID, nullptr);
1527 EXPECT_NE(ret, IS_SUCCESS);
1528 }
1529
1530 HWTEST_F(IdentityServiceImplTest, IdentityServiceImplTest006, TestSize.Level0)
1531 {
1532 int32_t ret = DeleteCredByParamsImpl(DEFAULT_OS_ACCOUNT_ID, nullptr, nullptr);
1533 EXPECT_NE(ret, IS_SUCCESS);
1534 }
1535
1536 HWTEST_F(IdentityServiceImplTest, IdentityServiceImplTest007, TestSize.Level0)
1537 {
1538 int32_t ret = UpdateCredInfoImpl(DEFAULT_OS_ACCOUNT_ID, nullptr, nullptr);
1539 EXPECT_NE(ret, IS_SUCCESS);
1540 }
1541
1542 HWTEST_F(IdentityServiceImplTest, IdentityServiceImplTest008, TestSize.Level0)
1543 {
1544 QueryCredentialParams queryParam;
1545 int32_t ret = AddUpdateCred(DEFAULT_OS_ACCOUNT_ID, nullptr, &queryParam);
1546 EXPECT_NE(ret, IS_SUCCESS);
1547 }
1548
1549 HWTEST_F(IdentityServiceImplTest, IdentityServiceImplTest009, TestSize.Level0)
1550 {
1551 QueryCredentialParams queryParam;
1552 int32_t ret = ProcessAbnormalCreds(DEFAULT_OS_ACCOUNT_ID, nullptr, &queryParam);
1553 EXPECT_NE(ret, IS_SUCCESS);
1554 }
1555
1556 HWTEST_F(IdentityServiceImplTest, IdentityServiceImplTest010, TestSize.Level0)
1557 {
1558 int32_t ret = BatchUpdateCredsImpl(DEFAULT_OS_ACCOUNT_ID, nullptr, nullptr);
1559 EXPECT_NE(ret, IS_SUCCESS);
1560 }
1561
1562 HWTEST_F(IdentityServiceImplTest, IdentityServiceImplTest011, TestSize.Level0)
1563 {
1564 int32_t ret = AgreeCredentialImpl(DEFAULT_OS_ACCOUNT_ID, nullptr, nullptr, nullptr);
1565 EXPECT_NE(ret, IS_SUCCESS);
1566 }
1567
1568 class SessionV1Test : public testing::Test {
1569 public:
1570 static void SetUpTestCase();
1571 static void TearDownTestCase();
1572 void SetUp();
1573 void TearDown();
1574 };
1575
SetUpTestCase()1576 void SessionV1Test::SetUpTestCase() {}
TearDownTestCase()1577 void SessionV1Test::TearDownTestCase() {}
1578
SetUp()1579 void SessionV1Test::SetUp()
1580 {
1581 }
1582
TearDown()1583 void SessionV1Test::TearDown()
1584 {
1585 }
1586
1587 HWTEST_F(SessionV1Test, SessionV1Test001, TestSize.Level0)
1588 {
1589 int32_t ret = CheckPermission(DEFAULT_VAL);
1590 EXPECT_NE(ret, IS_SUCCESS);
1591 }
1592
1593 HWTEST_F(SessionV1Test, SessionV1Test002, TestSize.Level0)
1594 {
1595 SubSessionTypeValue subSessionType = TYPE_CLIENT_BIND_SUB_SESSION;
1596 int32_t ret = CreateCompatibleSubSession(subSessionType, nullptr, nullptr, nullptr);
1597 EXPECT_EQ(ret, HC_ERR_INVALID_PARAMS);
1598
1599 CJson *json = CreateJson();
1600 ASSERT_NE(json, nullptr);
1601 DeviceAuthCallback *callback;
1602 CompatibleBaseSubSession *subSession;
1603
1604 ret = CreateCompatibleSubSession(subSessionType, json, nullptr, nullptr);
1605 EXPECT_EQ(ret, HC_ERR_INVALID_PARAMS);
1606 ret = CreateCompatibleSubSession(subSessionType, nullptr, callback, nullptr);
1607 EXPECT_EQ(ret, HC_ERR_INVALID_PARAMS);
1608 ret = CreateCompatibleSubSession(subSessionType, nullptr, nullptr, &subSession);
1609 EXPECT_EQ(ret, HC_ERR_INVALID_PARAMS);
1610
1611 ret = CreateCompatibleSubSession(subSessionType, json, callback, nullptr);
1612 EXPECT_EQ(ret, HC_ERR_INVALID_PARAMS);
1613 ret = CreateCompatibleSubSession(subSessionType, json, nullptr, &subSession);
1614 EXPECT_EQ(ret, HC_ERR_INVALID_PARAMS);
1615 ret = CreateCompatibleSubSession(subSessionType, nullptr, callback, &subSession);
1616 EXPECT_EQ(ret, HC_ERR_INVALID_PARAMS);
1617
1618 ret = CreateCompatibleSubSession(subSessionType, json, callback, &subSession);
1619 FreeJson(json);
1620 EXPECT_NE(ret, HC_SUCCESS);
1621 }
1622
1623 HWTEST_F(SessionV1Test, SessionV1Test003, TestSize.Level0)
1624 {
1625 int32_t ret = ProcessCompatibleSubSession(nullptr, nullptr, nullptr, nullptr);
1626 DestroyCompatibleSubSession(nullptr);
1627 EXPECT_EQ(ret, HC_ERR_INVALID_PARAMS);
1628 CompatibleBaseSubSession subSession;
1629 subSession.type = DEFAULT_VAL;
1630 CJson *in = CreateJson();
1631 ASSERT_NE(in, nullptr);
1632 CJson *out = CreateJson();
1633 ASSERT_NE(out, nullptr);
1634 int32_t *status = DEFAULT_VAL;
1635
1636 ret = ProcessCompatibleSubSession(&subSession, nullptr, nullptr, nullptr);
1637 EXPECT_EQ(ret, HC_ERR_INVALID_PARAMS);
1638 ret = ProcessCompatibleSubSession(&subSession, in, nullptr, nullptr);
1639 EXPECT_EQ(ret, HC_ERR_INVALID_PARAMS);
1640 ret = ProcessCompatibleSubSession(&subSession, in, &out, nullptr);
1641 EXPECT_EQ(ret, HC_ERR_INVALID_PARAMS);
1642 ret = ProcessCompatibleSubSession(&subSession, in, &out, status);
1643 DestroyCompatibleSubSession(&subSession);
1644 EXPECT_NE(ret, HC_SUCCESS);
1645
1646 FreeJson(in);
1647 FreeJson(out);
1648 }
1649
1650 class CredSessionUtilTest : public testing::Test {
1651 public:
1652 static void SetUpTestCase();
1653 static void TearDownTestCase();
1654 void SetUp();
1655 void TearDown();
1656 };
1657
SetUpTestCase()1658 void CredSessionUtilTest::SetUpTestCase() {}
TearDownTestCase()1659 void CredSessionUtilTest::TearDownTestCase() {}
1660
SetUp()1661 void CredSessionUtilTest::SetUp() {}
1662
TearDown()1663 void CredSessionUtilTest::TearDown() {}
1664
1665 HWTEST_F(CredSessionUtilTest, CredSessionUtilTest001, TestSize.Level0)
1666 {
1667 int32_t ret = AddChannelInfoToContext(DEFAULT_CHANNEL_TYPE, DEFAULT_CHANNEL_ID, nullptr);
1668 EXPECT_NE(ret, IS_SUCCESS);
1669 CJson *in = CreateJson();
1670 ret = AddChannelInfoToContext(DEFAULT_CHANNEL_TYPE, DEFAULT_CHANNEL_ID, in);
1671 EXPECT_EQ(ret, IS_SUCCESS);
1672 FreeJson(in);
1673 }
1674
1675 HWTEST_F(CredSessionUtilTest, CredSessionUtilTest002, TestSize.Level0)
1676 {
1677 int32_t ret = AddCredIdToContextIfNeeded(nullptr);
1678 EXPECT_NE(ret, IS_SUCCESS);
1679 CJson *in = CreateJson();
1680 CJson *credDataJson = CreateJsonFromString(CRED_DATA);
1681 (void)AddObjToJson(in, FIELD_CREDENTIAL_OBJ, credDataJson);
1682 FreeJson(credDataJson);
1683 ret = AddCredIdToContextIfNeeded(in);
1684 EXPECT_NE(ret, IS_SUCCESS);
1685
1686 credDataJson = CreateJsonFromString(CRED_DATA_1);
1687 (void)AddObjToJson(in, FIELD_CREDENTIAL_OBJ, credDataJson);
1688 FreeJson(credDataJson);
1689 ret = AddCredIdToContextIfNeeded(in);
1690 EXPECT_EQ(ret, IS_SUCCESS);
1691 FreeJson(in);
1692 }
1693
1694 HWTEST_F(CredSessionUtilTest, CredSessionUtilTest003, TestSize.Level0)
1695 {
1696 int32_t ret = CheckConfirmationExist(nullptr);
1697 EXPECT_NE(ret, IS_SUCCESS);
1698 CJson *in = CreateJson();
1699 (void)AddIntToJson(in, FIELD_CONFIRMATION, REQUEST_REJECTED);
1700 ret = CheckConfirmationExist(in);
1701 EXPECT_EQ(ret, IS_SUCCESS);
1702 (void)AddIntToJson(in, FIELD_CONFIRMATION, REQUEST_ACCEPTED);
1703 ret = CheckConfirmationExist(in);
1704 EXPECT_EQ(ret, IS_SUCCESS);
1705 FreeJson(in);
1706 }
1707
1708 HWTEST_F(CredSessionUtilTest, CredSessionUtilTest004, TestSize.Level0)
1709 {
1710 const char *ret = GetAppIdByContext(nullptr);
1711 EXPECT_EQ(ret, nullptr);
1712 CJson *in = CreateJson();
1713 CJson *credDataJson = CreateJsonFromString(CRED_DATA);
1714 (void)AddObjToJson(in, FIELD_CREDENTIAL_OBJ, credDataJson);
1715 FreeJson(credDataJson);
1716 ret = GetAppIdByContext(in);
1717 EXPECT_EQ(ret, nullptr);
1718
1719 credDataJson = CreateJsonFromString(CRED_DATA_1);
1720 (void)AddObjToJson(in, FIELD_CREDENTIAL_OBJ, credDataJson);
1721 FreeJson(credDataJson);
1722 ret = GetAppIdByContext(in);
1723 EXPECT_NE(ret, nullptr);
1724
1725 (void)AddStringToJson(in, FIELD_PIN_CODE, TEST_PIN_CODE);
1726 ret = GetAppIdByContext(in);
1727 EXPECT_EQ(ret, nullptr);
1728 (void)AddStringToJson(in, FIELD_SERVICE_PKG_NAME, TEST_APP_ID);
1729 ret = GetAppIdByContext(in);
1730 EXPECT_NE(ret, nullptr);
1731 FreeJson(in);
1732 }
1733
1734 HWTEST_F(CredSessionUtilTest, CredSessionUtilTest005, TestSize.Level0)
1735 {
1736 int32_t ret = AddUserIdHashHexStringToContext(nullptr, nullptr);
1737 EXPECT_NE(ret, IS_SUCCESS);
1738 CJson *in = CreateJson();
1739 (void)AddIntToJson(in, FIELD_CRED_TYPE, TEST_CRED_TYPE_1);
1740 ret = AddUserIdHashHexStringToContext(nullptr, in);
1741 EXPECT_EQ(ret, IS_SUCCESS);
1742 (void)AddIntToJson(in, FIELD_CRED_TYPE, TEST_CRED_TYPE);
1743 ret = AddUserIdHashHexStringToContext(nullptr, in);
1744 EXPECT_NE(ret, IS_SUCCESS);
1745
1746 (void)AddStringToJson(in, FIELD_USER_ID, TEST_USER_ID);
1747 ret = AddUserIdHashHexStringToContext(nullptr, in);
1748 EXPECT_NE(ret, IS_SUCCESS);
1749 FreeJson(in);
1750 }
1751
1752 HWTEST_F(CredSessionUtilTest, CredSessionUtilTest006, TestSize.Level0)
1753 {
1754 int32_t ret = QueryAndAddSelfCredToContext(DEFAULT_OS_ACCOUNT_ID, nullptr);
1755 EXPECT_NE(ret, IS_SUCCESS);
1756 CJson *in = CreateJson();
1757 (void)AddStringToJson(in, FIELD_CRED_ID, TEST_CRED_ID);
1758 ret = QueryAndAddSelfCredToContext(DEFAULT_OS_ACCOUNT_ID, in);
1759 EXPECT_NE(ret, IS_SUCCESS);
1760 FreeJson(in);
1761 }
1762
1763 HWTEST_F(CredSessionUtilTest, CredSessionUtilTest007, TestSize.Level0)
1764 {
1765 bool ret = CheckIsCredBind(nullptr);
1766 EXPECT_NE(ret, true);
1767 CJson *in = CreateJson();
1768 (void)AddStringToJson(in, FIELD_PIN_CODE, TEST_PIN_CODE_1);
1769 ret = CheckIsCredBind(in);
1770 EXPECT_NE(ret, true);
1771
1772 (void)AddStringToJson(in, FIELD_PIN_CODE, TEST_PIN_CODE);
1773 ret = CheckIsCredBind(in);
1774 EXPECT_EQ(ret, true);
1775 FreeJson(in);
1776 }
1777
1778 HWTEST_F(CredSessionUtilTest, CredSessionUtilTest008, TestSize.Level0)
1779 {
1780 int32_t ret = AddAuthIdToCredContext(nullptr);
1781 EXPECT_NE(ret, IS_SUCCESS);
1782 CJson *in = CreateJson();
1783 ret = AddAuthIdToCredContext(in);
1784 EXPECT_EQ(ret, IS_SUCCESS);
1785 FreeJson(in);
1786 }
1787
1788 HWTEST_F(CredSessionUtilTest, CredSessionUtilTest009, TestSize.Level0)
1789 {
1790 int32_t ret = BuildClientCredBindContext(DEFAULT_OS_ACCOUNT_ID, DEFAULT_REQUEST_ID, nullptr, nullptr);
1791 EXPECT_NE(ret, IS_SUCCESS);
1792 CJson *in = CreateJson();
1793 (void)AddStringToJson(in, FIELD_SERVICE_PKG_NAME, TEST_APP_ID);
1794 const char *returnAppId = nullptr;
1795 ret = BuildClientCredBindContext(DEFAULT_OS_ACCOUNT_ID, DEFAULT_REQUEST_ID, in, &returnAppId);
1796 EXPECT_NE(ret, IS_SUCCESS);
1797 FreeJson(in);
1798 }
1799
1800 HWTEST_F(CredSessionUtilTest, CredSessionUtilTest010, TestSize.Level0)
1801 {
1802 int32_t ret = SetContextOpCode(nullptr);
1803 EXPECT_NE(ret, IS_SUCCESS);
1804 CJson *in = CreateJson();
1805 (void)AddIntToJson(in, FIELD_CRED_TYPE, TEST_CRED_TYPE);
1806 ret = SetContextOpCode(in);
1807 EXPECT_EQ(ret, IS_SUCCESS);
1808 (void)AddIntToJson(in, FIELD_CRED_TYPE, TEST_CRED_TYPE_1);
1809 ret = SetContextOpCode(in);
1810 EXPECT_EQ(ret, IS_SUCCESS);
1811 (void)AddIntToJson(in, FIELD_CRED_TYPE, TEST_CRED_TYPE_2);
1812 ret = SetContextOpCode(in);
1813 EXPECT_EQ(ret, IS_SUCCESS);
1814 (void)AddIntToJson(in, FIELD_CRED_TYPE, TEST_CRED_TYPE_3);
1815 ret = SetContextOpCode(in);
1816 EXPECT_NE(ret, IS_SUCCESS);
1817 FreeJson(in);
1818 }
1819
1820 HWTEST_F(CredSessionUtilTest, CredSessionUtilTest011, TestSize.Level0)
1821 {
1822 int32_t ret = BuildClientCredAuthContext(DEFAULT_OS_ACCOUNT_ID, DEFAULT_REQUEST_ID, nullptr, nullptr);
1823 EXPECT_NE(ret, IS_SUCCESS);
1824 }
1825
1826 HWTEST_F(CredSessionUtilTest, CredSessionUtilTest012, TestSize.Level0)
1827 {
1828 int32_t ret = BuildClientCredContext(DEFAULT_OS_ACCOUNT_ID, DEFAULT_REQUEST_ID,
1829 nullptr, nullptr);
1830 EXPECT_NE(ret, IS_SUCCESS);
1831 CJson *in = CreateJson();
1832 (void)AddStringToJson(in, FIELD_PIN_CODE, TEST_PIN_CODE);
1833 const char *returnAppId = nullptr;
1834 ret = BuildClientCredContext(DEFAULT_OS_ACCOUNT_ID, DEFAULT_REQUEST_ID, in, &returnAppId);
1835 EXPECT_NE(ret, IS_SUCCESS);
1836 ret = BuildServerCredBindContext(DEFAULT_REQUEST_ID, in, nullptr, &returnAppId);
1837 EXPECT_NE(ret, IS_SUCCESS);
1838 ret = BuildServerCredAuthContext(DEFAULT_REQUEST_ID, in, nullptr, &returnAppId);
1839 EXPECT_NE(ret, IS_SUCCESS);
1840 ret = BuildServerCredContext(DEFAULT_REQUEST_ID, nullptr, nullptr, &returnAppId);
1841 EXPECT_NE(ret, IS_SUCCESS);
1842 FreeJson(in);
1843 }
1844
OnTransmit(int64_t requestId,const uint8_t * data,uint32_t dataLen)1845 static bool OnTransmit(int64_t requestId, const uint8_t *data, uint32_t dataLen)
1846 {
1847 if (memcpy_s(g_transmitData, g_transmitDataMaxLen, data, dataLen) != EOK) {
1848 return false;
1849 }
1850 g_transmitDataLen = dataLen;
1851 g_asyncStatus = ASYNC_STATUS_TRANSMIT;
1852 return true;
1853 }
1854
OnSessionKeyReturned(int64_t requestId,const uint8_t * sessionKey,uint32_t sessionKeyLen)1855 static void OnSessionKeyReturned(int64_t requestId, const uint8_t *sessionKey, uint32_t sessionKeyLen)
1856 {
1857 (void)requestId;
1858 (void)sessionKey;
1859 (void)sessionKeyLen;
1860 return;
1861 }
1862
OnFinish(int64_t requestId,int operationCode,const char * authReturn)1863 static void OnFinish(int64_t requestId, int operationCode, const char *authReturn)
1864 {
1865 g_asyncStatus = ASYNC_STATUS_FINISH;
1866 }
1867
OnError(int64_t requestId,int operationCode,int errorCode,const char * errorReturn)1868 static void OnError(int64_t requestId, int operationCode, int errorCode, const char *errorReturn)
1869 {
1870 g_asyncStatus = ASYNC_STATUS_ERROR;
1871 }
1872
OnAuthRequest(int64_t requestId,int operationCode,const char * reqParam)1873 static char *OnAuthRequest(int64_t requestId, int operationCode, const char* reqParam)
1874 {
1875 CJson *json = CreateJson();
1876 AddIntToJson(json, FIELD_CONFIRMATION, REQUEST_ACCEPTED);
1877 AddIntToJson(json, FIELD_OS_ACCOUNT_ID, DEFAULT_OS_ACCOUNT);
1878 if (g_isBind) {
1879 AddStringToJson(json, FIELD_PIN_CODE, PIN_CODE);
1880 } else {
1881 AddStringToJson(json, FIELD_CRED_ID, g_serverCredId);
1882 }
1883 AddStringToJson(json, FIELD_SERVICE_PKG_NAME, TEST_APP_ID);
1884 char *returnDataStr = PackJsonToString(json);
1885 FreeJson(json);
1886 return returnDataStr;
1887 }
1888
1889 static DeviceAuthCallback g_caCallback = {
1890 .onTransmit = OnTransmit,
1891 .onSessionKeyReturned = OnSessionKeyReturned,
1892 .onFinish = OnFinish,
1893 .onError = OnError,
1894 .onRequest = OnAuthRequest
1895 };
1896
GenerateBindParams()1897 static const char *GenerateBindParams()
1898 {
1899 CJson *json = CreateJson();
1900 AddStringToJson(json, FIELD_PIN_CODE, PIN_CODE);
1901 AddIntToJson(json, FIELD_OS_ACCOUNT_ID, DEFAULT_OS_ACCOUNT);
1902 AddStringToJson(json, FIELD_SERVICE_PKG_NAME, TEST_APP_ID);
1903 char *returnDataStr = PackJsonToString(json);
1904 FreeJson(json);
1905 return returnDataStr;
1906 }
1907
GenerateAuthParams()1908 static const char *GenerateAuthParams()
1909 {
1910 CJson *json = CreateJson();
1911 AddStringToJson(json, FIELD_CRED_ID, g_clientCredId);
1912 AddStringToJson(json, FIELD_SERVICE_PKG_NAME, TEST_APP_ID);
1913 char *returnDataStr = PackJsonToString(json);
1914 FreeJson(json);
1915 return returnDataStr;
1916 }
1917
AuthCredDemo(void)1918 static void AuthCredDemo(void)
1919 {
1920 g_asyncStatus = ASYNC_STATUS_WAITING;
1921 bool isClient = true;
1922 SetDeviceStatus(isClient);
1923 const CredAuthManager *ca = GetCredAuthInstance();
1924 ASSERT_NE(ca, nullptr);
1925 int32_t ret = ca->authCredential(DEFAULT_OS_ACCOUNT, g_isBind ? TEST_REQ_ID : TEST_REQ_ID_AUTH,
1926 g_isBind ? GenerateBindParams() : GenerateAuthParams(), &g_caCallback);
1927 if (ret != HC_SUCCESS) {
1928 g_asyncStatus = ASYNC_STATUS_ERROR;
1929 return;
1930 }
1931 while (g_asyncStatus == ASYNC_STATUS_WAITING) {
1932 usleep(TEST_DEV_AUTH_SLEEP_TIME);
1933 }
1934 while (g_asyncStatus == ASYNC_STATUS_TRANSMIT) {
1935 isClient = !isClient;
1936 SetDeviceStatus(isClient);
1937 g_asyncStatus = ASYNC_STATUS_WAITING;
1938 if (isClient) {
1939 ret = ca->processCredData(g_isBind ? TEST_REQ_ID : TEST_REQ_ID_AUTH, g_transmitData, g_transmitDataLen,
1940 &g_caCallback);
1941 } else {
1942 ret = ca->processCredData(g_isBind ? TEST_REQ_ID_S : TEST_REQ_ID_AUTH_S, g_transmitData, g_transmitDataLen,
1943 &g_caCallback);
1944 }
1945 (void)memset_s(g_transmitData, g_transmitDataMaxLen, 0, g_transmitDataMaxLen);
1946 g_transmitDataLen = 0;
1947 if (ret != HC_SUCCESS) {
1948 g_asyncStatus = ASYNC_STATUS_ERROR;
1949 return;
1950 }
1951 while (g_asyncStatus == ASYNC_STATUS_WAITING) {
1952 usleep(TEST_DEV_AUTH_SLEEP_TIME);
1953 }
1954 if (g_asyncStatus == ASYNC_STATUS_ERROR) {
1955 break;
1956 }
1957 if (g_transmitDataLen > 0) {
1958 g_asyncStatus = ASYNC_STATUS_TRANSMIT;
1959 }
1960 }
1961 SetDeviceStatus(true);
1962 }
1963
1964 class CredAuthTest : public testing::Test {
1965 public:
1966 static void SetUpTestCase();
1967 static void TearDownTestCase();
1968 void SetUp();
1969 void TearDown();
1970 };
1971
SetUpTestCase()1972 void CredAuthTest::SetUpTestCase() {}
TearDownTestCase()1973 void CredAuthTest::TearDownTestCase() {}
1974
SetUp()1975 void CredAuthTest::SetUp()
1976 {
1977 DeleteDatabase();
1978 int32_t ret = InitDeviceAuthService();
1979 EXPECT_EQ(ret, HC_SUCCESS);
1980 }
1981
TearDown()1982 void CredAuthTest::TearDown()
1983 {
1984 DestroyDeviceAuthService();
1985 }
1986
1987 HWTEST_F(CredAuthTest, CredAuthTest001, TestSize.Level0)
1988 {
1989 const CredAuthManager *ca = GetCredAuthInstance();
1990 ASSERT_NE(ca, nullptr);
1991 g_isBind = true;
1992 AuthCredDemo();
1993 ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
1994 const CredManager *cm = GetCredMgrInstance();
1995 ASSERT_NE(cm, nullptr);
1996 char *clientReturnData = nullptr;
1997 char *serverReturnData = nullptr;
1998 int32_t ret = cm->addCredential(DEFAULT_OS_ACCOUNT, CLIENT_AUTH_PARAMS, &clientReturnData);
1999 EXPECT_EQ(ret, IS_SUCCESS);
2000 ret = cm->addCredential(DEFAULT_OS_ACCOUNT, SERVER_AUTH_PARAMS, &serverReturnData);
2001 EXPECT_EQ(ret, IS_SUCCESS);
2002 (void)strcpy_s(g_clientCredId, HcStrlen(clientReturnData) + 1, clientReturnData);
2003 (void)strcpy_s(g_serverCredId, HcStrlen(serverReturnData) + 1, serverReturnData);
2004 g_isBind = false;
2005 AuthCredDemo();
2006 ASSERT_EQ(g_asyncStatus, ASYNC_STATUS_FINISH);
2007 cm->destroyInfo(&clientReturnData);
2008 cm->destroyInfo(&serverReturnData);
2009 }
2010
2011 HWTEST_F(CredAuthTest, CredAuthTest002, TestSize.Level0)
2012 {
2013 const CredAuthManager *ca = GetCredAuthInstance();
2014 ASSERT_NE(ca, nullptr);
2015 ca->authCredential(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, nullptr, nullptr);
2016 ca->authCredential(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, nullptr, &g_caCallback);
2017 ca->authCredential(DEFAULT_OS_ACCOUNT, TEST_REQ_ID, GenerateBindParams(), nullptr);
2018 ca->processCredData(TEST_REQ_ID, nullptr, DATA_LEN, nullptr);
2019 ca->processCredData(TEST_REQ_ID, nullptr, DATA_LEN, &g_caCallback);
2020 ca->processCredData(TEST_REQ_ID, (const uint8_t*)GenerateBindParams(), DATA_LEN, nullptr);
2021 }
2022 } // namespace