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