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