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