Add new privilege for web API
[platform/framework/native/appfw.git] / src / security / inc / FSec_AccessControlTypes.h
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Apache License, Version 2.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //     http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16
17 /**
18  * @file        FSec_AccessControlTypes.h
19  * @brief       This is the header file for the _AccessControl.
20  * This header file contains the declarations of the _AccessControl.
21  */
22
23 #ifndef _FSEC_INTERNAL_ACCESS_CONTROL_TYPES_H_
24 #define _FSEC_INTERNAL_ACCESS_CONTROL_TYPES_H_
25
26 #include <FAppTypes.h>
27 #include <FBaseInternalTypes.h>
28
29 namespace Tizen { namespace Security
30 {
31
32 enum _Privilege
33 {
34         _PRV_ALARM = 0,
35         _PRV_APPLICATION_KILL,
36         _PRV_APPLICATION_LAUNCH,
37         _PRV_APPMANAGER_LAUNCH,
38         _PRV_APPSETTING,
39         _PRV_APPUSAGE,
40         _PRV_AUDIOMANAGER_ROUTE,
41         _PRV_AUDIOMANAGER_SESSION,
42         _PRV_AUDIOMANAGER_VOIPSESSION,
43         _PRV_AUDIORECORDER,
44         _PRV_BLUETOOTH_ADMIN,
45         _PRV_BLUETOOTH_GAP,
46         _PRV_BLUETOOTH_HEALTH,
47         _PRV_BLUETOOTH_OPP,
48         _PRV_BLUETOOTH_SPP,
49         _PRV_BLUETOOTHMANAGER,
50         _PRV_CALENDAR_READ,
51         _PRV_CALENDAR_WRITE,
52         _PRV_CALLFORWARD,
53         _PRV_CALLHISTORY_READ,
54         _PRV_CALLHISTORY_WRITE,
55         _PRV_CAMERA,
56         _PRV_CELLBROADCAST,
57         _PRV_CERTIFICATE_READ,
58         _PRV_CERTIFICATE_WRITE,
59         _PRV_CONTACT_READ,
60         _PRV_CONTACT_WRITE,
61         _PRV_CONTENT_READ,
62         _PRV_CONTENT_WRITE,
63         _PRV_CUSTOMNETACCOUNT,
64         _PRV_DNS,
65         _PRV_DOWNLOAD,
66         _PRV_DRMSERVICE,
67         _PRV_HTTP,
68         _PRV_IME,
69         _PRV_IMEMANAGER,
70         _PRV_INPUTMANAGER,
71         _PRV_LOCATION,
72         _PRV_MESSAGING_EMAIL,
73         _PRV_MESSAGING_MMS,
74         _PRV_MESSAGING_SMS,
75         _PRV_NETWORK_ACCOUNT,
76         _PRV_NETWORK_CONNECTION,
77         _PRV_NETWORK_STATISTICS_READ,
78         _PRV_NETWORK_STATISTICS_WRITE,
79         _PRV_NETWORKMANAGER,
80         _PRV_NFC_ADMIN,
81         _PRV_NFC_CARDEMULATION,
82         _PRV_NFC_COMMON,
83         _PRV_NFC_P2P,
84         _PRV_NFC_TAG,
85         _PRV_NOTIFICATION,
86         _PRV_NOTIFICATIONMANAGER,
87         _PRV_PACKAGEINFO,
88         _PRV_PACKAGELICENSEMANAGER,
89         _PRV_PACKAGEMANAGER_INSTALL,
90         _PRV_PACKAGESETTING,
91         _PRV_PLATFORMINFO,
92         _PRV_POWER,
93         _PRV_PUSH,
94         _PRV_SETTING,
95         _PRV_SMSTRIGGER,
96         _PRV_SOCKET,
97         _PRV_SYSTEMINFO,
98         _PRV_SYSTEMSETTING_READ,
99         _PRV_SYSTEMSETTING_WRITE,
100         _PRV_TELEPHONYMANAGER,
101         _PRV_UIMANAGER,
102         _PRV_USERIDENTITY,
103         _PRV_VIBRATOR,
104         _PRV_VIDEORECORDER,
105         _PRV_WAPPUSH,
106         _PRV_WEB_PRIVACY,
107         _PRV_WEB_SERVICE,
108         _PRV_WIFI_ADMIN,
109         _PRV_WIFI_READ,
110         _PRV_WIFI_WIFIDIRECT_ADMIN,
111         _PRV_WIFI_WIFIDIRECT_READ,
112         _PRV_WIFIMANAGER,
113         _PRV_APPWIDGETPROVIDER_INSTALL,
114         _PRV_ACCOUNT_READ,
115         _PRV_ACCOUNT_WRITE,
116         _PRV_USERPROFILE_READ,
117         _PRV_USERPROFILE_WRITE,
118         _PRV_TELEPHONY,
119         _PRV_NETSTATISTICSMANAGER,
120         _PRV_NETWORK_STATISTICS,
121         _PRV_NFCMANAGER,
122         _PRV_BOOKMARK_READ,
123         _PRV_BOOKMARK_WRITE,
124         _PRV_GEOLOCATIONPERMISSION_READ,
125         _PRV_GEOLOCATIONPERMISSION_WRITE,
126         _PRV_LOCKMANAGER,
127         _PRV_SHORTCUT_INSTALL,
128         _PRV_APPMANAGER_KILL,
129         _PRV_PRIVILEGEMANAGER_READ,
130         _PRV_PRIVACYMANAGER_READ,
131         _PRV_PRIVACYMANAGER_WRITE,
132         _PRV_ANTIVIRUS,
133         _PRV_INTERNET,
134         _PRV_MESSAGING_READ,
135         _PRV_MESSAGING_WRITE,
136         _PRV_PACKAGE_INFO,
137         _PRV_PACKAGEMANAGER_INFO,
138         _PRV_PACKAGEMANAGER_SETTING,
139         _PRV_SYSTEM,
140         _PRV_SYSTEMMANAGER,
141         _PRV_SETTINGMANAGER_READ,
142         _PRV_SETTINGMANAGER_WRITE,
143         _PRV_APPMANAGER_CERTIFICATE,
144         _PRV_DATACONTROL_CONSUMER,
145         _PRV_DATASYNC,
146         _PRV_FILESYSTEM_READ,
147         _PRV_FILESYSTEM_WRITE,
148         _PRV_MESSAGEPORT,
149         _PRV_NETWORKBEARERSELECTION,
150         _PRV_APPLICATION_READ,
151         _PRV_LOG,
152         _PRV_MESSAGING_SEND,
153         _PRV_SE,
154         _PRV_SECUREELEMENT,
155         _PRV_SECURESTORAGE_READ,
156         _PRV_SECURESTORAGE_WRITE,
157         _PRV_TIME,
158         _PRV_TIZEN,
159         _PRV_MEDIACAPTURE,
160         _PRV_FULLSCREEN,
161         _PRV_UNLIMITEDSTORAGE,
162         _PRV_TESTAUTOMATION,
163         _PRV_NOTIFICATION_READ,
164         _PRV_NOTIFICATION_WRITE,
165         _PRV_APPMANAGER_SETTING,
166         _PRV_APPLICATION_INFO,
167         _PRV_WEBSETTING,
168         _MAX_PRIVILEGE_ENUM
169 };
170
171 typedef struct
172 {
173         const wchar_t* privilegeString;
174         _Privilege privilege;
175
176 } _PrivilegeStringList;
177
178 const static _PrivilegeStringList privilegeListTable[_MAX_PRIVILEGE_ENUM] =
179 {
180         {L"alarm", _PRV_ALARM},
181         {L"application.kill", _PRV_APPLICATION_KILL},
182         {L"application.launch", _PRV_APPLICATION_LAUNCH},
183         {L"appmanager.launch", _PRV_APPMANAGER_LAUNCH},
184         {L"appsetting", _PRV_APPSETTING},
185         {L"appusage", _PRV_APPUSAGE},
186         {L"audiomanager.route", _PRV_AUDIOMANAGER_ROUTE},
187         {L"audiomanager.session", _PRV_AUDIOMANAGER_SESSION},
188         {L"audiomanager.voipsession", _PRV_AUDIOMANAGER_VOIPSESSION},
189         {L"audiorecorder", _PRV_AUDIORECORDER},
190         {L"bluetooth.admin", _PRV_BLUETOOTH_ADMIN},
191         {L"bluetooth.gap", _PRV_BLUETOOTH_GAP},
192         {L"bluetooth.health", _PRV_BLUETOOTH_HEALTH},
193         {L"bluetooth.opp", _PRV_BLUETOOTH_OPP},
194         {L"bluetooth.spp", _PRV_BLUETOOTH_SPP},
195         {L"bluetoothmanager", _PRV_BLUETOOTHMANAGER},
196         {L"calendar.read", _PRV_CALENDAR_READ},
197         {L"calendar.write", _PRV_CALENDAR_WRITE},
198         {L"callforward", _PRV_CALLFORWARD},
199         {L"callhistory.read", _PRV_CALLHISTORY_READ},
200         {L"callhistory.write", _PRV_CALLHISTORY_WRITE},
201         {L"camera", _PRV_CAMERA},
202         {L"cellbroadcast", _PRV_CELLBROADCAST},
203         {L"certificate.read", _PRV_CERTIFICATE_READ},
204         {L"certificate.write", _PRV_CERTIFICATE_WRITE},
205         {L"contact.read", _PRV_CONTACT_READ},
206         {L"contact.write", _PRV_CONTACT_WRITE},
207         {L"content.read", _PRV_CONTENT_READ},
208         {L"content.write", _PRV_CONTENT_WRITE},
209         {L"customnetaccount", _PRV_CUSTOMNETACCOUNT},
210         {L"dns", _PRV_DNS},
211         {L"download", _PRV_DOWNLOAD},
212         {L"drmservice", _PRV_DRMSERVICE},
213         {L"http", _PRV_HTTP},
214         {L"ime", _PRV_IME},
215         {L"imemanager", _PRV_IMEMANAGER},
216         {L"inputmanager", _PRV_INPUTMANAGER},
217         {L"location", _PRV_LOCATION},
218         {L"messaging.email", _PRV_MESSAGING_EMAIL},
219         {L"messaging.mms", _PRV_MESSAGING_MMS},
220         {L"messaging.sms", _PRV_MESSAGING_SMS},
221         {L"network.account", _PRV_NETWORK_ACCOUNT},
222         {L"network.connection", _PRV_NETWORK_CONNECTION},
223         {L"network.statistics.read", _PRV_NETWORK_STATISTICS_READ},
224         {L"network.statistics.write", _PRV_NETWORK_STATISTICS_WRITE},
225         {L"networkmanager", _PRV_NETWORKMANAGER},
226         {L"nfc.admin", _PRV_NFC_ADMIN},
227         {L"nfc.cardemulation", _PRV_NFC_CARDEMULATION},
228         {L"nfc.common", _PRV_NFC_COMMON},
229         {L"nfc.p2p", _PRV_NFC_P2P},
230         {L"nfc.tag", _PRV_NFC_TAG},
231         {L"notification", _PRV_NOTIFICATION},
232         {L"notificationmanager", _PRV_NOTIFICATIONMANAGER},
233         {L"packageinfo", _PRV_PACKAGEINFO},
234         {L"packagelicensemanager", _PRV_PACKAGELICENSEMANAGER},
235         {L"packagemanager.install", _PRV_PACKAGEMANAGER_INSTALL},
236         {L"packagesetting", _PRV_PACKAGESETTING},
237         {L"platforminfo", _PRV_PLATFORMINFO},
238         {L"power", _PRV_POWER},
239         {L"push", _PRV_PUSH},
240         {L"setting", _PRV_SETTING},
241         {L"smstrigger", _PRV_SMSTRIGGER},
242         {L"socket", _PRV_SOCKET},
243         {L"systeminfo", _PRV_SYSTEMINFO},
244         {L"systemsetting.read", _PRV_SYSTEMSETTING_READ},
245         {L"systemsetting.write", _PRV_SYSTEMSETTING_WRITE},
246         {L"telephonymanager", _PRV_TELEPHONYMANAGER},
247         {L"uimanager", _PRV_UIMANAGER},
248         {L"useridentity", _PRV_USERIDENTITY},
249         {L"vibrator", _PRV_VIBRATOR},
250         {L"videorecorder", _PRV_VIDEORECORDER},
251         {L"wappush", _PRV_WAPPUSH},
252         {L"web.privacy", _PRV_WEB_PRIVACY},
253         {L"web.service", _PRV_WEB_SERVICE},
254         {L"wifi.admin", _PRV_WIFI_ADMIN},
255         {L"wifi.read", _PRV_WIFI_READ},
256         {L"wifi.wifidirect.admin", _PRV_WIFI_WIFIDIRECT_ADMIN},
257         {L"wifi.wifidirect.read", _PRV_WIFI_WIFIDIRECT_READ},
258         {L"wifimanager", _PRV_WIFIMANAGER},
259         {L"appwidgetprovider.install", _PRV_APPWIDGETPROVIDER_INSTALL},
260         {L"account.read", _PRV_ACCOUNT_READ},
261         {L"account.write", _PRV_ACCOUNT_WRITE},
262         {L"userprofile.read", _PRV_USERPROFILE_READ},
263         {L"userprofile.write", _PRV_USERPROFILE_WRITE},
264         {L"telephony", _PRV_TELEPHONY},
265         {L"netstatisticsmanager", _PRV_NETSTATISTICSMANAGER},
266         {L"network.statistics", _PRV_NETWORK_STATISTICS},
267         {L"nfcmanager", _PRV_NFCMANAGER},
268         {L"bookmark.read", _PRV_BOOKMARK_READ},
269         {L"bookmark.write", _PRV_BOOKMARK_WRITE},
270         {L"geolocationpermission.read", _PRV_GEOLOCATIONPERMISSION_READ},
271         {L"geolocationpermission.write", _PRV_GEOLOCATIONPERMISSION_WRITE},
272         {L"lockmanager", _PRV_LOCKMANAGER},
273         {L"shortcut.install", _PRV_SHORTCUT_INSTALL},
274         {L"appmanager.kill", _PRV_APPMANAGER_KILL},
275         {L"privilegemanager.read", _PRV_PRIVILEGEMANAGER_READ},
276         {L"privacymanager.read", _PRV_PRIVACYMANAGER_READ},
277         {L"privacymanager.write", _PRV_PRIVACYMANAGER_WRITE},
278         {L"antivirus", _PRV_ANTIVIRUS},
279         {L"internet", _PRV_INTERNET},
280         {L"messaging.read", _PRV_MESSAGING_READ},
281         {L"messaging.write", _PRV_MESSAGING_WRITE},
282         {L"package.info", _PRV_PACKAGE_INFO},
283         {L"packagemanager.info", _PRV_PACKAGEMANAGER_INFO},
284         {L"packagemanager.setting", _PRV_PACKAGEMANAGER_SETTING},
285         {L"system", _PRV_SYSTEM},
286         {L"systemmanager", _PRV_SYSTEMMANAGER},
287         {L"settingmanager.read", _PRV_SETTINGMANAGER_READ},
288         {L"settingmanager.write", _PRV_SETTINGMANAGER_WRITE},
289         {L"appmanager.certificate", _PRV_APPMANAGER_CERTIFICATE},
290         {L"datacontrol.consumer", _PRV_DATACONTROL_CONSUMER},
291         {L"datasync", _PRV_DATASYNC},
292         {L"filesystem.read", _PRV_FILESYSTEM_READ},
293         {L"filesystem.write", _PRV_FILESYSTEM_WRITE},
294         {L"messageport", _PRV_MESSAGEPORT},
295         {L"networkbearerselection", _PRV_NETWORKBEARERSELECTION},
296         {L"application.read", _PRV_APPLICATION_READ},
297         {L"log", _PRV_LOG},
298         {L"messaging.send", _PRV_MESSAGING_SEND},
299         {L"se", _PRV_SE},
300         {L"secureelement", _PRV_SECUREELEMENT},
301         {L"securestorage.read", _PRV_SECURESTORAGE_READ},
302         {L"securestorage.write", _PRV_SECURESTORAGE_WRITE},
303         {L"time", _PRV_TIME},
304         {L"tizen", _PRV_TIZEN},
305         {L"mediacapture", _PRV_MEDIACAPTURE},
306         {L"fullscreen", _PRV_FULLSCREEN},
307         {L"unlimitedstorage", _PRV_UNLIMITEDSTORAGE},
308         {L"testautomation", _PRV_TESTAUTOMATION},
309         {L"notification.read", _PRV_NOTIFICATION_READ},
310         {L"notification.write", _PRV_NOTIFICATION_WRITE},
311         {L"appmanager.setting", _PRV_APPMANAGER_SETTING},
312         {L"application.info", _PRV_APPLICATION_INFO},
313         {L"websetting", _PRV_WEBSETTING},
314 };
315
316 enum _PrivilegeApiVersion
317 {
318         _PRV_API_VER_2_0 = 0,
319         _PRV_API_VER_MAX
320 };
321
322 const static Tizen::Base::_ApiVisibility visibilityLevelListTable[_MAX_PRIVILEGE_ENUM][_PRV_API_VER_MAX] =
323 {
324         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // alarm
325         { Tizen::Base::_API_VISIBILITY_PARTNER },       // application.kill
326         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // application.launch
327         { Tizen::Base::_API_VISIBILITY_PARTNER },       // appmanager.launch
328         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // appsetting
329         { Tizen::Base::_API_VISIBILITY_PARTNER },       // appusage
330         { Tizen::Base::_API_VISIBILITY_PARTNER },       // audiomanager.route
331         { Tizen::Base::_API_VISIBILITY_PARTNER },       // audiomanager.session
332         { Tizen::Base::_API_VISIBILITY_PARTNER },       // audiomanager.voipsession
333         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // audiorecorder
334         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // bluetooth.admin
335         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // bluetooth.gap
336         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // bluetooth.health
337         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // bluetooth.opp
338         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // bluetooth.spp
339         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // bluetoothmanager
340         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // calendar.read
341         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // calendar.write
342         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // callforward
343         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // callhistory.read
344         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // callhistory.write
345         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // camera
346         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // cellbroadcast
347         { Tizen::Base::_API_VISIBILITY_PARTNER },       // certificate.read
348         { Tizen::Base::_API_VISIBILITY_PARTNER },       // certificate.write
349         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // contact.read
350         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // contact.write
351         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // content.read
352         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // content.write
353         { Tizen::Base::_API_VISIBILITY_PARTNER },       // customnetaccount
354         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // dns
355         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // download
356         { Tizen::Base::_API_VISIBILITY_PARTNER },       // drmservice
357         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // http
358         { Tizen::Base::_API_VISIBILITY_PARTNER },       // ime
359         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // imemanager
360         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // inputmanager
361         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // location
362         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // messaging.email
363         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // messaging.mms
364         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // messaging.sms
365         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // network.account
366         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // network.connection
367         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // network.statistics.read
368         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // network.statistics.write
369         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // networkmanager
370         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // nfc.admin
371         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // nfc.cardemulation
372         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // nfc.common
373         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // nfc.p2p
374         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // nfc.tag
375         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // notification
376         { Tizen::Base::_API_VISIBILITY_PARTNER },       // notificationmanager
377         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // packageinfo
378         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // packagelicensemanager
379         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // packagemanager.install
380         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // packagesetting
381         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // platforminfo
382         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // power
383         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // push
384         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // setting
385         { Tizen::Base::_API_VISIBILITY_PARTNER },       // smstrigger
386         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // socket
387         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // systeminfo
388         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // systemsetting.read
389         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // systemsetting.write
390         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // telephonymanager
391         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // uimanager
392         { Tizen::Base::_API_VISIBILITY_PARTNER },       // useridentity
393         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // vibrator
394         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // videorecorder
395         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // wappush
396         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // web.privacy
397         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // web.service
398         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // wifi.admin
399         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // wifi.read
400         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // wifi.wifidirect.admin
401         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // wifi.wifidirect.read
402         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // wifimanager
403         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // appwidgetprovider.install
404         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // account.read
405         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // account.write
406         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // userprofile.read
407         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // userprofile.write
408         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // telephony
409         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // netstatisticsmanager
410         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // network.statistics
411         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // nfcmanager
412         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // bookmark.read
413         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // bookmark.write
414         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // geolocationpermission.read
415         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // geolocationpermission.write
416         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // lockmanager
417         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // shortcut.install
418         { Tizen::Base::_API_VISIBILITY_PARTNER },       // appmanager.kill
419         { Tizen::Base::_API_VISIBILITY_PARTNER },       // privilegemanager.read
420         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // privacymanager.read
421         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // privacymanager.write
422         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // antivirus
423         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // internet
424         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // messaging.read
425         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // messaging.write
426         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // package.info
427         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // packagemanager.info
428         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // packagemanager.setting
429         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // system
430         { Tizen::Base::_API_VISIBILITY_PARTNER },       // systemmanager
431         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // settingmanager.read
432         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // settingmanager.write
433         { Tizen::Base::_API_VISIBILITY_PARTNER },       // appmanager.certificate
434         { Tizen::Base::_API_VISIBILITY_PARTNER },       // datacontrol.consumer
435         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // datasync
436         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // filesystem.read
437         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // filesystem.write
438         { Tizen::Base::_API_VISIBILITY_PARTNER },       // messageport
439         { Tizen::Base::_API_VISIBILITY_PARTNER },       // networkbearerselection
440         { Tizen::Base::_API_VISIBILITY_PARTNER },       // application.read
441         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // log
442         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // messaging.send
443         { Tizen::Base::_API_VISIBILITY_PARTNER },       // se
444         { Tizen::Base::_API_VISIBILITY_PARTNER },       // secureelement
445         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // securestorage.read
446         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // securestorage.write
447         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // time
448         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // tizen
449         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // mediacapture
450         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // fullscreen
451         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // unlimitedstorage
452         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // testautomation
453         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // notification.read
454         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // notification.write
455         { Tizen::Base::_API_VISIBILITY_PLATFORM },      // appmanager.setting
456         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // application.info
457         { Tizen::Base::_API_VISIBILITY_PUBLIC },        // websetting
458 };
459
460 enum _PrivilegeLevel
461 {
462         _PRV_LEVEL_USER = 0,
463         _PRV_LEVEL_SYSTEM
464 };
465
466 const static _PrivilegeLevel privilegeLevelListTable[_MAX_PRIVILEGE_ENUM][_PRV_API_VER_MAX] =
467 {
468         { _PRV_LEVEL_USER },    // alarm
469         { _PRV_LEVEL_SYSTEM },  // application.kill
470         { _PRV_LEVEL_USER },    // application.launch
471         { _PRV_LEVEL_SYSTEM },  // appmanager.launch
472         { _PRV_LEVEL_USER },    // appsetting
473         { _PRV_LEVEL_USER },    // appusage
474         { _PRV_LEVEL_USER },    // audiomanager.route
475         { _PRV_LEVEL_USER },    // audiomanager.session
476         { _PRV_LEVEL_USER },    // audiomanager.voipsession
477         { _PRV_LEVEL_USER },    // audiorecorder
478         { _PRV_LEVEL_USER },    // bluetooth.admin
479         { _PRV_LEVEL_USER },    // bluetooth.gap
480         { _PRV_LEVEL_USER },    // bluetooth.health
481         { _PRV_LEVEL_USER },    // bluetooth.opp
482         { _PRV_LEVEL_USER },    // bluetooth.spp
483         { _PRV_LEVEL_SYSTEM },  // bluetoothmanager
484         { _PRV_LEVEL_USER },    // calendar.read
485         { _PRV_LEVEL_USER },    // calendar.write
486         { _PRV_LEVEL_SYSTEM },  // callforward
487         { _PRV_LEVEL_USER },    // callhistory.read
488         { _PRV_LEVEL_USER },    // callhistory.write
489         { _PRV_LEVEL_USER },    // camera
490         { _PRV_LEVEL_USER },    // cellbroadcast
491         { _PRV_LEVEL_SYSTEM },  // certificate.read
492         { _PRV_LEVEL_SYSTEM },  // certificate.write
493         { _PRV_LEVEL_USER },    // contact.read
494         { _PRV_LEVEL_USER },    // contact.write
495         { _PRV_LEVEL_USER },    // content.read
496         { _PRV_LEVEL_USER },    // content.write
497         { _PRV_LEVEL_USER },    // customnetaccount
498         { _PRV_LEVEL_USER },    // dns
499         { _PRV_LEVEL_USER },    // download
500         { _PRV_LEVEL_USER },    // drmservice
501         { _PRV_LEVEL_USER },    // http
502         { _PRV_LEVEL_USER },    // ime
503         { _PRV_LEVEL_SYSTEM },  // imemanager
504         { _PRV_LEVEL_USER },    // inputmanager
505         { _PRV_LEVEL_USER },    // location
506         { _PRV_LEVEL_USER },    // messaging.email
507         { _PRV_LEVEL_USER },    // messaging.mms
508         { _PRV_LEVEL_USER },    // messaging.sms
509         { _PRV_LEVEL_USER },    // network.account
510         { _PRV_LEVEL_USER },    // network.connection
511         { _PRV_LEVEL_USER },    // network.statistics.read
512         { _PRV_LEVEL_USER },    // network.statistics.write
513         { _PRV_LEVEL_SYSTEM },  // networkmanager
514         { _PRV_LEVEL_USER },    // nfc.admin
515         { _PRV_LEVEL_USER },    // nfc.cardemulation
516         { _PRV_LEVEL_USER },    // nfc.common
517         { _PRV_LEVEL_USER },    // nfc.p2p
518         { _PRV_LEVEL_USER },    // nfc.tag
519         { _PRV_LEVEL_USER },    // notification
520         { _PRV_LEVEL_USER },    // notificationmanager
521         { _PRV_LEVEL_USER },    // packageinfo
522         { _PRV_LEVEL_USER },    // packagelicensemanager
523         { _PRV_LEVEL_SYSTEM },  // packagemanager.install
524         { _PRV_LEVEL_USER },    // packagesetting
525         { _PRV_LEVEL_USER },    // platforminfo
526         { _PRV_LEVEL_USER },    // power
527         { _PRV_LEVEL_USER },    // push
528         { _PRV_LEVEL_USER },    // setting
529         { _PRV_LEVEL_USER },    // smstrigger
530         { _PRV_LEVEL_USER },    // socket
531         { _PRV_LEVEL_USER },    // systeminfo
532         { _PRV_LEVEL_SYSTEM },  // systemsetting.read
533         { _PRV_LEVEL_SYSTEM },  // systemsetting.write
534         { _PRV_LEVEL_SYSTEM },  // telephonymanager
535         { _PRV_LEVEL_SYSTEM },  // uimanager
536         { _PRV_LEVEL_SYSTEM },  // useridentity
537         { _PRV_LEVEL_USER },    // vibrator
538         { _PRV_LEVEL_USER },    // videorecorder
539         { _PRV_LEVEL_USER },    // wappush
540         { _PRV_LEVEL_USER },    // web.privacy
541         { _PRV_LEVEL_USER },    // web.service
542         { _PRV_LEVEL_USER },    // wifi.admin
543         { _PRV_LEVEL_USER },    // wifi.read
544         { _PRV_LEVEL_USER },    // wifi.wifidirect.admin
545         { _PRV_LEVEL_USER },    // wifi.wifidirect.read
546         { _PRV_LEVEL_SYSTEM },  // wifimanager
547         { _PRV_LEVEL_USER },    // appwidgetprovider.install
548         { _PRV_LEVEL_USER },    // account.read
549         { _PRV_LEVEL_USER },    // account.write
550         { _PRV_LEVEL_USER },    // userprofile.read
551         { _PRV_LEVEL_USER },    // userprofile.write
552         { _PRV_LEVEL_USER },    // telephony
553         { _PRV_LEVEL_SYSTEM },  // netstatisticsmanager
554         { _PRV_LEVEL_USER },    // network.statistics
555         { _PRV_LEVEL_SYSTEM },  // nfcmanager
556         { _PRV_LEVEL_SYSTEM },  // bookmark.read
557         { _PRV_LEVEL_SYSTEM },  // bookmark.write
558         { _PRV_LEVEL_SYSTEM },  // geolocationpermission.read
559         { _PRV_LEVEL_SYSTEM },  // geolocationpermission.write
560         { _PRV_LEVEL_SYSTEM },  // lockmanager
561         { _PRV_LEVEL_USER },    // shortcut.install
562         { _PRV_LEVEL_SYSTEM },  // appmanager.kill
563         { _PRV_LEVEL_SYSTEM },  // privilegemanager.read
564         { _PRV_LEVEL_SYSTEM },  // privacymanager.read
565         { _PRV_LEVEL_SYSTEM },  // privacymanager.write
566         { _PRV_LEVEL_SYSTEM },  // antivirus
567         { _PRV_LEVEL_USER },    // internet
568         { _PRV_LEVEL_USER },    // messaging.read
569         { _PRV_LEVEL_USER },    // messaging.write
570         { _PRV_LEVEL_USER },    // package.info
571         { _PRV_LEVEL_SYSTEM },  // packagemanager.info
572         { _PRV_LEVEL_SYSTEM },  // packagemanager.setting
573         { _PRV_LEVEL_USER },    // system
574         { _PRV_LEVEL_USER },    // systemmanager
575         { _PRV_LEVEL_SYSTEM },  // settingmanager.read
576         { _PRV_LEVEL_SYSTEM },  // settingmanager.write
577         { _PRV_LEVEL_USER },    // appmanager.certificate
578         { _PRV_LEVEL_USER },    // datacontrol.consumer
579         { _PRV_LEVEL_USER },    // datasync
580         { _PRV_LEVEL_USER },    // filesystem.read
581         { _PRV_LEVEL_USER },    // filesystem.write
582         { _PRV_LEVEL_USER },    // messageport
583         { _PRV_LEVEL_USER },    // networkbearerselection
584         { _PRV_LEVEL_SYSTEM },  // application.read
585         { _PRV_LEVEL_USER },    // log
586         { _PRV_LEVEL_USER },    // messaging.send
587         { _PRV_LEVEL_SYSTEM },  // se
588         { _PRV_LEVEL_SYSTEM },  // secureelement
589         { _PRV_LEVEL_USER },    // securestorage.read
590         { _PRV_LEVEL_USER },    // securestorage.write
591         { _PRV_LEVEL_USER },    // time
592         { _PRV_LEVEL_USER },    // tizen
593         { _PRV_LEVEL_USER },    // mediacapture
594         { _PRV_LEVEL_USER },    // fullscreen
595         { _PRV_LEVEL_USER },    // unlimitedstorage
596         { _PRV_LEVEL_SYSTEM },  // testautomation
597         { _PRV_LEVEL_USER },    // notification.read
598         { _PRV_LEVEL_USER },    // notification.write
599         { _PRV_LEVEL_SYSTEM },  // appmanager.setting
600         { _PRV_LEVEL_USER },    // application.info
601         { _PRV_LEVEL_USER },    // websetting
602 };
603
604 const static bool privacyListTable[_MAX_PRIVILEGE_ENUM][_PRV_API_VER_MAX] =
605 {
606         { false },      // alarm
607         { false },      // application.kill
608         { false },      // application.launch
609         { false },      // appmanager.launch
610         { false },      // appsetting
611         { false },      // appusage
612         { false },      // audiomanager.route
613         { false },      // audiomanager.session
614         { false },      // audiomanager.voipsession
615         { false },      // audiorecorder
616         { true },       // bluetooth.admin
617         { true },       // bluetooth.gap
618         { true },       // bluetooth.health
619         { true },       // bluetooth.opp
620         { true },       // bluetooth.spp
621         { true },       // bluetoothmanager
622         { true },       // calendar.read
623         { true },       // calendar.write
624         { false },      // callforward
625         { false },      // callhistory.read
626         { false },      // callhistory.write
627         { false },      // camera
628         { false },      // cellbroadcast
629         { false },      // certificate.read
630         { false },      // certificate.write
631         { true },       // contact.read
632         { true },       // contact.write
633         { false },      // content.read
634         { false },      // content.write
635         { false },      // customnetaccount
636         { true },       // dns
637         { true },       // download
638         { false },      // drmservice
639         { true },       // http
640         { false },      // ime
641         { false },      // imemanager
642         { false },      // inputmanager
643         { true },       // location
644         { true },       // messaging.email
645         { true },       // messaging.mms
646         { true },       // messaging.sms
647         { false },      // network.account
648         { true },       // network.connection
649         { false },      // network.statistics.read
650         { false },      // network.statistics.write
651         { false },      // networkmanager
652         { true },       // nfc.admin
653         { false },      // nfc.cardemulation
654         { true },       // nfc.common
655         { true },       // nfc.p2p
656         { true },       // nfc.tag
657         { false },      // notification
658         { false },      // notificationmanager
659         { false },      // packageinfo
660         { false },      // packagelicensemanager
661         { false },      // packagemanager.install
662         { false },      // packagesetting
663         { false },      // platforminfo
664         { false },      // power
665         { true },       // push
666         { false },      // setting
667         { false },      // smstrigger
668         { true },       // socket
669         { false },      // systeminfo
670         { false },      // systemsetting.read
671         { false },      // systemsetting.write
672         { false },      // telephonymanager
673         { false },      // uimanager
674         { false },      // useridentity
675         { false },      // vibrator
676         { false },      // videorecorder
677         { false },      // wappush
678         { false },      // web.privacy
679         { true },       // web.service
680         { false },      // wifi.admin
681         { false },      // wifi.read
682         { true },       // wifi.wifidirect.admin
683         { true },       // wifi.wifidirect.read
684         { false },      // wifimanager
685         { false },      // appwidgetprovider.install
686         { true },       // account.read
687         { true },       // account.write
688         { true },       // userprofile.read
689         { true },       // userprofile.write
690         { false },      // telephony
691         { false },      // netstatisticsmanager
692         { false },      // network.statistics
693         { false },      // nfcmanager
694         { false },      // bookmark.read
695         { false },      // bookmark.write
696         { false },      // geolocationpermission.read
697         { false },      // geolocationpermission.write
698         { false },      // lockmanager
699         { false },      // shortcut.install
700         { false },      // appmanager.kill
701         { false },      // privilegemanager.read
702         { false },      // privacymanager.read
703         { false },      // privacymanager.write
704         { false },      // antivirus
705         { true },       // internet
706         { true },       // messaging.read
707         { true },       // messaging.write
708         { false },      // package.info
709         { false },      // packagemanager.info
710         { false },      // packagemanager.setting
711         { false },      // system
712         { false },      // systemmanager
713         { false },      // settingmanager.read
714         { false },      // settingmanager.write
715         { false },      // appmanager.certificate
716         { false },      // datacontrol.consumer
717         { false },      // datasync
718         { false },      // filesystem.read
719         { false },      // filesystem.write
720         { false },      // messageport
721         { false },      // networkbearerselection
722         { false },      // application.read
723         { false },      // log
724         { true },       // messaging.send
725         { false },      // se
726         { false },      // secureelement
727         { false },      // securestorage.read
728         { false },      // securestorage.write
729         { false },      // time
730         { false },      // tizen
731         { false },      // mediacapture
732         { false },      // fullscreen
733         { false },      // unlimitedstorage
734         { false },      // testautomation
735         { false },      // notification.read
736         { false },      // notification.write
737         { false },      // appmanager.setting
738         { false },      // application.info
739         { false },      // websetting
740 };
741
742 const int MAX_BITWISE_PRIV_SIZE = (((_MAX_PRIVILEGE_ENUM - 1) / 32) + 1) * 4;
743 const int MAX_APP_ID_SIZE = 10;
744 const int MAX_CACHE_SIZE = 20;
745 const int MAX_ACTIVE_CACHE_SIZE = 5;
746
747 const int _KEY_LEN = 16;
748 const int _IV_LEN = 16;
749 const int _INFO_LEN = 16;
750 const int _BITS_IN_BYTE = 8;
751
752 };
753 } // Tizen::Security
754
755 #endif // _FSEC_INTERNAL_ACCESS_CONTROL_TYPES_H_