2 * Copyright (c) 2000 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
4 * Contact: Rafal Krypa <r.krypa@samsung.com>
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License
19 * @file master-service.h
20 * @author Lukasz Kostyra <l.kostyra@samsung.com>
21 * @author Rafal Krypa <r.krypa@samsung.com>
22 * @brief Implementation of security-manager master service
25 #ifndef _SECURITY_MANAGER_MASTER_SERVICE_
26 #define _SECURITY_MANAGER_MASTER_SERVICE_
28 #include "base-service.h"
30 namespace SecurityManager {
32 class MasterServiceException
35 DECLARE_EXCEPTION_TYPE(SecurityManager::Exception, Base)
36 DECLARE_EXCEPTION_TYPE(Base, InvalidAction)
40 public SecurityManager::BaseService
44 ServiceDescriptionVector GetServiceDescription();
49 * Handle request from a client
51 * @param conn Socket connection information
52 * @param buffer Raw received data buffer
53 * @param interfaceID identifier used to distinguish source socket
54 * @return true on success
56 bool processOne(const ConnectionID &conn, MessageBuffer &buffer, InterfaceID interfaceID);
59 * Process Cynara policy update during app installation/uninstallation
61 * @param buffer Raw received data buffer
62 * @param send Raw data buffer to be sent
63 * @param zoneId ID of zone which requested the call
65 void processCynaraUpdatePolicy(MessageBuffer &buffer, MessageBuffer &send,
66 const std::string &zoneId);
69 * Process Cynara user initialization
71 * @param buffer Raw received data buffer
72 * @param send Raw data buffer to be sent
74 void processCynaraUserInit(MessageBuffer &buffer, MessageBuffer &send);
77 * Process Cynara user removal
79 * @param buffer Raw received data buffer
80 * @param send Raw data buffer to be sent
82 void processCynaraUserRemove(MessageBuffer &buffer, MessageBuffer &send);
85 * Process policy update
87 * @param buffer Raw received data buffer
88 * @param send Raw data buffer to be sent
90 void processPolicyUpdate(MessageBuffer &buffer, MessageBuffer &send);
93 * Process configured policy acquisition
95 * @param buffer Raw received data buffer
96 * @param send Raw data buffer to be sent
98 void processGetConfiguredPolicy(MessageBuffer &buffer, MessageBuffer &send);
101 * Process policy acquisition from Master
103 * @param buffer Raw received data buffer
104 * @param send Raw data buffer to be sent
106 // FIXME this function is not yet implemented.
107 void processGetPolicy(MessageBuffer &buffer, MessageBuffer &send);
110 * Process policy descriptions list acquisition
112 * @param send Raw data buffer to be sent
114 void processPolicyGetDesc(MessageBuffer &send);
117 * Process SMACK rules installation for package. Map rules using Smack Namespaces.
119 * @param buffer Raw received data buffer
120 * @param send Raw data buffer to be sent
121 * @param zoneId ID of zone which requested the call
123 void processSmackInstallRules(MessageBuffer &buffer, MessageBuffer &send,
124 const std::string &zoneId);
127 * Process SMACK rules uninstallation
129 * @param buffer Raw received data buffer
130 * @param send Raw data buffer to be sent
131 * @param zoneId ID of zone which requested the call
133 void processSmackUninstallRules(MessageBuffer &buffer, MessageBuffer &send,
134 const std::string &zoneId);
137 } // namespace SecurityManager
139 #endif // _SECURITY_MANAGER_MASTER_SERVICE_