• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef SECURITY_GUARD_I_DATA_COLLECT_MANAGER_H
17 #define SECURITY_GUARD_I_DATA_COLLECT_MANAGER_H
18 
19 #include <cstdint>
20 
21 #include "iremote_broker.h"
22 
23 #include "data_collect_manager_service_ipc_interface_code.h"
24 #include "security_collector_subscribe_info.h"
25 #include "security_event_ruler.h"
26 #include "security_event.h"
27 #include "security_config_update_info.h"
28 #include "security_event_config.h"
29 #include "security_event_filter.h"
30 namespace OHOS::Security::SecurityGuard {
31 constexpr int32_t DATA_COLLECT_MANAGER_SA_ID = 3524;
32 
33 class IDataCollectManager : public IRemoteBroker {
34 public:
35     using InterfaceCode = DataCollectManagerInterfaceCode;
36     DECLARE_INTERFACE_DESCRIPTOR(u"OHOS.Security.DataCollectManager");
37     enum {
38         CMD_DATA_COLLECT = static_cast<uint32_t>(InterfaceCode::CMD_DATA_COLLECT),
39         CMD_DATA_REQUEST = static_cast<uint32_t>(InterfaceCode::CMD_DATA_REQUEST),
40         CMD_DATA_SUBSCRIBE = static_cast<uint32_t>(InterfaceCode::CMD_DATA_SUBSCRIBE),
41         CMD_DATA_UNSUBSCRIBE = static_cast<uint32_t>(InterfaceCode::CMD_DATA_UNSUBSCRIBE),
42         CMD_SECURITY_EVENT_QUERY = static_cast<uint32_t>(InterfaceCode::CMD_SECURITY_EVENT_QUERY),
43         CMD_SECURITY_COLLECTOR_START = static_cast<uint32_t>(InterfaceCode::CMD_SECURITY_COLLECTOR_START),
44         CMD_SECURITY_COLLECTOR_STOP = static_cast<uint32_t>(InterfaceCode::CMD_SECURITY_COLLECTOR_STOP),
45         CMD_SECURITY_CONFIG_UPDATE = static_cast<uint32_t>(InterfaceCode::CMD_SECURITY_CONFIG_UPDATE),
46         CMD_SECURITY_EVENT_CONFIG_QUERY = static_cast<uint32_t>(InterfaceCode::CMD_SECURITY_EVENT_CONFIG_QUERY),
47         CMD_SECURITY_EVENT_MUTE = static_cast<uint32_t>(InterfaceCode::CMD_SECURITY_EVENT_MUTE),
48         CMD_SECURITY_EVENT_UNMUTE = static_cast<uint32_t>(InterfaceCode::CMD_SECURITY_EVENT_UNMUTE),
49         CMD_SECURITY_EVENT_QUERY_BY_ID = static_cast<uint32_t>(InterfaceCode::CMD_SECURITY_EVENT_QUERY_BY_ID),
50     };
51 
52     virtual int32_t RequestDataSubmit(int64_t eventId, std::string &version, std::string &time,
53         std::string &content, bool isSync = true) = 0;
54     virtual int32_t RequestRiskData(std::string &devId, std::string &eventList,
55         const sptr<IRemoteObject> &callback) = 0;
56     virtual int32_t Subscribe(const SecurityCollector::SecurityCollectorSubscribeInfo &subscribeInfo,
57         const sptr<IRemoteObject> &callback) = 0;
58     virtual int32_t Unsubscribe(const SecurityCollector::SecurityCollectorSubscribeInfo &subscribeInfo,
59         const sptr<IRemoteObject> &callback) = 0;
60     virtual int32_t QuerySecurityEvent(std::vector<SecurityCollector::SecurityEventRuler> rulers,
61         const sptr<IRemoteObject> &callback, const std::string &eventGroup) = 0;
62     virtual int32_t CollectorStart(const SecurityCollector::SecurityCollectorSubscribeInfo &subscribeInfo,
63         const sptr<IRemoteObject> &callback) = 0;
64     virtual int32_t CollectorStop(const SecurityCollector::SecurityCollectorSubscribeInfo &subscribeInfo,
65         const sptr<IRemoteObject> &callback) = 0;
66     virtual int32_t ConfigUpdate(const SecurityGuard::SecurityConfigUpdateInfo &updateInfo) = 0;
67     virtual int32_t QuerySecurityEventConfig(std::string &result) = 0;
68     virtual int32_t AddFilter(const SecurityEventFilter &subscribeMute, const sptr<IRemoteObject> &callback,
69         const std::string &sdkFlag) = 0;
70     virtual int32_t RemoveFilter(const SecurityEventFilter &subscribeMute,
71         const sptr<IRemoteObject> &callback, const std::string &sdkFlag) = 0;
72     virtual int32_t QuerySecurityEventById(std::vector<SecurityCollector::SecurityEventRuler> rulers,
73         const sptr<IRemoteObject> &callback, const std::string &eventGroup) = 0;
74 };
75 
76 class IDataCollectManagerCallback : public IRemoteBroker {
77 public:
78     using InterfaceCode = DataCollectManagerCallbackInterfaceCode;
79     DECLARE_INTERFACE_DESCRIPTOR(u"OHOS.Security.DataCollectManager.Callback");
80     enum {
81         CMD_SET_REQUEST_DATA = static_cast<uint32_t>(InterfaceCode::CMD_SET_REQUEST_DATA),
82     };
83 
84     virtual int32_t ResponseRiskData(std::string &devId, std::string &riskData, uint32_t status,
85         const std::string& errMsg = "") = 0;
86 };
87 
88 class IAcquireDataCallback : public IRemoteBroker {
89 public:
90     using InterfaceCode = DataCollectManagerCallbackInterfaceCode;
91     DECLARE_INTERFACE_DESCRIPTOR(u"OHOS.Security.AcquireData.Callback");
92     enum {
93         CMD_DATA_SUBSCRIBE_CALLBACK = static_cast<uint32_t>(InterfaceCode::CMD_DATA_SUBSCRIBE_CALLBACK),
94     };
95 
96     virtual int32_t OnNotify(const std::vector<SecurityCollector::Event> &events) = 0;
97 };
98 
99 class ISecurityEventQueryCallback : public IRemoteBroker {
100 public:
101     using InterfaceCode = SecurityEventQueryCallbackInterfaceCode;
102     DECLARE_INTERFACE_DESCRIPTOR(u"OHOS.Security.SecurityEventQuery.Callback");
103     enum {
104         CMD_ON_QUERY = static_cast<uint32_t>(InterfaceCode::CMD_ON_QUERY),
105         CMD_ON_COMPLETE = static_cast<uint32_t>(InterfaceCode::CMD_ON_COMPLETE),
106         CMD_ON_ERROR = static_cast<uint32_t>(InterfaceCode::CMD_ON_ERROR),
107     };
108 
109     virtual void OnQuery(const std::vector<SecurityCollector::SecurityEvent> &events) = 0;
110     virtual void OnComplete() = 0;
111     virtual void OnError(const std::string &message) = 0;
112 };
113 } // namespace OHOS::Security::SecurityGuard
114 
115 #endif // SECURITY_GUARD_I_DATA_COLLECT_MANAGER_H