122736c2fSopenharmony_ci/* 222736c2fSopenharmony_ci * Copyright (c) 2022-2023 Huawei Device Co., Ltd. 322736c2fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 422736c2fSopenharmony_ci * you may not use this file except in compliance with the License. 522736c2fSopenharmony_ci * You may obtain a copy of the License at 622736c2fSopenharmony_ci * 722736c2fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 822736c2fSopenharmony_ci * 922736c2fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1022736c2fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1122736c2fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1222736c2fSopenharmony_ci * See the License for the specific language governing permissions and 1322736c2fSopenharmony_ci * limitations under the License. 1422736c2fSopenharmony_ci */ 1522736c2fSopenharmony_ci#define private public 1622736c2fSopenharmony_ci#define protected public 1722736c2fSopenharmony_ci#include "security_mode_parser.h" 1822736c2fSopenharmony_ci#undef private 1922736c2fSopenharmony_ci 2022736c2fSopenharmony_ci#include "securitymodeparser_fuzzer.h" 2122736c2fSopenharmony_ci 2222736c2fSopenharmony_ciusing namespace OHOS::MiscServices; 2322736c2fSopenharmony_cinamespace OHOS { 2422736c2fSopenharmony_civoid FuzzInitialize(const int32_t userId) 2522736c2fSopenharmony_ci{ 2622736c2fSopenharmony_ci SecurityModeParser::GetInstance()->Initialize(userId); 2722736c2fSopenharmony_ci} 2822736c2fSopenharmony_ci 2922736c2fSopenharmony_civoid FuzzGetSecurityMode(const std::string &bundleName, const int32_t userId) 3022736c2fSopenharmony_ci{ 3122736c2fSopenharmony_ci SecurityModeParser::GetInstance()->GetSecurityMode(bundleName, userId); 3222736c2fSopenharmony_ci} 3322736c2fSopenharmony_ci 3422736c2fSopenharmony_civoid FuzzUpdateFullModeList(const int32_t userId) 3522736c2fSopenharmony_ci{ 3622736c2fSopenharmony_ci SecurityModeParser::GetInstance()->UpdateFullModeList(userId); 3722736c2fSopenharmony_ci} 3822736c2fSopenharmony_ci 3922736c2fSopenharmony_civoid FuzzParseSecurityMode(const std::string &bundleName, const int32_t userId) 4022736c2fSopenharmony_ci{ 4122736c2fSopenharmony_ci SecurityModeParser::GetInstance()->ParseSecurityMode(bundleName, userId); 4222736c2fSopenharmony_ci} 4322736c2fSopenharmony_ci 4422736c2fSopenharmony_civoid FuzzIsFullMode(const std::string &bundleName) 4522736c2fSopenharmony_ci{ 4622736c2fSopenharmony_ci SecurityModeParser::GetInstance()->IsFullMode(bundleName); 4722736c2fSopenharmony_ci} 4822736c2fSopenharmony_ci 4922736c2fSopenharmony_ci} // namespace OHOS 5022736c2fSopenharmony_ci/* Fuzzer entry point */ 5122736c2fSopenharmony_ciextern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) 5222736c2fSopenharmony_ci{ 5322736c2fSopenharmony_ci if (data == nullptr) { 5422736c2fSopenharmony_ci return 0; 5522736c2fSopenharmony_ci } 5622736c2fSopenharmony_ci /* Run your code on data */ 5722736c2fSopenharmony_ci const int32_t userId = static_cast<int32_t>(size); 5822736c2fSopenharmony_ci std::string fuzzedString(reinterpret_cast<const char *>(data), size); 5922736c2fSopenharmony_ci 6022736c2fSopenharmony_ci OHOS::FuzzInitialize(userId); 6122736c2fSopenharmony_ci OHOS::FuzzGetSecurityMode(fuzzedString, userId); 6222736c2fSopenharmony_ci OHOS::FuzzUpdateFullModeList(userId); 6322736c2fSopenharmony_ci OHOS::FuzzParseSecurityMode(fuzzedString, userId); 6422736c2fSopenharmony_ci OHOS::FuzzIsFullMode(fuzzedString); 6522736c2fSopenharmony_ci return 0; 6622736c2fSopenharmony_ci} 67