1094332d3Sopenharmony_ci/*
2094332d3Sopenharmony_ci * Copyright (c) 2022-2023 Huawei Device Co., Ltd.
3094332d3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4094332d3Sopenharmony_ci * you may not use this file except in compliance with the License.
5094332d3Sopenharmony_ci * You may obtain a copy of the License at
6094332d3Sopenharmony_ci *
7094332d3Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8094332d3Sopenharmony_ci *
9094332d3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10094332d3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11094332d3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12094332d3Sopenharmony_ci * See the License for the specific language governing permissions and
13094332d3Sopenharmony_ci * limitations under the License.
14094332d3Sopenharmony_ci */
15094332d3Sopenharmony_ci
16094332d3Sopenharmony_ci#ifndef WPA_COMMON_FUZZER_H
17094332d3Sopenharmony_ci#define WPA_COMMON_FUZZER_H
18094332d3Sopenharmony_ci#include "hdf_log.h"
19094332d3Sopenharmony_ci#include "v1_1/iwpa_callback.h"
20094332d3Sopenharmony_ci#include "v1_1/iwpa_interface.h"
21094332d3Sopenharmony_ci#include "securec.h"
22094332d3Sopenharmony_ci#include <osal_mem.h>
23094332d3Sopenharmony_ci
24094332d3Sopenharmony_ci#define HDF_LOG_TAG
25094332d3Sopenharmony_ci#define IFNAMSIZ 16
26094332d3Sopenharmony_ciconstexpr int32_t OFFSET = 4;
27094332d3Sopenharmony_ci
28094332d3Sopenharmony_ciuint32_t SetWpaDataSize(const uint32_t *dataSize);
29094332d3Sopenharmony_ciuint32_t GetWpaDataSize(uint32_t *dataSize);
30094332d3Sopenharmony_ciuint32_t Convert2Uint32(const uint8_t *ptr);
31094332d3Sopenharmony_cibool PreProcessRawData(const uint8_t *rawData, size_t size, uint8_t *tmpRawData, size_t tmpRawDataSize);
32094332d3Sopenharmony_ci
33094332d3Sopenharmony_ci/* **********Wpa Interface********** */
34094332d3Sopenharmony_civoid FuzzWpaInterfaceStart(struct IWpaInterface *interface, const uint8_t *rawData);
35094332d3Sopenharmony_civoid FuzzWpaInterfaceStop(struct IWpaInterface *interface, const uint8_t *rawData);
36094332d3Sopenharmony_civoid FuzzWpaInterfaceScan(struct IWpaInterface *interface, const uint8_t *rawData);
37094332d3Sopenharmony_civoid FuzzWpaInterfaceScanResult(struct IWpaInterface *interface, const uint8_t *rawData);
38094332d3Sopenharmony_civoid FuzzWpaInterfaceAddNetwork(struct IWpaInterface *interface, const uint8_t *rawData);
39094332d3Sopenharmony_civoid FuzzWpaInterfaceRemoveNetwork(struct IWpaInterface *interface, const uint8_t *rawData);
40094332d3Sopenharmony_civoid FuzzWpaInterfaceDisableNetwork(struct IWpaInterface *interface, const uint8_t *rawData);
41094332d3Sopenharmony_civoid FuzzWpaInterfaceSetNetwork(struct IWpaInterface *interface, const uint8_t *rawData);
42094332d3Sopenharmony_civoid FuzzWpaInterfaceReconnect(struct IWpaInterface *interface, const uint8_t *rawData);
43094332d3Sopenharmony_civoid FuzzWpaInterfaceDisconnect(struct IWpaInterface *interface, const uint8_t *rawData);
44094332d3Sopenharmony_civoid FuzzWpaInterfaceSelectNetwork(struct IWpaInterface *interface, const uint8_t *rawData);
45094332d3Sopenharmony_civoid FuzzWpaInterfaceEnableNetwork(struct IWpaInterface *interface, const uint8_t *rawData);
46094332d3Sopenharmony_civoid FuzzWpaInterfaceSetPowerSave(struct IWpaInterface *interface, const uint8_t *rawData);
47094332d3Sopenharmony_civoid FuzzWpaInterfaceAutoConnect(struct IWpaInterface *interface, const uint8_t *rawData);
48094332d3Sopenharmony_civoid FuzzWpaInterfaceSaveConfig(struct IWpaInterface *interface, const uint8_t *rawData);
49094332d3Sopenharmony_civoid FuzzWpaInterfaceWpsCancel(struct IWpaInterface *interface, const uint8_t *rawData);
50094332d3Sopenharmony_civoid FuzzWpaInterfaceGetCountryCode(struct IWpaInterface *interface, const uint8_t *rawData);
51094332d3Sopenharmony_civoid FuzzWpaInterfaceGetNetwork(struct IWpaInterface *interface, const uint8_t *rawData);
52094332d3Sopenharmony_civoid FuzzWpaInterfaceBlocklistClear(struct IWpaInterface *interface, const uint8_t *rawData);
53094332d3Sopenharmony_civoid FuzzWpaInterfaceSetSuspendMode(struct IWpaInterface *interface, const uint8_t *rawData);
54094332d3Sopenharmony_civoid FuzzWpaInterfaceGetScanSsid(struct IWpaInterface *interface, const uint8_t *rawData);
55094332d3Sopenharmony_civoid FuzzWpaInterfaceGetPskPassphrase(struct IWpaInterface *interface, const uint8_t *rawData);
56094332d3Sopenharmony_civoid FuzzWpaInterfaceGetPsk(struct IWpaInterface *interface, const uint8_t *rawData);
57094332d3Sopenharmony_civoid FuzzWpaInterfaceGetWepKey(struct IWpaInterface *interface, const uint8_t *rawData);
58094332d3Sopenharmony_civoid FuzzWpaInterfaceGetWepTxKeyIdx(struct IWpaInterface *interface, const uint8_t *rawData);
59094332d3Sopenharmony_civoid FuzzWpaInterfaceGetRequirePmf(struct IWpaInterface *interface, const uint8_t *rawData);
60094332d3Sopenharmony_civoid FuzzWpaInterfaceSetCountryCode(struct IWpaInterface *interface, const uint8_t *rawData);
61094332d3Sopenharmony_civoid FuzzWpaInterfaceListNetworks(struct IWpaInterface *interface, const uint8_t *rawData);
62094332d3Sopenharmony_civoid FuzzWpaInterfaceWifiStatus(struct IWpaInterface *interface, const uint8_t *rawData);
63094332d3Sopenharmony_civoid FuzzWpaInterfaceWpsPbcMode(struct IWpaInterface *interface, const uint8_t *rawData);
64094332d3Sopenharmony_civoid FuzzWpaInterfaceWpsPinMode(struct IWpaInterface *interface, const uint8_t *rawData);
65094332d3Sopenharmony_civoid FuzzWpaInterfaceRegisterEventCallback(struct IWpaInterface *interface, const uint8_t *rawData);
66094332d3Sopenharmony_civoid FuzzWpaInterfaceUnregisterEventCallback(struct IWpaInterface *interface, const uint8_t *rawData);
67094332d3Sopenharmony_civoid FuzzWpaInterfaceGetConnectionCapabilities(struct IWpaInterface *interface, const uint8_t *rawData);
68094332d3Sopenharmony_civoid FuzzWpaInterfaceAddWpaIface(struct IWpaInterface *interface, const uint8_t *rawData);
69094332d3Sopenharmony_civoid FuzzWpaInterfaceRemoveWpaIface(struct IWpaInterface *interface, const uint8_t *rawData);
70094332d3Sopenharmony_civoid FuzzWpaInterfaceReassociate(struct IWpaInterface *interface, const uint8_t *rawData);
71094332d3Sopenharmony_civoid FuzzWpaInterfaceStaShellCmd(struct IWpaInterface *interface, const uint8_t *rawData);
72094332d3Sopenharmony_ci
73094332d3Sopenharmony_ci
74094332d3Sopenharmony_ci/* **********P2p Interface********** */
75094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetSsidPostfixName(struct IWpaInterface *interface, const uint8_t *rawData);
76094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetWpsDeviceType(struct IWpaInterface *interface, const uint8_t *rawData);
77094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetWpsConfigMethods(struct IWpaInterface *interface, const uint8_t *rawData);
78094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetGroupMaxIdle(struct IWpaInterface *interface, const uint8_t *rawData);
79094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetWfdEnable(struct IWpaInterface *interface, const uint8_t *rawData);
80094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetPersistentReconnect(struct IWpaInterface *interface, const uint8_t *rawData);
81094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetWpsSecondaryDeviceType(struct IWpaInterface *interface, const uint8_t *rawData);
82094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetupWpsPbc(struct IWpaInterface *interface, const uint8_t *rawData);
83094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetupWpsPin(struct IWpaInterface *interface, const uint8_t *rawData);
84094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetPowerSave(struct IWpaInterface *interface, const uint8_t *rawData);
85094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetDeviceName(struct IWpaInterface *interface, const uint8_t *rawData);
86094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetWfdDeviceConfig(struct IWpaInterface *interface, const uint8_t *rawData);
87094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetRandomMac(struct IWpaInterface *interface, const uint8_t *rawData);
88094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pStartFind(struct IWpaInterface *interface, const uint8_t *rawData);
89094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetExtListen(struct IWpaInterface *interface, const uint8_t *rawData);
90094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetListenChannel(struct IWpaInterface *interface, const uint8_t *rawData);
91094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pProvisionDiscovery(struct IWpaInterface *interface, const uint8_t *rawData);
92094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pAddGroup(struct IWpaInterface *interface, const uint8_t *rawData);
93094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pAddService(struct IWpaInterface *interface, const uint8_t *rawData);
94094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pRemoveService(struct IWpaInterface *interface, const uint8_t *rawData);
95094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pStopFind(struct IWpaInterface *interface, const uint8_t *rawData);
96094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pFlush(struct IWpaInterface *interface, const uint8_t *rawData);
97094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pFlushService(struct IWpaInterface *interface, const uint8_t *rawData);
98094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pRemoveNetwork(struct IWpaInterface *interface, const uint8_t *rawData);
99094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetGroupConfig(struct IWpaInterface *interface, const uint8_t *rawData);
100094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pInvite(struct IWpaInterface *interface, const uint8_t *rawData);
101094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pReinvoke(struct IWpaInterface *interface, const uint8_t *rawData);
102094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pGetDeviceAddress(struct IWpaInterface *interface, const uint8_t *rawData);
103094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pReqServiceDiscovery(struct IWpaInterface *interface, const uint8_t *rawData);
104094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pCancelServiceDiscovery(struct IWpaInterface *interface, const uint8_t *rawData);
105094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pRespServerDiscovery(struct IWpaInterface *interface, const uint8_t *rawData);
106094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pConnect(struct IWpaInterface *interface, const uint8_t *rawData);
107094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pHid2dConnect(struct IWpaInterface *interface, const uint8_t *rawData);
108094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSetServDiscExternal(struct IWpaInterface *interface, const uint8_t *rawData);
109094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pRemoveGroup(struct IWpaInterface *interface, const uint8_t *rawData);
110094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pCancelConnect(struct IWpaInterface *interface, const uint8_t *rawData);
111094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pGetGroupConfig(struct IWpaInterface *interface, const uint8_t *rawData);
112094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pAddNetwork(struct IWpaInterface *interface, const uint8_t *rawData);
113094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pGetPeer(struct IWpaInterface *interface, const uint8_t *rawData);
114094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pGetGroupCapability(struct IWpaInterface *interface, const uint8_t *rawData);
115094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pListNetworks(struct IWpaInterface *interface, const uint8_t *rawData);
116094332d3Sopenharmony_civoid FuzzWpaInterfaceP2pSaveConfig(struct IWpaInterface *interface, const uint8_t *rawData);
117094332d3Sopenharmony_ci
118094332d3Sopenharmony_ci#endif // WPA_COMMON_FUZZER_H