1 /*
2 * Copyright (C) 2021 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 <cstdint>
17 #include <cstdlib>
18 #include "gtest/gtest.h"
19 #include "gmock/gmock.h"
20 #include "securec.h"
21 #include "hichain.h"
22 #include "distribution.h"
23 #include "huks_adapter.h"
24 #include "log.h"
25 #include "auth_info_test.h"
26 #include "commonutil_test.h"
27 #include "jsonutil_test.h"
28 #include "cJSON.h"
29 #include "deviceauth_test.h"
30
31 #define LOG(format, ...) (printf(format"\n", ##__VA_ARGS__))
32
33 using namespace std;
34 using namespace testing::ext;
35 using ::testing::Return;
36
37 namespace {
38 const int KEY_LEN = 16;
39 const int AUTH_ID_LENGTH = 64;
40
41 static struct session_identity g_server_identity = {
42 153666603,
43 {strlen("aaa.bbbb.ccc"), "aaa.bbbb.ccc"},
44 {strlen("CarDevice"), "CarDevice"},
45 0
46 };
47
48 static struct hc_pin g_testPin = {strlen("123456"), "123456"};
49
50 static struct hc_auth_id g_testClientAuthId;
51 static struct hc_auth_id g_testServerAuthId;
52
53 static int32_t g_result;
54
55 uint8_t g_testPhoneId[65] = {"14bb6543b893a3250f5793fbbbd48be56641505dc6514be1bb37b032903ebc67"};
56 uint8_t g_testCarId[65] = {"14bb6543b893a3250f5793fbbbd48be56641505dc6514be1bb37b032903abcde"};
57
InitHcAuthId()58 void InitHcAuthId()
59 {
60 memcpy_s(g_testClientAuthId.auth_id, AUTH_ID_LENGTH, g_testPhoneId, AUTH_ID_LENGTH);
61 g_testClientAuthId.length = AUTH_ID_LENGTH;
62
63 memcpy_s(g_testServerAuthId.auth_id, AUTH_ID_LENGTH, g_testCarId, AUTH_ID_LENGTH);
64 g_testServerAuthId.length = AUTH_ID_LENGTH;
65
66 return;
67 }
68
69 enum HksErrorCode {
70 HKS_SUCCESS = 0,
71 HKS_FAILURE = -1,
72 HKS_ERROR_INVALID_KEY_FILE = -27,
73 HKS_ERROR_UPDATE_ROOT_KEY_MATERIAL_FAIL = -37,
74 HKS_ERROR_CRYPTO_ENGINE_ERROR = -31,
75 };
76
Transmit(const struct session_identity * identity,const void * data,uint32_t length)77 static void Transmit(const struct session_identity *identity, const void *data, uint32_t length)
78 {
79 LOG("--------Transmit--------");
80 LOG("identity session_id[%d] package_name[%s]", identity->session_id, identity->package_name.name);
81 LOG("length[%u]", length);
82 LOG("--------Transmit--------");
83 }
84
GetProtocolParams(const struct session_identity * identity,int32_t operationCode,struct hc_pin * pin,struct operation_parameter * para)85 static void GetProtocolParams(const struct session_identity *identity, int32_t operationCode,
86 struct hc_pin *pin, struct operation_parameter *para)
87 {
88 LOG("--------GetProtocolParams--------");
89 LOG("identity session_id[%d] package_name[%s]", identity->session_id, identity->package_name.name);
90 LOG("operationCode[%d]", operationCode);
91 pin->length = g_testPin.length;
92 memcpy_s(pin->pin, pin->length, g_testPin.pin, pin->length);
93 para->self_auth_id = g_testServerAuthId;
94 para->peer_auth_id = g_testClientAuthId;
95 para->key_length = KEY_LEN;
96 LOG("--------GetProtocolParams--------");
97 }
98
SetSessionKey(const struct session_identity * identity,const struct hc_session_key * sessionKey)99 static void SetSessionKey(const struct session_identity *identity, const struct hc_session_key *sessionKey)
100 {
101 LOG("--------SetSessionKey--------");
102 LOG("identity session_id[%d] package_name[%s]", identity->session_id, identity->package_name.name);
103 LOG("sessionKey[%s]", sessionKey->session_key);
104 LOG("--------SetSessionKey--------");
105 }
106
SetServiceResult(const struct session_identity * identity,int32_t result,int32_t errorCode)107 static void SetServiceResult(const struct session_identity *identity, int32_t result, int32_t errorCode)
108 {
109 LOG("--------SetServiceResult--------");
110 LOG("identity session_id[%d] package_name[%s]", identity->session_id, identity->package_name.name);
111 LOG("result[%d]", result);
112 LOG("--------SetServiceResult--------");
113 g_result = result;
114 }
115
ConfirmReceiveRequest(const struct session_identity * identity,int32_t operationCode)116 static int32_t ConfirmReceiveRequest(const struct session_identity *identity, int32_t operationCode)
117 {
118 LOG("--------ConfirmReceiveRequest--------");
119 LOG("identity session_id[%d] package_name[%s]", identity->session_id, identity->package_name.name);
120 LOG("operationCode[%d]", operationCode);
121 LOG("--------ConfirmReceiveRequest--------");
122 return HC_OK;
123 }
124
125 /*--------------------------receive_data------------------------*/
126 class ReceiveDataTest : public testing::Test {
127 public:
128 static void SetUpTestCase(void);
129 static void TearDownTestCase(void);
130 void SetUp();
131 void TearDown();
132 };
133
SetUpTestCase(void)134 void ReceiveDataTest::SetUpTestCase(void) {}
TearDownTestCase(void)135 void ReceiveDataTest::TearDownTestCase(void) {}
SetUp()136 void ReceiveDataTest::SetUp()
137 {
138 InitHcAuthId();
139 }
TearDown()140 void ReceiveDataTest::TearDown() {}
141
142 static HWTEST_F(ReceiveDataTest, ReceiveDataTest001_empty, TestSize.Level2)
143 {
144 LOG("--------ReceiveDataTest001--------");
145 struct hc_call_back callBack = {
146 Transmit,
147 GetProtocolParams,
148 SetSessionKey,
149 SetServiceResult,
150 ConfirmReceiveRequest
151 };
152
153 const struct operation_parameter params = {g_testServerAuthId, g_testClientAuthId, KEY_LEN};
154 hc_handle server = get_instance(&g_server_identity, HC_CENTRE, &callBack);
155 ASSERT_TRUE(server != nullptr);
156 int32_t ret = start_pake(server, ¶ms);
157 EXPECT_EQ(ret, HC_OK);
158 uint8_t dataStr[] = {""};
159 uint8_buff data = {
160 dataStr,
161 sizeof(dataStr),
162 strlen(reinterpret_cast<char *>(dataStr))
163 };
164 ret = receive_data(server, &data);
165 EXPECT_EQ(ret, HC_OK);
166 EXPECT_EQ(g_result, END_FAILED);
167 destroy(&server);
168 LOG("--------ReceiveDataTest001--------");
169 }
170
171 static HWTEST_F(ReceiveDataTest, ReceiveDataTest002_msg0, TestSize.Level2)
172 {
173 LOG("--------ReceiveDataTest002--------");
174 struct hc_call_back callBack = {
175 Transmit,
176 GetProtocolParams,
177 SetSessionKey,
178 SetServiceResult,
179 ConfirmReceiveRequest
180 };
181
182 hc_handle server = get_instance(&g_server_identity, HC_CENTRE, &callBack);
183 ASSERT_TRUE(server != nullptr);
184
185 uint8_t dataStr[] = "{\"message\":0}";
186 uint8_buff data = {
187 dataStr,
188 sizeof(dataStr),
189 strlen(reinterpret_cast<char *>(dataStr))
190 };
191 receive_data(server, &data);
192 EXPECT_EQ(g_result, END_FAILED);
193
194 destroy(&server);
195 LOG("--------ReceiveDataTest002--------");
196 }
197
198 uint8_t g_dataStr031[] = {"{\"message\":32769,\"payload\":{\"version\":{\"currentVersion\":\"1.0.0\","
199 "\"minVersion\":\"1.0.0\"},\"challenge\":\"76539E5634EDA735A94845C3A4F356D6\","
200 "\"salt\":\"025E4B3B2DD3B0E67395C760008A9154\","
201 "\"epk\":\"24EBF8D727B19E8A43B20D22F744113C8B49B226D834B2E3C9CB5B0378732D6CF7C658BFB468682A6762"
202 "2D5FE061F4D8102E4D8912377AA785919C529F0C1289F2188E641C6DC626054FC30304DC804FD9F059F5F5D8CEAA29"
203 "A44814F10CC2A770C5BEB0BE86559E4FA85AD6E480DC2A627F5B28626E23B613EAC21101FF1C1DDA76E35A67A5A70B"
204 "C24ECFD0C92F4F69A5B73FD67BE3EFC0904709BEC26490E21A4A04E29211DF393559B4A71F7368B68F529806DB90C5"
205 "8315EDFF0A1738E26E82A54D2030A5B9B270DCF01A2377300135C55B3F6B273CF157246D0DF928D6E3E2886E79ECEB"
206 "F69F98806C37A6128E4E93C9C43DD01B53963458AF60FA1C0E497F5FD4E807DA4F804EE145967D74792AD9B135C2F3"
207 "A25FAA3427B3666C9D30539F008915A53D1FE2E2DDDCFCFD0815976332575F9EDBC9F4946A83116C7A29C38AC1A5FD"
208 "8E5B894DCB4A1A29672D2647D6C734D4EA74E4A077D3403CAD0CA15318D9560FFF163D71B2991D70148F97CD524244"
209 "7DF2B23C856D734CDD39220EC0\"}}"};
210
211 uint8_t g_dataStr032[] = {"{\"message\":32770,\"payload\":{\"kcfData\":\"463853720FFFC312084B9FF288E17"
212 "C3F3D8B9D8F2A609D349CAA712AAD926C26\"}}"};
213
214 uint8_t g_dataStr033[] = {"{\"message\":32771,\"payload\":{\"exAuthInfo\":\"63B2AC76C0645224DA7E395DBCC29D9F"
215 "9AF5E0ABEEC94048962F838D12C501B22193E1B2AD43A7D9443A80EA92C4BD4F53B14C867DD00308167CB2803754"
216 "D4A909C0666B231C17736E0C5BE5A21746BE53AF0E72BE30DC56D56752823D9453F025DD3A56904EDBF54FB16667"
217 "82623DDF7BA29A1FA3CFE34864D4AF958EA616785AB7F06DBC01675ADB19EB12D8CA5CF312AEECE9016CA92BC9A2"
218 "69FE9BA2C579C7EA69F34855FDF689B3153BBFF618464612C6CC8984167842316A7E6E38813CC901DFBE4BA0767C"
219 "914B03AD0CF221BC319860A018078F74454DE18B0A144F812A3560D1A3223084A0BE48F737B49840A331B037CC13"
220 "DF82BFC85C1B95890907972897B827C237071A8D706CE41F9E8B045E3FDD9850BEBB50BFA84721B6E64A23557D0F"
221 "572B33D18FD8DE25C0B6C57F35AB9931EE02\"}}"};
222
223 static HWTEST_F(ReceiveDataTest, ReceiveDataTest003_pake_client, TestSize.Level2)
224 {
225 LOG("--------ReceiveDataTest003--------");
226
227 struct hc_call_back callBack = {
228 Transmit,
229 GetProtocolParams,
230 SetSessionKey,
231 SetServiceResult,
232 ConfirmReceiveRequest
233 };
234
235 const struct operation_parameter params = {g_testServerAuthId, g_testClientAuthId, KEY_LEN};
236 hc_handle server = get_instance(&g_server_identity, HC_CENTRE, &callBack);
237 ASSERT_TRUE(server != nullptr);
238 int32_t ret = start_pake(server, ¶ms);
239 EXPECT_EQ(ret, HC_OK);
240 uint8_buff data001 = {
241 g_dataStr031,
242 sizeof(g_dataStr031),
243 strlen(reinterpret_cast<char *>(g_dataStr031))
244 };
245 ret = receive_data(server, &data001);
246 EXPECT_EQ(ret, HC_OK);
247 EXPECT_EQ(g_result, KEY_AGREEMENT_PROCESSING);
248 uint8_buff data002 = {
249 g_dataStr032,
250 sizeof(g_dataStr032),
251 strlen(reinterpret_cast<char *>(g_dataStr032))
252 };
253 ret = receive_data(server, &data002);
254 EXPECT_EQ(ret, HC_OK);
255 EXPECT_EQ(g_result, KEY_AGREEMENT_END);
256 uint8_buff data003 = {
257 g_dataStr033,
258 sizeof(g_dataStr033),
259 strlen(reinterpret_cast<char *>(g_dataStr033))
260 };
261 ret = receive_data(server, &data003);
262 EXPECT_EQ(ret, HC_OK);
263 EXPECT_EQ(g_result, END_SUCCESS);
264 destroy(&server);
265 LOG("--------ReceiveDataTest003--------");
266 }
267
268 static HWTEST_F(ReceiveDataTest, ReceiveDataTest004_pake_client, TestSize.Level2)
269 {
270 LOG("--------ReceiveDataTest004--------");
271 struct hc_call_back callBack = {
272 Transmit,
273 GetProtocolParams,
274 SetSessionKey,
275 SetServiceResult,
276 ConfirmReceiveRequest
277 };
278
279 const struct operation_parameter params = {g_testServerAuthId, g_testClientAuthId, KEY_LEN};
280 hc_handle server = get_instance(&g_server_identity, HC_CENTRE, &callBack);
281 ASSERT_TRUE(server != nullptr);
282 int32_t ret = start_pake(server, ¶ms);
283 EXPECT_EQ(ret, HC_OK);
284 uint8_t dataStr001[] = {"{\"message\":32769,\"payload\":{\"version\":{\"currentVersion\":\"1.0.0\","
285 "\"minVersion\":\"1.0.0\"},\"challenge\":\"76539E5634EDA735A94845C3A4F356D6\","
286 "\"salt\":\"025E4B3B2DD3B0E67395C760008A9154\","
287 "\"epk\":\"24EBF8D727B19E8A43B20D22F744113C8B49B226D834B2E3C9CB5B0378732D6CF7C658BFB468682A6762"
288 "2D5FE061F4D8102E4D8912377AA785919C529F0C1289F2188E641C6DC626054FC30304DC804FD9F059F5F5D8CEAA29"
289 "A44814F10CC2A770C5BEB0BE86559E4FA85AD6E480DC2A627F5B28626E23B613EAC21101FF1C1DDA76E35A67A5A70B"
290 "C24ECFD0C92F4F69A5B73FD67BE3EFC0904709BEC26490E21A4A04E29211DF393559B4A71F7368B68F529806DB90C5"
291 "8315EDFF0A1738E26E82A54D2030A5B9B270DCF01A2377300135C55B3F6B273CF157246D0DF928D6E3E2886E79ECEB"
292 "F69F98806C37A6128E4E93C9C43DD01B53963458AF60FA1C0E497F5FD4E807DA4F804EE145967D74792AD9B135C2F3"
293 "A25FAA3427B3666C9D30539F008915A53D1FE2E2DDDCFCFD0815976332575F9EDBC9F4946A83116C7A29C38AC1A5FD"
294 "8E5B894DCB4A1A29672D2647D6C734D4EA74E4A077D3403CAD0CA15318D9560FFF163D71B2991D70148F97CD524244"
295 "7DF2B23C856D734CDD39220EC0\"}}"};
296 uint8_buff data001 = {
297 dataStr001,
298 sizeof(dataStr001),
299 strlen(reinterpret_cast<char *>(dataStr001))
300 };
301 ret = receive_data(server, &data001);
302 EXPECT_EQ(ret, HC_OK);
303 EXPECT_EQ(g_result, KEY_AGREEMENT_PROCESSING);
304 destroy(&server);
305 LOG("--------ReceiveDataTest004--------");
306 }
307
308 static HWTEST_F(ReceiveDataTest, ReceiveDataTest005_pake_client, TestSize.Level2)
309 {
310 LOG("--------ReceiveDataTest005--------");
311 struct hc_call_back callBack = {
312 Transmit,
313 GetProtocolParams,
314 SetSessionKey,
315 SetServiceResult,
316 ConfirmReceiveRequest
317 };
318
319 const struct operation_parameter params = {g_testServerAuthId, g_testClientAuthId, KEY_LEN};
320 hc_handle server = get_instance(&g_server_identity, HC_CENTRE, &callBack);
321 ASSERT_TRUE(server != nullptr);
322 int32_t ret = start_pake(server, ¶ms);
323 EXPECT_EQ(ret, HC_OK);
324 uint8_t dataStr001[] = {"{\"message\":32769,\"payload\":{\"version\":{\"currentVersion\":\"1.0.0\","
325 "\"minVersion\":\"1.0.0\"},\"challenge\":\"76539E5634EDA735A94845C3A4F356D6\","
326 "\"salt\":\"025E4B3B2DD3B0E67395C760008A9154\","
327 "\"epk\":\"24EBF8D727B19E8A43B20D22F744113C8B49B226D834B2E3C9CB5B0378732D6CF7C658BFB468682A6762"
328 "2D5FE061F4D8102E4D8912377AA785919C529F0C1289F2188E641C6DC626054FC30304DC804FD9F059F5F5D8CEAA29"
329 "A44814F10CC2A770C5BEB0BE86559E4FA85AD6E480DC2A627F5B28626E23B613EAC21101FF1C1DDA76E35A67A5A70B"
330 "C24ECFD0C92F4F69A5B73FD67BE3EFC0904709BEC26490E21A4A04E29211DF393559B4A71F7368B68F529806DB90C5"
331 "8315EDFF0A1738E26E82A54D2030A5B9B270DCF01A2377300135C55B3F6B273CF157246D0DF928D6E3E2886E79ECEB"
332 "F69F98806C37A6128E4E93C9C43DD01B53963458AF60FA1C0E497F5FD4E807DA4F804EE145967D74792AD9B135C2F3"
333 "A25FAA3427B3666C9D30539F008915A53D1FE2E2DDDCFCFD0815976332575F9EDBC9F4946A83116C7A29C38AC1A5FD"
334 "8E5B894DCB4A1A29672D2647D6C734D4EA74E4A077D3403CAD0CA15318D9560FFF163D71B2991D70148F97CD524244"
335 "7DF2B23C856D734CDD39220EC0\"}}"};
336 uint8_buff data001 = {
337 dataStr001,
338 sizeof(dataStr001),
339 strlen(reinterpret_cast<char *>(dataStr001))
340 };
341 ret = receive_data(server, &data001);
342 EXPECT_EQ(ret, HC_OK);
343 EXPECT_EQ(g_result, KEY_AGREEMENT_PROCESSING);
344
345 uint8_t dataStr002[] = {"{\"message\":32770,\"payload\":{\"kcfData\":\"463853720FFFC312084B9FF288E17"
346 "C3F3D8B9D8F2A609D349CAA712AAD926C26\"}}"};
347 uint8_buff data002 = {
348 dataStr002,
349 sizeof(dataStr002),
350 strlen(reinterpret_cast<char *>(dataStr002))
351 };
352 ret = receive_data(server, &data002);
353 EXPECT_EQ(ret, HC_OK);
354 destroy(&server);
355 LOG("--------ReceiveDataTest005--------");
356 }
357
358 uint8_t g_dataStr061[] = {"{\"message\":32769,\"payload\":{\"version\":{\"currentVersion\":\"1.0.0\","
359 "\"minVersion\":\"1.0.0\"},\"challenge\":\"76539E5634EDA735A94845C3A4F356D6\","
360 "\"salt\":\"025E4B3B2DD3B0E67395C760008A9154\","
361 "\"epk\":""}}"};
362
363 uint8_t g_dataStr062[] = {"{\"message\":32770,\"payload\":{\"kcfData\":\"463853720FFFC312084B9FF288E17"
364 "C3F3D8B9D8F2A609D349CAA712AAD926C26\"}}"};
365
366 uint8_t g_dataStr063[] = {"{\"message\":32771,\"payload\":{\"exAuthInfo\":\"63B2AC76C0645224DA7E395DBCC29D9F"
367 "9AF5E0ABEEC94048962F838D12C501B22193E1B2AD43A7D9443A80EA92C4BD4F53B14C867DD00308167CB2803754"
368 "D4A909C0666B231C17736E0C5BE5A21746BE53AF0E72BE30DC56D56752823D9453F025DD3A56904EDBF54FB16667"
369 "82623DDF7BA29A1FA3CFE34864D4AF958EA616785AB7F06DBC01675ADB19EB12D8CA5CF312AEECE9016CA92BC9A2"
370 "69FE9BA2C579C7EA69F34855FDF689B3153BBFF618464612C6CC8984167842316A7E6E38813CC901DFBE4BA0767C"
371 "914B03AD0CF221BC319860A018078F74454DE18B0A144F812A3560D1A3223084A0BE48F737B49840A331B037CC13"
372 "DF82BFC85C1B95890907972897B827C237071A8D706CE41F9E8B045E3FDD9850BEBB50BFA84721B6E64A23557D0F"
373 "572B33D18FD8DE25C0B6C57F35AB9931EE02\"}}"};
374 static HWTEST_F(ReceiveDataTest, ReceiveDataTest006_pake_client_error1, TestSize.Level2)
375 {
376 LOG("--------ReceiveDataTest006--------");
377 struct hc_call_back callBack = {
378 Transmit,
379 GetProtocolParams,
380 SetSessionKey,
381 SetServiceResult,
382 ConfirmReceiveRequest
383 };
384
385 const struct operation_parameter params = {g_testServerAuthId, g_testClientAuthId, KEY_LEN};
386 hc_handle server = get_instance(&g_server_identity, HC_CENTRE, &callBack);
387 ASSERT_TRUE(server != nullptr);
388 int32_t ret = start_pake(server, ¶ms);
389 EXPECT_EQ(ret, HC_OK);
390 uint8_buff data001 = {
391 g_dataStr061,
392 sizeof(g_dataStr061),
393 strlen(reinterpret_cast<char *>(g_dataStr061))
394 };
395 ret = receive_data(server, &data001);
396 EXPECT_EQ(ret, HC_OK);
397 uint8_buff data002 = {
398 g_dataStr062,
399 sizeof(g_dataStr062),
400 strlen(reinterpret_cast<char *>(g_dataStr062))
401 };
402 ret = receive_data(server, &data002);
403 EXPECT_EQ(ret, HC_OK);
404 uint8_buff data003 = {
405 g_dataStr063,
406 sizeof(g_dataStr063),
407 strlen(reinterpret_cast<char *>(g_dataStr063))
408 };
409 ret = receive_data(server, &data003);
410 EXPECT_EQ(ret, HC_OK);
411 EXPECT_EQ(g_result, END_FAILED);
412 destroy(&server);
413 LOG("--------ReceiveDataTest006--------");
414 }
415
416 static HWTEST_F(ReceiveDataTest, ReceiveDataTest007_pake_client_error2, TestSize.Level2)
417 {
418 LOG("--------ReceiveDataTest007--------");
419 struct hc_call_back callBack = {
420 Transmit,
421 GetProtocolParams,
422 SetSessionKey,
423 SetServiceResult,
424 ConfirmReceiveRequest
425 };
426
427 const struct operation_parameter params = {g_testServerAuthId, g_testClientAuthId, KEY_LEN};
428 hc_handle server = get_instance(&g_server_identity, HC_CENTRE, &callBack);
429 ASSERT_TRUE(server != nullptr);
430 int32_t ret = start_pake(server, ¶ms);
431 EXPECT_EQ(ret, HC_OK);
432 uint8_t dataStr001[] = {"{\"message\":32769}"};
433 uint8_buff data001 = {
434 dataStr001,
435 sizeof(dataStr001),
436 strlen(reinterpret_cast<char *>(dataStr001))
437 };
438 ret = receive_data(server, &data001);
439 EXPECT_EQ(ret, HC_OK);
440 EXPECT_EQ(g_result, END_FAILED);
441
442 uint8_t dataStr002[] = {"{\"message\":32770,\"payload\":{\"kcfData\":\"463853720FFFC312084B9FF288E17"
443 "C3F3D8B9D8F2A609D349CAA712AAD926C26\"}}"};
444 uint8_buff data002 = {
445 dataStr002,
446 sizeof(dataStr002),
447 strlen(reinterpret_cast<char *>(dataStr002))
448 };
449 ret = receive_data(server, &data002);
450 EXPECT_EQ(ret, HC_OK);
451
452 uint8_t dataStr003[] = {"{\"message\":32771,\"payload\":{\"exAuthInfo\":\"63B2AC76C0645224DA7E395DBCC29D9F"
453 "9AF5E0ABEEC94048962F838D12C501B22193E1B2AD43A7D9443A80EA92C4BD4F53B14C867DD00308167CB2803754"
454 "D4A909C0666B231C17736E0C5BE5A21746BE53AF0E72BE30DC56D56752823D9453F025DD3A56904EDBF54FB16667"
455 "82623DDF7BA29A1FA3CFE34864D4AF958EA616785AB7F06DBC01675ADB19EB12D8CA5CF312AEECE9016CA92BC9A2"
456 "69FE9BA2C579C7EA69F34855FDF689B3153BBFF618464612C6CC8984167842316A7E6E38813CC901DFBE4BA0767C"
457 "914B03AD0CF221BC319860A018078F74454DE18B0A144F812A3560D1A3223084A0BE48F737B49840A331B037CC13"
458 "DF82BFC85C1B95890907972897B827C237071A8D706CE41F9E8B045E3FDD9850BEBB50BFA84721B6E64A23557D0F"
459 "572B33D18FD8DE25C0B6C57F35AB9931EE02\"}}"};
460 uint8_buff data003 = {
461 dataStr003,
462 sizeof(dataStr003),
463 strlen(reinterpret_cast<char *>(dataStr003))
464 };
465 ret = receive_data(server, &data003);
466 EXPECT_EQ(ret, HC_OK);
467 destroy(&server);
468 LOG("--------ReceiveDataTest007--------");
469 }
470
471 uint8_t g_dataStr081[] = {"{\"message\":32769,\"payload\":{\"version\":{\"currentVersion\":\"1.0.0\","
472 "\"minVersion\":\"1.0.0\"},\"challenge\":\"76539E5634EDA735A94845C3A4F356D6\","
473 "\"salt\":\"025E4B3B2DD3B0E67395C760008A9154\","
474 "\"epk\":\"24EBF8D727B19E8A43B20D22F744113C8B49B226D834B2E3C9CB5B0378732D6CF7C658BFB468682A6762"
475 "2D5FE061F4D8102E4D8912377AA785919C529F0C1289F2188E641C6DC626054FC30304DC804FD9F059F5F5D8CEAA29"
476 "A44814F10CC2A770C5BEB0BE86559E4FA85AD6E480DC2A627F5B28626E23B613EAC21101FF1C1DDA76E35A67A5A70B"
477 "C24ECFD0C92F4F69A5B73FD67BE3EFC0904709BEC26490E21A4A04E29211DF393559B4A71F7368B68F529806DB90C5"
478 "8315EDFF0A1738E26E82A54D2030A5B9B270DCF01A2377300135C55B3F6B273CF157246D0DF928D6E3E2886E79ECEB"
479 "F69F98806C37A6128E4E93C9C43DD01B53963458AF60FA1C0E497F5FD4E807DA4F804EE145967D74792AD9B135C2F3"
480 "A25FAA3427B3666C9D30539F008915A53D1FE2E2DDDCFCFD0815976332575F9EDBC9F4946A83116C7A29C38AC1A5FD"
481 "8E5B894DCB4A1A29672D2647D6C734D4EA74E4A077D3403CAD0CA15318D9560FFF163D71B2991D70148F97CD524244"
482 "7DF2B23C856D734CDD39220EC0\"}}"};
483
484 uint8_t g_dataStr082[] = {"{\"message\":0,\"payload\":{\"kcfData\":\"463853720FFFC312084B9FF288E17"
485 "C3F3D8B9D8F2A609D349CAA712AAD926C26\"}}"};
486
487 uint8_t g_dataStr083[] = {"{\"message\":32771,\"payload\":{\"exAuthInfo\":\"63B2AC76C0645224DA7E395DBCC29D9F"
488 "9AF5E0ABEEC94048962F838D12C501B22193E1B2AD43A7D9443A80EA92C4BD4F53B14C867DD00308167CB2803754"
489 "D4A909C0666B231C17736E0C5BE5A21746BE53AF0E72BE30DC56D56752823D9453F025DD3A56904EDBF54FB16667"
490 "82623DDF7BA29A1FA3CFE34864D4AF958EA616785AB7F06DBC01675ADB19EB12D8CA5CF312AEECE9016CA92BC9A2"
491 "69FE9BA2C579C7EA69F34855FDF689B3153BBFF618464612C6CC8984167842316A7E6E38813CC901DFBE4BA0767C"
492 "914B03AD0CF221BC319860A018078F74454DE18B0A144F812A3560D1A3223084A0BE48F737B49840A331B037CC13"
493 "DF82BFC85C1B95890907972897B827C237071A8D706CE41F9E8B045E3FDD9850BEBB50BFA84721B6E64A23557D0F"
494 "572B33D18FD8DE25C0B6C57F35AB9931EE02\"}}"};
495
496 static HWTEST_F(ReceiveDataTest, ReceiveDataTest008_pake_client_error3, TestSize.Level2)
497 {
498 LOG("--------ReceiveDataTest008--------");
499 struct hc_call_back callBack = {
500 Transmit,
501 GetProtocolParams,
502 SetSessionKey,
503 SetServiceResult,
504 ConfirmReceiveRequest
505 };
506
507 const struct operation_parameter params = {g_testServerAuthId, g_testClientAuthId, KEY_LEN};
508 hc_handle server = get_instance(&g_server_identity, HC_CENTRE, &callBack);
509 ASSERT_TRUE(server != nullptr);
510 int32_t ret = start_pake(server, ¶ms);
511 EXPECT_EQ(ret, HC_OK);
512 uint8_buff data001 = {
513 g_dataStr081,
514 sizeof(g_dataStr081),
515 strlen(reinterpret_cast<char *>(g_dataStr081))
516 };
517 ret = receive_data(server, &data001);
518 EXPECT_EQ(ret, HC_OK);
519 uint8_buff data002 = {
520 g_dataStr082,
521 sizeof(g_dataStr082),
522 strlen(reinterpret_cast<char *>(g_dataStr082))
523 };
524 ret = receive_data(server, &data002);
525 EXPECT_EQ(ret, HC_OK);
526 uint8_buff data003 = {
527 g_dataStr083,
528 sizeof(g_dataStr083),
529 strlen(reinterpret_cast<char *>(g_dataStr083))
530 };
531 ret = receive_data(server, &data003);
532 EXPECT_EQ(ret, HC_OK);
533 destroy(&server);
534 LOG("--------ReceiveDataTest008--------");
535 }
536
537 static HWTEST_F(ReceiveDataTest, ReceiveDataTest010_pake_client2error, TestSize.Level2)
538 {
539 LOG("--------ReceiveDataTest010--------");
540 struct hc_call_back callBack = {
541 Transmit,
542 GetProtocolParams,
543 SetSessionKey,
544 SetServiceResult,
545 ConfirmReceiveRequest
546 };
547 hc_handle server = get_instance(&g_server_identity, HC_CENTRE, &callBack);
548 ASSERT_TRUE(server != nullptr);
549 struct hichain *hcServer = static_cast<struct hichain *>(server);
550 hcServer->operation_code = BIND;
551 hcServer->last_state = KEY_AGREEMENT_STATE;
552 hcServer->state = OPERATION_STATE;
553 struct operation_parameter params = {g_testServerAuthId, g_testClientAuthId, KEY_LEN};
554 build_object(hcServer, PAKE_MODULAR, true, ¶ms);
555 hcServer->pake_client->client_info.protocol_base_info.state = START_REQUEST;
556 hcServer->pake_client->client_info.protocol_base_info.last_state = PROTOCOL_INIT;
557 uint8_t dataStr[] = "{\"message\":32770,\"payload\":{}}";
558 uint8_buff data = {
559 dataStr,
560 sizeof(dataStr),
561 strlen(reinterpret_cast<char *>(dataStr))
562 };
563 receive_data(server, &data);
564 EXPECT_EQ(g_result, END_FAILED);
565
566 destroy(&server);
567 LOG("--------ReceiveDataTest010--------");
568 }
569
570 static HWTEST_F(ReceiveDataTest, ReceiveDataTest014_pake_client3error, TestSize.Level2)
571 {
572 LOG("--------ReceiveDataTest014--------");
573 struct hc_call_back callBack = {
574 Transmit,
575 GetProtocolParams,
576 SetSessionKey,
577 SetServiceResult,
578 ConfirmReceiveRequest
579 };
580
581 hc_handle server = get_instance(&g_server_identity, HC_CENTRE, &callBack);
582 ASSERT_TRUE(server != nullptr);
583 struct hichain *hcServer = static_cast<struct hichain *>(server);
584 hcServer->operation_code = BIND;
585 hcServer->last_state = OPERATION_STATE;
586 hcServer->state = OVER_STATE;
587 struct operation_parameter params = {g_testServerAuthId, g_testClientAuthId, KEY_LEN};
588 build_object(hcServer, PAKE_MODULAR, true, ¶ms);
589 hcServer->pake_client->client_info.protocol_base_info.state = END_REQUEST;
590 hcServer->pake_client->client_info.protocol_base_info.last_state = START_REQUEST;
591 uint8_t dataStr[] = {"{\"message\":32771,\"payload\":{}}"};
592 uint8_buff data = {
593 dataStr,
594 sizeof(dataStr),
595 strlen(reinterpret_cast<char *>(dataStr))
596 };
597 receive_data(server, &data);
598 EXPECT_EQ(g_result, END_FAILED);
599
600 destroy(&server);
601 LOG("--------ReceiveDataTest014--------");
602 }
603
604 uint8_t g_dataStr0151[] = "{\"message\":32769,\"payload\":{\"version\":{\"currentVersion\":"
605 "\"1.0.0\",\"minVersion\":\"1.0.0\"},"
606 "\"challenge\":\"EF6768B27F8BB03128195903788D415A\",\"salt\":"
607 "\"41F4D7096B21DA799A722DA00EB8B030\",\"epk\":\"5F990513D00D2"
608 "206A5AA4AAF7659A066236DDCD3CB806EE6373B8FA2F15AA72274A20709B"
609 "350D8CD17358FD123E7393FE12B5CE4D0CAE62854DBC33425"
610 "F7B49E727F029C5AA724962E221E6095C8ACC6C8AABA5F4A9"
611 "DCCB8AF1BD6CEA09B6AEBD2058C1BD1572005FE5096F1D840F7C78E83D89"
612 "A803C6FF49BF98C03FCEA32247816DF3EB39A52BCCB215747E91B9831BDB"
613 "5E3349C7AA8FCCF121B1CFD2E5CC1861CD85D47AC698E9933"
614 "30110889C2221D45ECA9515956FEA641B64C5EC81F449DF74D863539AF49"
615 "23E13220A513E473352CC532F4710DFB199A5C520D19D14C7"
616 "4EA425721E8EDAFD655E024C99DA1C130EAFB4B420A0B0A85FEB9030546B"
617 "8B3FC9F307F50ABEDC249AB69BA3442D8A567D2D2F2A001AF"
618 "A21D6A9F6FD0D4AB2153EB737094692318FC0C4FCD8026D73585FFD2D411"
619 "CD7703FF9B7B981C42FF4C969E75D846CDFAC54E122A1B073"
620 "CAD7123E8B06C7B51FFC832942001FA33E3E85BB3DE306BB2AE2BEC7D1AB"
621 "BD3D466FFD87FCA3CE65254E4D5A97AD29DFAB4F0\"}}";
622 static HWTEST_F(ReceiveDataTest, ReceiveDataTest015_pake_client_all, TestSize.Level2)
623 {
624 LOG("--------ReceiveDataTest015--------");
625 struct hc_call_back callBack = {
626 Transmit,
627 GetProtocolParams,
628 SetSessionKey,
629 SetServiceResult,
630 ConfirmReceiveRequest
631 };
632
633 hc_handle server = get_instance(&g_server_identity, HC_CENTRE, &callBack);
634 ASSERT_TRUE(server != nullptr);
635 uint8_buff data001 = {
636 g_dataStr0151,
637 sizeof(g_dataStr0151),
638 strlen(reinterpret_cast<char *>(g_dataStr0151))
639 };
640 receive_data(server, &data001);
641 EXPECT_EQ(g_result, END_FAILED);
642
643 uint8_t dataStr002[] = "{\"message\":32770,\"payload\":{"\
644 "\"kcfData\":\"BFA2C2B30CF314401AB067D42655B199824AAF3F3D57926FA903C584BA12A8CB\"}}";
645
646 uint8_buff data002 = {
647 dataStr002,
648 sizeof(dataStr002),
649 strlen(reinterpret_cast<char *>(dataStr002))
650 };
651 receive_data(server, &data002);
652 EXPECT_EQ(g_result, END_FAILED);
653
654 uint8_t dataStr003[] = "{\"message\":32771,\"payload\":{"\
655 "\"exAuthInfo\":\"93E41C6E20911B9B36BC7CE94EDC677E32D83BB6F3AD985FD4BC655B3D9ACBE2\"}}";
656 uint8_buff data003 = {
657 dataStr003,
658 sizeof(dataStr003),
659 strlen(reinterpret_cast<char *>(dataStr003))
660 };
661 receive_data(server, &data003);
662 EXPECT_EQ(g_result, END_FAILED);
663 destroy(&server);
664 LOG("--------ReceiveDataTest015--------");
665 }
666
667 static HWTEST_F(ReceiveDataTest, ReceiveDataTest016_sts_response1_Ok, TestSize.Level2)
668 {
669 LOG("--------ReceiveDataTest016--------");
670 struct hc_call_back callBack = {
671 Transmit,
672 GetProtocolParams,
673 SetSessionKey,
674 SetServiceResult,
675 ConfirmReceiveRequest
676 };
677
678 hc_handle server = get_instance(&g_server_identity, HC_CENTRE, &callBack);
679 ASSERT_TRUE(server != nullptr);
680 struct hichain *hcServer = static_cast<struct hichain *>(server);
681 hcServer->operation_code = AUTHENTICATE;
682 struct operation_parameter params = {g_testServerAuthId, g_testClientAuthId, KEY_LEN};
683 build_object(hcServer, STS_MODULAR, true, ¶ms);
684 hcServer->sts_client->client_info.protocol_base_info.state = END_REQUEST;
685 hcServer->sts_client->client_info.protocol_base_info.last_state = PROTOCOL_INIT;
686 uint8_t dataStr[] = "{\"authForm\":0,\"message\":32785,\"payload\":{\"authData\":\"4A4EB6622524C"
687 "BBF7DC96412A82BF4CB6022F50226A201DB3B3C55\",\"challenge\":\"A1714848785F27C22B31\","\
688 "\"epk\":\"493CB95DB80320360BE5A3E3000E3E8E67371D6DCC57D1F97937ABABC219\","\
689 "\"salt\":\"93E69DC0D48479316984\",\"version\":{\"currentVersion\":"\
690 "\"1.0.0\",\"minVersion\":\"1.0.0\"},\"peerAuthId\":\"6B5A16BFA24C941F4C1B094D"\
691 "6F2FA8DC8A45\",\"peerUserType\":\"0\"}}";
692 uint8_buff data = {
693 dataStr,
694 sizeof(dataStr),
695 strlen(reinterpret_cast<char *>(dataStr))
696 };
697 receive_data(server, &data);
698 EXPECT_EQ(g_result, END_FAILED);
699
700 destroy(&server);
701 LOG("--------ReceiveDataTest016--------");
702 }
703
704 uint8_t g_dataStr0171[] = "{\"authForm\":0,\"message\":32785,\"payload\":"
705 "{\"authData\":\"0CE64CAFFA6AD1146EDB618E6F"
706 "1DA15183EFDCAE08F909A6ABA7B9F2676F4E4C2A280A72"
707 "0C3EBB069858DB473191ED51237E201CC697D3E10130CE"
708 "8FB86FD57F66214643874AD17FE91EC3ACBC446CA666CD"
709 "C5BDFB0EB5BE76DF673C\",\"challenge\":\"C591479"
710 "0E4A81F59F286F2F31415A590\",\"epk\":\"8A870771"
711 "CA779105041966DC462B3B12D7FF87129446F38D1AC39E"
712 "1F408FEB0D\",\"salt\":\"C8EA30CAE1C16CCEEB652D"
713 "AE671A97A3\",\"version\":{\"currentVersion\":"
714 "\"1.0.0\",\"minVersion\":\"1.0.0\"},\"peerAuthId\":\"643"
715 "3376364376365623839346634333933613239396566383"
716 "532623466633335613161306437376334"
717 "3861356233653062323539396162316436396232336136\","
718 "\"peerUserType\":\"0\"}}";
719
720 static HWTEST_F(ReceiveDataTest, ReceiveDataTest017_STS_fullprocess_success, TestSize.Level2)
721 {
722 LOG("--------ReceiveDataTest017--------");
723 struct hc_call_back callBack = {
724 Transmit,
725 GetProtocolParams,
726 SetSessionKey,
727 SetServiceResult,
728 ConfirmReceiveRequest
729 };
730 hc_handle server = get_instance(&g_server_identity, HC_CENTRE, &callBack);
731 ASSERT_TRUE(server != nullptr);
732 struct operation_parameter params = {g_testServerAuthId, g_testClientAuthId, KEY_LEN};
733 int32_t ret = authenticate_peer(server, ¶ms);
734 EXPECT_EQ(ret, HC_OK);
735 uint8_buff data001 = {
736 g_dataStr0171,
737 sizeof(g_dataStr0171),
738 strlen(reinterpret_cast<char *>(g_dataStr0171))
739 };
740 ret = receive_data(server, &data001);
741 EXPECT_EQ(ret, HC_OK);
742 uint8_t dataStr002[] = "{\"authForm\":0,\"message\":32786,\"payload\":"
743 "{\"authReturn\":\"57F9D09AA425FB83AB9BE2AF25FC9E5"
744 "B82F630255AC62872447A9E5802\"}}";
745 uint8_buff data002 = {
746 dataStr002,
747 sizeof(dataStr002),
748 strlen(reinterpret_cast<char *>(dataStr002))
749 };
750 ret = receive_data(server, &data002);
751 EXPECT_EQ(ret, HC_OK);
752 destroy(&server);
753 LOG("--------ReceiveDataTest017--------");
754 }
755
756 static HWTEST_F(ReceiveDataTest, ReceiveDataTest018_STS_auth_ack_error_message, TestSize.Level2)
757 {
758 LOG("--------ReceiveDataTest018--------");
759 struct hc_call_back callBack = {
760 Transmit,
761 GetProtocolParams,
762 SetSessionKey,
763 SetServiceResult,
764 ConfirmReceiveRequest
765 };
766
767 hc_handle server = get_instance(&g_server_identity, HC_CENTRE, &callBack);
768 ASSERT_TRUE(server != nullptr);
769 struct operation_parameter params = {g_testServerAuthId, g_testClientAuthId, KEY_LEN};
770 int32_t ret = authenticate_peer(server, ¶ms);
771 EXPECT_EQ(ret, HC_OK);
772 uint8_t dataStr001[] = "{\"authForm\":0,\"message\":32785,\"payload\":{\"authData\":\"0CE64CAFFA6AD1146EDB618E6F"
773 "1DA15183EFDCAE08F909A6ABA7B9F2676F4E4C2A280A720C3EBB069858DB473191ED51237E201CC"
774 "697D3E10130CE8FB86FD57F66214643874AD17FE91EC3ACBC446CA666CDC5BDFB0EB5BE76DF673C\","
775 "\"challenge\":\"C5914790E4A81F59F286F2F31415A590\",\"epk\":\"8A870771CA779105041966DC4"
776 "62B3B12D7FF87129446F38D1AC39E1F408FEB0D\",\"salt\":\"C8EA30CAE1C16CCEEB652DAE671A97"
777 "A3\",\"version\":{\"currentVersion\":\"1.0.0\",\"minVersion\":\"1.0.0\"},\"peerAuthId\":\"643"
778 "3376364376365623839346634333933613239396566383532623466633335613161306437376334"
779 "3861356233653062323539396162316436396232336136\",\"peerUserType\":\"0\"}}";
780 uint8_buff data001 = {
781 dataStr001,
782 sizeof(dataStr001),
783 strlen(reinterpret_cast<char *>(dataStr001))
784 };
785 ret = receive_data(server, &data001);
786 EXPECT_EQ(ret, HC_OK);
787
788 uint8_t dataStr002[] = "{\"authForm\":0,\"message\":32786,\"payload\":{\"errorCode\":17}}";
789 uint8_buff data002 = {
790 dataStr002,
791 sizeof(dataStr002),
792 strlen(reinterpret_cast<char *>(dataStr002))
793 };
794 ret = receive_data(server, &data002);
795 EXPECT_EQ(ret, HC_OK);
796 destroy(&server);
797 LOG("--------ReceiveDataTest018--------");
798 }
799
800 uint8_t g_dataStr0191[] = {"{\"message\":32769,\"payload\":{\"version\":{\"currentVersion\":\"1.0.0\","
801 "\"minVersion\":\"1.0.0\"},"
802 "\"salt\":\"025E4B3B2DD3B0E67395C760008A9154\","
803 "\"epk\":\"24EBF8D727B19E8A43B20D22F744113C8B49B226D834B2E3C9CB5B0378732D6CF7C658BFB468682A6762"
804 "2D5FE061F4D8102E4D8912377AA785919C529F0C1289F2188E641C6DC626054FC30304DC804FD9F059F5F5D8CEAA29"
805 "A44814F10CC2A770C5BEB0BE86559E4FA85AD6E480DC2A627F5B28626E23B613EAC21101FF1C1DDA76E35A67A5A70B"
806 "C24ECFD0C92F4F69A5B73FD67BE3EFC0904709BEC26490E21A4A04E29211DF393559B4A71F7368B68F529806DB90C5"
807 "8315EDFF0A1738E26E82A54D2030A5B9B270DCF01A2377300135C55B3F6B273CF157246D0DF928D6E3E2886E79ECEB"
808 "F69F98806C37A6128E4E93C9C43DD01B53963458AF60FA1C0E497F5FD4E807DA4F804EE145967D74792AD9B135C2F3"
809 "A25FAA3427B3666C9D30539F008915A53D1FE2E2DDDCFCFD0815976332575F9EDBC9F4946A83116C7A29C38AC1A5FD"
810 "8E5B894DCB4A1A29672D2647D6C734D4EA74E4A077D3403CAD0CA15318D9560FFF163D71B2991D70148F97CD524244"
811 "7DF2B23C856D734CDD39220EC0\"}}"};
812
813 uint8_t g_dataStr0192[] = {"{\"message\":32769,\"payload\":{\"version\":{\"currentVersion\":\"1.0.0\","
814 "\"minVersion\":\"1.0.0\"},\"challenge\":\"76539E5634EDA735A94845C3A4F356D6\","
815 "\"epk\":\"24EBF8D727B19E8A43B20D22F744113C8B49B226D834B2E3C9CB5B0378732D6CF7C658BFB468682A6762"
816 "2D5FE061F4D8102E4D8912377AA785919C529F0C1289F2188E641C6DC626054FC30304DC804FD9F059F5F5D8CEAA29"
817 "A44814F10CC2A770C5BEB0BE86559E4FA85AD6E480DC2A627F5B28626E23B613EAC21101FF1C1DDA76E35A67A5A70B"
818 "C24ECFD0C92F4F69A5B73FD67BE3EFC0904709BEC26490E21A4A04E29211DF393559B4A71F7368B68F529806DB90C5"
819 "8315EDFF0A1738E26E82A54D2030A5B9B270DCF01A2377300135C55B3F6B273CF157246D0DF928D6E3E2886E79ECEB"
820 "F69F98806C37A6128E4E93C9C43DD01B53963458AF60FA1C0E497F5FD4E807DA4F804EE145967D74792AD9B135C2F3"
821 "A25FAA3427B3666C9D30539F008915A53D1FE2E2DDDCFCFD0815976332575F9EDBC9F4946A83116C7A29C38AC1A5FD"
822 "8E5B894DCB4A1A29672D2647D6C734D4EA74E4A077D3403CAD0CA15318D9560FFF163D71B2991D70148F97CD524244"
823 "7DF2B23C856D734CDD39220EC0\"}}"};
824
825 uint8_t g_dataStr0193[] = {"{\"message\":32769,\"payload\":{\"version\":{\"currentVersion\":\"1.0.0\","
826 "\"minVersion\":\"1.0.0\"},\"challenge\":\"76539E5634EDA735A94845C3A4F356D6\","
827 "\"salt\":\"025E4B3B2DD3B0E67395C760008A9154\",}}"};
828
829 uint8_t g_dataStr0194[] = {"{\"message\":32769,\"payload\":{\"challenge\":\"76539E5634EDA735A94845C3A4F356D6\","
830 "\"salt\":\"025E4B3B2DD3B0E67395C760008A9154\","
831 "\"epk\":\"24EBF8D727B19E8A43B20D22F744113C8B49B226D834B2E3C9CB5B0378732D6CF7C658BFB468682A6762"
832 "2D5FE061F4D8102E4D8912377AA785919C529F0C1289F2188E641C6DC626054FC30304DC804FD9F059F5F5D8CEAA29"
833 "A44814F10CC2A770C5BEB0BE86559E4FA85AD6E480DC2A627F5B28626E23B613EAC21101FF1C1DDA76E35A67A5A70B"
834 "C24ECFD0C92F4F69A5B73FD67BE3EFC0904709BEC26490E21A4A04E29211DF393559B4A71F7368B68F529806DB90C5"
835 "8315EDFF0A1738E26E82A54D2030A5B9B270DCF01A2377300135C55B3F6B273CF157246D0DF928D6E3E2886E79ECEB"
836 "F69F98806C37A6128E4E93C9C43DD01B53963458AF60FA1C0E497F5FD4E807DA4F804EE145967D74792AD9B135C2F3"
837 "A25FAA3427B3666C9D30539F008915A53D1FE2E2DDDCFCFD0815976332575F9EDBC9F4946A83116C7A29C38AC1A5FD"
838 "8E5B894DCB4A1A29672D2647D6C734D4EA74E4A077D3403CAD0CA15318D9560FFF163D71B2991D70148F97CD524244"
839 "7DF2B23C856D734CDD39220EC0\"}}"};
840
841 uint8_t g_dataStr0195[] = {"{\"message\":32769,\"payload\":{\"challenge\":\"76539E5634EDA735A94845C3A4F356D\","
842 "\"salt\":\"025E4B3B2DD3B0E67395C760008A915\","
843 "\"epk\":\"24EBF8D727B19E8A43B20D22F744113C8B49B226D834B2E3C9CB5B0378732D6CF7C658BFB468682A6762"
844 "2D5FE061F4D8102E4D8912377AA785919C529F0C1289F2188E641C6DC626054FC30304DC804FD9F059F5F5D8CEAA29"
845 "A44814F10CC2A770C5BEB0BE86559E4FA85AD6E480DC2A627F5B28626E23B613EAC21101FF1C1DDA76E35A67A5A70B"
846 "C24ECFD0C92F4F69A5B73FD67BE3EFC0904709BEC26490E21A4A04E29211DF393559B4A71F7368B68F529806DB90C5"
847 "8315EDFF0A1738E26E82A54D2030A5B9B270DCF01A2377300135C55B3F6B273CF157246D0DF928D6E3E2886E79ECEB"
848 "F69F98806C37A6128E4E93C9C43DD01B53963458AF60FA1C0E497F5FD4E807DA4F804EE145967D74792AD9B135C2F3"
849 "A25FAA3427B3666C9D30539F008915A53D1FE2E2DDDCFCFD0815976332575F9EDBC9F4946A83116C7A29C38AC1A5FD"
850 "8E5B894DCB4A1A29672D2647D6C734D4EA74E4A077D3403CAD0CA15318D9560FFF163D71B2991D70148F97CD524244"
851 "7DF2B23C856D734CDD39220EC\"}}"};
852
853 static HWTEST_F(ReceiveDataTest, ReceiveDataTest019_pake_client_withoutrandom, TestSize.Level2)
854 {
855 LOG("--------ReceiveDataTest019--------");
856 struct hc_call_back callBack = {
857 Transmit,
858 GetProtocolParams,
859 SetSessionKey,
860 SetServiceResult,
861 ConfirmReceiveRequest
862 };
863 const struct operation_parameter params = {g_testServerAuthId, g_testClientAuthId, KEY_LEN};
864 hc_handle server1 = get_instance(&g_server_identity, HC_CENTRE, &callBack);
865 ASSERT_TRUE(server1 != nullptr);
866 int32_t ret = start_pake(server1, ¶ms);
867 EXPECT_EQ(ret, HC_OK);
868 uint8_buff data001 = {
869 g_dataStr0191,
870 sizeof(g_dataStr0191),
871 strlen(reinterpret_cast<char *>(g_dataStr0191))
872 };
873 ret = receive_data(server1, &data001);
874 EXPECT_EQ(ret, HC_OK);
875 destroy(&server1);
876 hc_handle server2 = get_instance(&g_server_identity, HC_CENTRE, &callBack);
877 ASSERT_TRUE(server2 != nullptr);
878 ret = start_pake(server2, ¶ms);
879 EXPECT_EQ(ret, HC_OK);
880 uint8_buff data002 = {
881 g_dataStr0192,
882 sizeof(g_dataStr0192),
883 strlen(reinterpret_cast<char *>(g_dataStr0192))
884 };
885 ret = receive_data(server2, &data002);
886 EXPECT_EQ(ret, HC_OK);
887 destroy(&server2);
888 hc_handle server3 = get_instance(&g_server_identity, HC_CENTRE, &callBack);
889 ASSERT_TRUE(server3 != nullptr);
890 ret = start_pake(server3, ¶ms);
891 EXPECT_EQ(ret, HC_OK);
892 uint8_buff data003 = {
893 g_dataStr0193,
894 sizeof(g_dataStr0193),
895 strlen(reinterpret_cast<char *>(g_dataStr0193))
896 };
897 ret = receive_data(server3, &data003);
898 EXPECT_EQ(ret, HC_OK);
899 destroy(&server3);
900 LOG("--------ReceiveDataTest019--------");
901 }
902
903 static HWTEST_F(ReceiveDataTest, ReceiveDataTest020_pake_client_withoutrandom2, TestSize.Level2)
904 {
905 LOG("--------ReceiveDataTest020--------");
906 struct hc_call_back callBack = {
907 Transmit,
908 GetProtocolParams,
909 SetSessionKey,
910 SetServiceResult,
911 ConfirmReceiveRequest
912 };
913 const struct operation_parameter params = {g_testServerAuthId, g_testClientAuthId, KEY_LEN};
914 hc_handle server4 = get_instance(&g_server_identity, HC_CENTRE, &callBack);
915 ASSERT_TRUE(server4 != nullptr);
916 int32_t ret = start_pake(server4, ¶ms);
917 EXPECT_EQ(ret, HC_OK);
918 uint8_buff data004 = {
919 g_dataStr0194,
920 sizeof(g_dataStr0194),
921 strlen(reinterpret_cast<char *>(g_dataStr0194))
922 };
923 ret = receive_data(server4, &data004);
924 EXPECT_EQ(ret, HC_OK);
925 uint8_buff data005 = {
926 g_dataStr0195,
927 sizeof(g_dataStr0195),
928 strlen(reinterpret_cast<char *>(g_dataStr0195))
929 };
930 ret = receive_data(server4, &data005);
931 EXPECT_EQ(ret, HC_OK);
932 destroy(&server4);
933
934 LOG("--------ReceiveDataTest020--------");
935 }
936 }