• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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, &params, 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, &params, &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, &params, &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, &params, &verInfo);
165     FreeJson(in);
166     DestroyPakeAuthParams(&params);
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, &params, &verInfo);
178     FreeJson(in);
179     DestroyPakeAuthParams(&params);
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, &params, &verInfo);
192     FreeJson(in);
193     DestroyPakeAuthParams(&params);
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(&params);
220     DestroyTokenManager();
221 }
222 
PakeV2AuthTaskCommonTest012(void)223 static void PakeV2AuthTaskCommonTest012(void)
224 {
225     PakeAuthParams params;
226     InitTokenManager();
227     (void)GenerateEcdhSharedKey(&params);
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(&params, in);
246     in = CreateJson();
247     (void)GetPkInfoPeer(&params, in);
248     (void)AddStringToJson(in, FIELD_AUTH_PK_INFO, "auth_pk_info");
249     (void)GetPkInfoPeer(&params, in);
250     FreeJson(in);
251     DestroyPakeAuthParams(&params);
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(&params, in);
281     DestroyPakeAuthParams(&params);
282     DestroyTokenManager();
283 }
284 
PakeV2AuthTaskCommonTest018(void)285 static void PakeV2AuthTaskCommonTest018(void)
286 {
287     PakeAuthParams params;
288     CJson *in = CreateJson();
289     InitTokenManager();
290     (void)ExtractPakePeerId(&params, in);
291     FreeJson(in);
292     DestroyPakeAuthParams(&params);
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(&params);
309     DestroyPakeAuthParams(&params);
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(&params, in);
328     DestroyPakeAuthParams(&params);
329     DestroyTokenManager();
330 }
331 
PakeV2AuthTaskCommonTest023(void)332 static void PakeV2AuthTaskCommonTest023(void)
333 {
334     PakeAuthParams params;
335     CJson *in = CreateJson();
336     InitTokenManager();
337     (void)ExtractPeerDeviceId(&params, in);
338     (void)AddStringToJson(in, FIELD_DEVICE_ID, "device_id_unit_test");
339     (void)ExtractPeerDeviceId(&params, in);
340     FreeJson(in);
341     DestroyPakeAuthParams(&params);
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(&params, in);
360     DestroyPakeAuthParams(&params);
361     DestroyTokenManager();
362 }
363 
PakeV2AuthTaskCommonTest026(void)364 static void PakeV2AuthTaskCommonTest026(void)
365 {
366     PakeAuthParams params;
367     CJson *in = CreateJson();
368     InitTokenManager();
369     (void)ExtractPeerDevId(&params, in);
370     (void)AddStringToJson(in, FIELD_DEV_ID, "dev_id_unit_test");
371     (void)ExtractPeerDevId(&params, in);
372     FreeJson(in);
373     DestroyPakeAuthParams(&params);
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