1 /*
2 * Copyright (c) 2023 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 "pakeauthtask_fuzzer.h"
17
18 #include "account_module_defines.h"
19 #include "alg_loader.h"
20 #include "common_defs.h"
21 #include "device_auth.h"
22 #include "device_auth_defines.h"
23 #include "hc_dev_info_mock.h"
24 #include "json_utils.h"
25 #include "protocol_task_main_mock.h"
26 #include "securec.h"
27 #include "json_utils.h"
28 #include "string_util.h"
29 #include "account_task_main.h"
30 #include "pake_v2_auth_client_task.h"
31 #include "pake_v2_auth_server_task.h"
32 #include "pake_v2_auth_task_common.h"
33 #include "account_version_util.h"
34 #include "asy_token_manager.h"
35 #include "pake_defs.h"
36
37 namespace OHOS {
PakeV2AuthClientTaskTest001(void)38 static void PakeV2AuthClientTaskTest001(void)
39 {
40 CJson *in = nullptr;
41 CJson *out = nullptr;
42 AccountVersionInfo *verInfo = nullptr;
43 (void)CreatePakeV2AuthClientTask(in, out, verInfo);
44 }
45
PakeV2AuthClientTaskTest002(void)46 static void PakeV2AuthClientTaskTest002(void)
47 {
48 CJson *in = CreateJson();
49 CJson *out = nullptr;
50 AccountVersionInfo *verInfo = nullptr;
51 (void)CreatePakeV2AuthClientTask(in, out, verInfo);
52 FreeJson(in);
53 }
54
PakeV2AuthClientTaskTest003(void)55 static void PakeV2AuthClientTaskTest003(void)
56 {
57 CJson *in = CreateJson();
58 CJson *out = CreateJson();
59 AccountVersionInfo *verInfo = nullptr;
60 (void)CreatePakeV2AuthClientTask(in, out, verInfo);
61 FreeJson(in);
62 FreeJson(out);
63 }
64
PakeV2AuthClientTaskTest004(void)65 static void PakeV2AuthClientTaskTest004(void)
66 {
67 CJson *in = CreateJson();
68 CJson *out = CreateJson();
69 AccountVersionInfo verInfo;
70 (void)CreatePakeV2AuthClientTask(in, out, &verInfo);
71 FreeJson(in);
72 FreeJson(out);
73 }
74
PakeV2AuthServerTaskTest001(void)75 static void PakeV2AuthServerTaskTest001(void)
76 {
77 CJson *in = nullptr;
78 CJson *out = nullptr;
79 AccountVersionInfo *verInfo = nullptr;
80 (void)CreatePakeV2AuthServerTask(in, out, verInfo);
81 }
82
PakeV2AuthServerTaskTest002(void)83 static void PakeV2AuthServerTaskTest002(void)
84 {
85 CJson *in = CreateJson();
86 CJson *out = nullptr;
87 AccountVersionInfo *verInfo = nullptr;
88 (void)CreatePakeV2AuthServerTask(in, out, verInfo);
89 FreeJson(in);
90 }
91
PakeV2AuthServerTaskTest003(void)92 static void PakeV2AuthServerTaskTest003(void)
93 {
94 CJson *in = CreateJson();
95 CJson *out = CreateJson();
96 AccountVersionInfo *verInfo = nullptr;
97 (void)CreatePakeV2AuthServerTask(in, out, verInfo);
98 FreeJson(in);
99 FreeJson(out);
100 }
101
PakeV2AuthServerTaskTest004(void)102 static void PakeV2AuthServerTaskTest004(void)
103 {
104 CJson *in = CreateJson();
105 CJson *out = CreateJson();
106 AccountVersionInfo verInfo;
107 (void)CreatePakeV2AuthServerTask(in, out, &verInfo);
108 FreeJson(in);
109 FreeJson(out);
110 }
111
PakeV2AuthTaskCommonTest001(void)112 static void PakeV2AuthTaskCommonTest001(void)
113 {
114 CJson *in = nullptr;
115 PakeAuthParams *params = nullptr;
116 AccountVersionInfo *verInfo = nullptr;
117 (void)InitPakeAuthParams(in, params, verInfo);
118 }
119
PakeV2AuthTaskCommonTest002(void)120 static void PakeV2AuthTaskCommonTest002(void)
121 {
122 CJson *in = CreateJson();
123 PakeAuthParams *params = nullptr;
124 AccountVersionInfo *verInfo = nullptr;
125 (void)InitPakeAuthParams(in, params, verInfo);
126 FreeJson(in);
127 }
128
PakeV2AuthTaskCommonTest003(void)129 static void PakeV2AuthTaskCommonTest003(void)
130 {
131 CJson *in = CreateJson();
132 PakeAuthParams params;
133 AccountVersionInfo *verInfo = nullptr;
134 (void)InitPakeAuthParams(in, ¶ms, verInfo);
135 FreeJson(in);
136 }
137
PakeV2AuthTaskCommonTest004(void)138 static void PakeV2AuthTaskCommonTest004(void)
139 {
140 CJson *in = CreateJson();
141 PakeAuthParams params;
142 AccountVersionInfo verInfo;
143 (void)InitPakeAuthParams(in, ¶ms, &verInfo);
144 FreeJson(in);
145 }
146
PakeV2AuthTaskCommonTest005(void)147 static void PakeV2AuthTaskCommonTest005(void)
148 {
149 CJson *in = CreateJson();
150 PakeAuthParams params;
151 AccountVersionInfo verInfo;
152 (void)AddStringToJson(in, FIELD_SELF_DEVICE_ID, "device_id_unit_test");
153 (void)InitPakeAuthParams(in, ¶ms, &verInfo);
154 FreeJson(in);
155 }
156
PakeV2AuthTaskCommonTest006(void)157 static void PakeV2AuthTaskCommonTest006(void)
158 {
159 CJson *in = CreateJson();
160 PakeAuthParams params;
161 AccountVersionInfo verInfo;
162 (void)AddStringToJson(in, FIELD_SELF_DEVICE_ID, "device_id_unit_test");
163 (void)AddIntToJson(in, FIELD_OS_ACCOUNT_ID, 0);
164 (void)InitPakeAuthParams(in, ¶ms, &verInfo);
165 FreeJson(in);
166 DestroyPakeAuthParams(¶ms);
167 }
168
PakeV2AuthTaskCommonTest007(void)169 static void PakeV2AuthTaskCommonTest007(void)
170 {
171 CJson *in = CreateJson();
172 PakeAuthParams params;
173 AccountVersionInfo verInfo;
174 (void)AddStringToJson(in, FIELD_SELF_DEVICE_ID, "device_id_unit_test");
175 (void)AddIntToJson(in, FIELD_OS_ACCOUNT_ID, 0);
176 (void)AddStringToJson(in, FIELD_SELF_USER_ID, "self_user_id_unit_test");
177 (void)InitPakeAuthParams(in, ¶ms, &verInfo);
178 FreeJson(in);
179 DestroyPakeAuthParams(¶ms);
180 }
181
PakeV2AuthTaskCommonTest008(void)182 static void PakeV2AuthTaskCommonTest008(void)
183 {
184 CJson *in = CreateJson();
185 PakeAuthParams params;
186 AccountVersionInfo verInfo;
187 (void)AddStringToJson(in, FIELD_SELF_DEVICE_ID, "device_id_unit_test");
188 (void)AddIntToJson(in, FIELD_OS_ACCOUNT_ID, 0);
189 (void)AddStringToJson(in, FIELD_SELF_USER_ID, "self_user_id_unit_test");
190 (void)AddBoolToJson(in, FIELD_IS_CLIENT, true);
191 (void)InitPakeAuthParams(in, ¶ms, &verInfo);
192 FreeJson(in);
193 DestroyPakeAuthParams(¶ms);
194 }
195
PakeV2AuthTaskCommonTest009(void)196 static void PakeV2AuthTaskCommonTest009(void)
197 {
198 (void)IsPakeV2AuthTaskSupported();
199 CJson *in = nullptr;
200 CJson *out = nullptr;
201 AccountVersionInfo *verInfo = nullptr;
202 (void)CreatePakeV2AuthTask(in, out, verInfo);
203 }
204
PakeV2AuthTaskCommonTest010(void)205 static void PakeV2AuthTaskCommonTest010(void)
206 {
207 CJson *in = CreateJson();
208 (void)AddBoolToJson(in, FIELD_IS_CLIENT, true);
209 CJson *out = nullptr;
210 AccountVersionInfo *verInfo = nullptr;
211 (void)CreatePakeV2AuthTask(in, out, verInfo);
212 FreeJson(in);
213 }
214
PakeV2AuthTaskCommonTest011(void)215 static void PakeV2AuthTaskCommonTest011(void)
216 {
217 PakeAuthParams params;
218 InitTokenManager();
219 (void)VerifyPkSignPeer(¶ms);
220 DestroyTokenManager();
221 }
222
PakeV2AuthTaskCommonTest012(void)223 static void PakeV2AuthTaskCommonTest012(void)
224 {
225 PakeAuthParams params;
226 InitTokenManager();
227 (void)GenerateEcdhSharedKey(¶ms);
228 DestroyTokenManager();
229 }
230
PakeV2AuthTaskCommonTest013(void)231 static void PakeV2AuthTaskCommonTest013(void)
232 {
233 PakeAuthParams *params = nullptr;
234 CJson *in = nullptr;
235 InitTokenManager();
236 (void)GetPkInfoPeer(params, in);
237 DestroyTokenManager();
238 }
239
PakeV2AuthTaskCommonTest014(void)240 static void PakeV2AuthTaskCommonTest014(void)
241 {
242 PakeAuthParams params;
243 CJson *in = nullptr;
244 InitTokenManager();
245 (void)GetPkInfoPeer(¶ms, in);
246 in = CreateJson();
247 (void)GetPkInfoPeer(¶ms, in);
248 (void)AddStringToJson(in, FIELD_AUTH_PK_INFO, "auth_pk_info");
249 (void)GetPkInfoPeer(¶ms, in);
250 FreeJson(in);
251 DestroyPakeAuthParams(¶ms);
252 DestroyTokenManager();
253 }
254
PakeV2AuthTaskCommonTest015(void)255 static void PakeV2AuthTaskCommonTest015(void)
256 {
257 PakeAuthParams *params = nullptr;
258 InitTokenManager();
259 CJson *in = CreateJson();
260 (void)AddStringToJson(in, FIELD_AUTH_PK_INFO, "auth_pk_info");
261 DestroyPakeAuthParams(params);
262 DestroyTokenManager();
263 FreeJson(in);
264 }
265
PakeV2AuthTaskCommonTest016(void)266 static void PakeV2AuthTaskCommonTest016(void)
267 {
268 PakeAuthParams *params = nullptr;
269 CJson *in = nullptr;
270 InitTokenManager();
271 (void)ExtractPakePeerId(params, in);
272 DestroyTokenManager();
273 }
274
PakeV2AuthTaskCommonTest017(void)275 static void PakeV2AuthTaskCommonTest017(void)
276 {
277 PakeAuthParams params;
278 CJson *in = nullptr;
279 InitTokenManager();
280 (void)ExtractPakePeerId(¶ms, in);
281 DestroyPakeAuthParams(¶ms);
282 DestroyTokenManager();
283 }
284
PakeV2AuthTaskCommonTest018(void)285 static void PakeV2AuthTaskCommonTest018(void)
286 {
287 PakeAuthParams params;
288 CJson *in = CreateJson();
289 InitTokenManager();
290 (void)ExtractPakePeerId(¶ms, in);
291 FreeJson(in);
292 DestroyPakeAuthParams(¶ms);
293 DestroyTokenManager();
294 }
295
PakeV2AuthTaskCommonTest019(void)296 static void PakeV2AuthTaskCommonTest019(void)
297 {
298 PakeAuthParams *params = nullptr;
299 InitTokenManager();
300 (void)ExtractPakeSelfId(params);
301 DestroyTokenManager();
302 }
303
PakeV2AuthTaskCommonTest020(void)304 static void PakeV2AuthTaskCommonTest020(void)
305 {
306 PakeAuthParams params;
307 InitTokenManager();
308 (void)ExtractPakeSelfId(¶ms);
309 DestroyPakeAuthParams(¶ms);
310 DestroyTokenManager();
311 }
312
PakeV2AuthTaskCommonTest021(void)313 static void PakeV2AuthTaskCommonTest021(void)
314 {
315 PakeAuthParams *params = nullptr;
316 CJson *in = nullptr;
317 InitTokenManager();
318 (void)ExtractPeerDeviceId(params, in);
319 DestroyTokenManager();
320 }
321
PakeV2AuthTaskCommonTest022(void)322 static void PakeV2AuthTaskCommonTest022(void)
323 {
324 PakeAuthParams params;
325 CJson *in = nullptr;
326 InitTokenManager();
327 (void)ExtractPeerDeviceId(¶ms, in);
328 DestroyPakeAuthParams(¶ms);
329 DestroyTokenManager();
330 }
331
PakeV2AuthTaskCommonTest023(void)332 static void PakeV2AuthTaskCommonTest023(void)
333 {
334 PakeAuthParams params;
335 CJson *in = CreateJson();
336 InitTokenManager();
337 (void)ExtractPeerDeviceId(¶ms, in);
338 (void)AddStringToJson(in, FIELD_DEVICE_ID, "device_id_unit_test");
339 (void)ExtractPeerDeviceId(¶ms, in);
340 FreeJson(in);
341 DestroyPakeAuthParams(¶ms);
342 DestroyTokenManager();
343 }
344
PakeV2AuthTaskCommonTest024(void)345 static void PakeV2AuthTaskCommonTest024(void)
346 {
347 PakeAuthParams *params = nullptr;
348 CJson *in = nullptr;
349 InitTokenManager();
350 (void)ExtractPeerDevId(params, in);
351 DestroyTokenManager();
352 }
353
PakeV2AuthTaskCommonTest025(void)354 static void PakeV2AuthTaskCommonTest025(void)
355 {
356 PakeAuthParams params;
357 CJson *in = nullptr;
358 InitTokenManager();
359 (void)ExtractPeerDevId(¶ms, in);
360 DestroyPakeAuthParams(¶ms);
361 DestroyTokenManager();
362 }
363
PakeV2AuthTaskCommonTest026(void)364 static void PakeV2AuthTaskCommonTest026(void)
365 {
366 PakeAuthParams params;
367 CJson *in = CreateJson();
368 InitTokenManager();
369 (void)ExtractPeerDevId(¶ms, in);
370 (void)AddStringToJson(in, FIELD_DEV_ID, "dev_id_unit_test");
371 (void)ExtractPeerDevId(¶ms, in);
372 FreeJson(in);
373 DestroyPakeAuthParams(¶ms);
374 DestroyTokenManager();
375 }
376
FuzzDoRegCallback(const uint8_t * data,size_t size)377 bool FuzzDoRegCallback(const uint8_t* data, size_t size)
378 {
379 (void)data;
380 (void)size;
381 (void)PakeV2AuthClientTaskTest001();
382 (void)PakeV2AuthClientTaskTest002();
383 (void)PakeV2AuthClientTaskTest003();
384 (void)PakeV2AuthClientTaskTest004();
385 (void)PakeV2AuthServerTaskTest001();
386 (void)PakeV2AuthServerTaskTest002();
387 (void)PakeV2AuthServerTaskTest003();
388 (void)PakeV2AuthServerTaskTest004();
389 (void)PakeV2AuthTaskCommonTest001();
390 (void)PakeV2AuthTaskCommonTest002();
391 (void)PakeV2AuthTaskCommonTest003();
392 (void)PakeV2AuthTaskCommonTest004();
393 (void)PakeV2AuthTaskCommonTest005();
394 (void)PakeV2AuthTaskCommonTest006();
395 (void)PakeV2AuthTaskCommonTest007();
396 (void)PakeV2AuthTaskCommonTest008();
397 (void)PakeV2AuthTaskCommonTest009();
398 (void)PakeV2AuthTaskCommonTest010();
399 (void)PakeV2AuthTaskCommonTest011();
400 (void)PakeV2AuthTaskCommonTest012();
401 (void)PakeV2AuthTaskCommonTest013();
402 (void)PakeV2AuthTaskCommonTest014();
403 (void)PakeV2AuthTaskCommonTest015();
404 (void)PakeV2AuthTaskCommonTest016();
405 (void)PakeV2AuthTaskCommonTest017();
406 (void)PakeV2AuthTaskCommonTest018();
407 (void)PakeV2AuthTaskCommonTest019();
408 (void)PakeV2AuthTaskCommonTest020();
409 (void)PakeV2AuthTaskCommonTest021();
410 (void)PakeV2AuthTaskCommonTest022();
411 (void)PakeV2AuthTaskCommonTest023();
412 (void)PakeV2AuthTaskCommonTest024();
413 (void)PakeV2AuthTaskCommonTest025();
414 (void)PakeV2AuthTaskCommonTest026();
415 return true;
416 }
417
418 }
419
420 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)421 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
422 {
423 /* Run your code on data */
424 OHOS::FuzzDoRegCallback(data, size);
425 return 0;
426 }
427
428