16ea96550Sopenharmony_ci/* 26ea96550Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 36ea96550Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 46ea96550Sopenharmony_ci * you may not use this file except in compliance with the License. 56ea96550Sopenharmony_ci * You may obtain a copy of the License at 66ea96550Sopenharmony_ci * 76ea96550Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 86ea96550Sopenharmony_ci * 96ea96550Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 106ea96550Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 116ea96550Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 126ea96550Sopenharmony_ci * See the License for the specific language governing permissions and 136ea96550Sopenharmony_ci * limitations under the License. 146ea96550Sopenharmony_ci */ 156ea96550Sopenharmony_ci 166ea96550Sopenharmony_ci#ifndef SECURITY_GUARD_CONFIG_DEFINE_H 176ea96550Sopenharmony_ci#define SECURITY_GUARD_CONFIG_DEFINE_H 186ea96550Sopenharmony_ci 196ea96550Sopenharmony_ci#include <string> 206ea96550Sopenharmony_ci#include <vector> 216ea96550Sopenharmony_ci 226ea96550Sopenharmony_cinamespace OHOS::Security::SecurityGuard { 236ea96550Sopenharmony_ciusing Field = struct { 246ea96550Sopenharmony_ci std::string fieldName; 256ea96550Sopenharmony_ci std::string fieldType; 266ea96550Sopenharmony_ci std::string value; 276ea96550Sopenharmony_ci}; 286ea96550Sopenharmony_ci 296ea96550Sopenharmony_ciusing Rule = struct { 306ea96550Sopenharmony_ci int64_t eventId; 316ea96550Sopenharmony_ci std::vector<Field> fields; 326ea96550Sopenharmony_ci std::string fieldsRelation; 336ea96550Sopenharmony_ci}; 346ea96550Sopenharmony_ci 356ea96550Sopenharmony_ciusing BuildInDetectionCfg = struct { 366ea96550Sopenharmony_ci std::vector<Rule> rules; 376ea96550Sopenharmony_ci std::string rulesRelation; 386ea96550Sopenharmony_ci std::string trueResult; 396ea96550Sopenharmony_ci std::string falseResult; 406ea96550Sopenharmony_ci}; 416ea96550Sopenharmony_ci 426ea96550Sopenharmony_ciusing AppDetectionCfg = struct { 436ea96550Sopenharmony_ci std::string detectionCategory; 446ea96550Sopenharmony_ci std::string configFileName; 456ea96550Sopenharmony_ci std::string trueResult; 466ea96550Sopenharmony_ci std::string falseResult; 476ea96550Sopenharmony_ci}; 486ea96550Sopenharmony_ci 496ea96550Sopenharmony_ciusing AppAttribute = enum { 506ea96550Sopenharmony_ci NORMAL, 516ea96550Sopenharmony_ci PAYMENT, 526ea96550Sopenharmony_ci MALICIOUS, 536ea96550Sopenharmony_ci MONITORING, 546ea96550Sopenharmony_ci ATTRMAX 556ea96550Sopenharmony_ci}; 566ea96550Sopenharmony_ci 576ea96550Sopenharmony_ciusing AppInfo = struct { 586ea96550Sopenharmony_ci std::string appName; 596ea96550Sopenharmony_ci std::string appHash; 606ea96550Sopenharmony_ci std::vector<std::string> attrs; 616ea96550Sopenharmony_ci int isGlobalApp; 626ea96550Sopenharmony_ci int isUpdate; 636ea96550Sopenharmony_ci}; 646ea96550Sopenharmony_ci 656ea96550Sopenharmony_ciusing ModelCfg = struct { 666ea96550Sopenharmony_ci uint32_t modelId; 676ea96550Sopenharmony_ci std::string path; 686ea96550Sopenharmony_ci std::string format; 696ea96550Sopenharmony_ci uint32_t startMode; 706ea96550Sopenharmony_ci std::vector<int64_t> preload; 716ea96550Sopenharmony_ci std::vector<int64_t> eventList; 726ea96550Sopenharmony_ci std::string permissions; 736ea96550Sopenharmony_ci std::string dbTable; 746ea96550Sopenharmony_ci uint32_t runningCntl; 756ea96550Sopenharmony_ci std::vector<std::string> caller; 766ea96550Sopenharmony_ci std::string type; 776ea96550Sopenharmony_ci BuildInDetectionCfg config; 786ea96550Sopenharmony_ci AppDetectionCfg appDetectionConfig; 796ea96550Sopenharmony_ci}; 806ea96550Sopenharmony_ci 816ea96550Sopenharmony_cienum class EventTypeEnum { 826ea96550Sopenharmony_ci NORMALE_COLL = 0, 836ea96550Sopenharmony_ci QUERY_COLL = 1, 846ea96550Sopenharmony_ci START_STOP_COLL = 2, 856ea96550Sopenharmony_ci SUBSCRIBE_COLL = 3 866ea96550Sopenharmony_ci}; 876ea96550Sopenharmony_ci 886ea96550Sopenharmony_ci 896ea96550Sopenharmony_ciusing DataMgrCfgSt = struct { 906ea96550Sopenharmony_ci uint32_t deviceRom; 916ea96550Sopenharmony_ci uint32_t deviceRam; 926ea96550Sopenharmony_ci uint32_t eventMaxRamNum; 936ea96550Sopenharmony_ci uint32_t eventMaxRomNum; 946ea96550Sopenharmony_ci std::string prog; 956ea96550Sopenharmony_ci}; 966ea96550Sopenharmony_ci 976ea96550Sopenharmony_ciusing EventContentSt = struct { 986ea96550Sopenharmony_ci uint32_t status; 996ea96550Sopenharmony_ci uint32_t cred; 1006ea96550Sopenharmony_ci std::string extra; 1016ea96550Sopenharmony_ci}; 1026ea96550Sopenharmony_ci 1036ea96550Sopenharmony_ciusing SecEvent = struct { 1046ea96550Sopenharmony_ci int64_t eventId; 1056ea96550Sopenharmony_ci std::string version; 1066ea96550Sopenharmony_ci std::string date; 1076ea96550Sopenharmony_ci std::string content; 1086ea96550Sopenharmony_ci int32_t eventType; 1096ea96550Sopenharmony_ci int32_t dataSensitivityLevel; 1106ea96550Sopenharmony_ci std::string owner; 1116ea96550Sopenharmony_ci int32_t userId; 1126ea96550Sopenharmony_ci std::string deviceId; 1136ea96550Sopenharmony_ci}; 1146ea96550Sopenharmony_ci 1156ea96550Sopenharmony_ciusing StartMode = enum { 1166ea96550Sopenharmony_ci NOT_SUPPORT, 1176ea96550Sopenharmony_ci START_ON_STARTUP, 1186ea96550Sopenharmony_ci START_ON_DEMAND 1196ea96550Sopenharmony_ci}; 1206ea96550Sopenharmony_ci 1216ea96550Sopenharmony_ciusing DataSource = enum { 1226ea96550Sopenharmony_ci USER_SOURCE, 1236ea96550Sopenharmony_ci KERNEL_SOURCE, 1246ea96550Sopenharmony_ci MODEL_SOURCE, 1256ea96550Sopenharmony_ci HIVIEW_SOURCE 1266ea96550Sopenharmony_ci}; 1276ea96550Sopenharmony_ci 1286ea96550Sopenharmony_ciusing LoadMode = enum { 1296ea96550Sopenharmony_ci INIT_MODE, 1306ea96550Sopenharmony_ci UPDATE_MODE 1316ea96550Sopenharmony_ci}; 1326ea96550Sopenharmony_ci 1336ea96550Sopenharmony_ciusing PathIndex = enum { 1346ea96550Sopenharmony_ci EVENT_CFG_INDEX, 1356ea96550Sopenharmony_ci MODEL_CFG_INDEX, 1366ea96550Sopenharmony_ci SIG_RULE_CFG_INDEX, 1376ea96550Sopenharmony_ci URL_RULE_CFG_INDEX, 1386ea96550Sopenharmony_ci LOCAL_APP_CFG_INDEX, 1396ea96550Sopenharmony_ci GLOBAL_APP_CFG_INDEX, 1406ea96550Sopenharmony_ci RELATED_EVENT_ANALYSIS_CFG_INDEX 1416ea96550Sopenharmony_ci}; 1426ea96550Sopenharmony_ci 1436ea96550Sopenharmony_ciconst std::vector<std::string> CONFIG_CACHE_FILES = { 1446ea96550Sopenharmony_ci "/data/service/el1/public/security_guard/tmp/security_guard_event.json", 1456ea96550Sopenharmony_ci "/data/service/el1/public/security_guard/tmp/security_guard_model.cfg", 1466ea96550Sopenharmony_ci "/data/service/el1/public/security_guard/tmp/signature_rule.json", 1476ea96550Sopenharmony_ci "/data/service/el1/public/security_guard/tmp/url_rule.json", 1486ea96550Sopenharmony_ci "/data/service/el1/public/security_guard/tmp/local_app_attribute.json", 1496ea96550Sopenharmony_ci "/data/service/el1/public/security_guard/tmp/global_app_attribute.json", 1506ea96550Sopenharmony_ci "/data/service/el1/public/security_guard/tmp/related_event_analysis.json" 1516ea96550Sopenharmony_ci}; 1526ea96550Sopenharmony_ci 1536ea96550Sopenharmony_ciconst std::vector<std::string> CONFIG_UPTATE_FILES = { 1546ea96550Sopenharmony_ci "/data/service/el1/public/security_guard/security_guard_event.json", 1556ea96550Sopenharmony_ci "/data/service/el1/public/security_guard/security_guard_model.cfg", 1566ea96550Sopenharmony_ci "/data/service/el1/public/security_guard/signature_rule.json", 1576ea96550Sopenharmony_ci "/data/service/el1/public/security_guard/url_rule.json", 1586ea96550Sopenharmony_ci "/data/service/el1/public/security_guard/local_app_attr.json", 1596ea96550Sopenharmony_ci "/data/service/el1/public/security_guard/global_app_attr.json", 1606ea96550Sopenharmony_ci "/data/service/el1/public/security_guard/related_event_analysis.json" 1616ea96550Sopenharmony_ci}; 1626ea96550Sopenharmony_ci 1636ea96550Sopenharmony_ciconst std::vector<std::string> CONFIG_PRESET_FILES = { 1646ea96550Sopenharmony_ci "/system/etc/security_guard_event.json", 1656ea96550Sopenharmony_ci "/system/etc/security_guard_model.cfg" 1666ea96550Sopenharmony_ci}; 1676ea96550Sopenharmony_ci 1686ea96550Sopenharmony_ciconst std::string CONFIG_ROOT_PATH = "/data/service/el1/public/security_guard/"; 1696ea96550Sopenharmony_ci} // namespace OHOS::Security::SecurityGuard 1706ea96550Sopenharmony_ci 1716ea96550Sopenharmony_ci#endif // SECURITY_GUARD_CONFIG_DEFINE_H 172