• 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 #include "accesstoken_kit.h"
17 
18 namespace OHOS {
19 namespace Security {
20 namespace AccessToken {
21 #ifdef BUNDLE_PERMISSION_DEF_LIST
22 #ifdef BUNDLE_PERMISSION_DEF_TRUE
23 static constexpr int GRANT_STATUS = 100;
24 #endif
25 #endif
AllocHapToken(const HapInfoParams & info,const HapPolicyParams & policy)26 AccessTokenIDEx AccessTokenKit::AllocHapToken(const HapInfoParams& info, const HapPolicyParams& policy)
27 {
28     AccessTokenIDEx token;
29     token.tokenIDEx = 1;
30     token.tokenIdExStruct.tokenID = 1;
31     token.tokenIdExStruct.tokenAttr = 1;
32     return token;
33 }
34 
UpdateHapToken(AccessTokenIDEx & tokenIDEx,bool isSystemApp,const std::string & appIDDesc,int32_t apiVersion,const HapPolicyParams & policy)35 int AccessTokenKit::UpdateHapToken(AccessTokenIDEx &tokenIDEx, bool isSystemApp, const std::string& appIDDesc,
36     int32_t apiVersion, const HapPolicyParams& policy)
37 {
38     if (isSystemApp) {
39         tokenIDEx.tokenIdExStruct.tokenAttr = 1;
40     } else {
41         tokenIDEx.tokenIdExStruct.tokenAttr = 0;
42     }
43     return 0;
44 }
45 
46 #ifdef BUNDLE_PERMISSION_START_FULL_FALSE
GetDefPermissions(AccessTokenID tokenID,std::vector<PermissionDef> & permList)47 int AccessTokenKit::GetDefPermissions(AccessTokenID tokenID, std::vector<PermissionDef>& permList)
48 {
49 #ifdef BUNDLE_PERMISSION_DEF_TRUE
50     PermissionDef PermissionDef;
51     PermissionDef.permissionName = "testName";
52     permList.push_back(PermissionDef);
53     return 0;
54 #else
55     return -1;
56 #endif
57 }
58 #else
GetDefPermissions(AccessTokenID tokenID,std::vector<PermissionDef> & permList)59 int AccessTokenKit::GetDefPermissions(AccessTokenID tokenID, std::vector<PermissionDef>& permList)
60 {
61     return 0;
62 }
63 #endif
64 
65 
66 #ifdef BUNDLE_PERMISSION_DEF_LIST
GetReqPermissions(AccessTokenID tokenID,std::vector<PermissionStateFull> & reqPermList,bool isSystemGrant)67 int AccessTokenKit::GetReqPermissions(AccessTokenID tokenID, std::vector<PermissionStateFull>& reqPermList,
68     bool isSystemGrant)
69 {
70     #ifdef BUNDLE_PERMISSION_DEF_TRUE
71     PermissionStateFull permissionStateFull;
72     permissionStateFull.permissionName = "testName";
73     permissionStateFull.resDeviceID.push_back("100");
74     permissionStateFull.grantStatus.push_back(GRANT_STATUS);
75     reqPermList.push_back(permissionStateFull);
76     return 0;
77     #else
78     return -1;
79     #endif
80 }
81 
GrantPermission(AccessTokenID tokenID,const std::string & permissionName,int flag)82 int AccessTokenKit::GrantPermission(AccessTokenID tokenID, const std::string& permissionName, int flag)
83 {
84     return 1;
85 }
86 
VerifyAccessToken(AccessTokenID tokenID,const std::string & permissionName)87 int AccessTokenKit::VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName)
88 {
89 #ifdef BUNDLE_PERMISSION_DEF_TRUE
90     if (permissionName == "testName") {
91         return 0;
92     } else {
93         return -1;
94     }
95 #else
96     return -1;
97 #endif
98 }
99 
GetDefPermission(const std::string & permissionName,PermissionDef & permissionDefResult)100 int AccessTokenKit::GetDefPermission(const std::string& permissionName, PermissionDef& permissionDefResult)
101 {
102     return 0;
103 }
104 
GetTokenTypeFlag(AccessTokenID tokenID)105 ATokenTypeEnum AccessTokenKit::GetTokenTypeFlag(AccessTokenID tokenID)
106 {
107     return TOKEN_SHELL;
108 }
109 #else
GetReqPermissions(AccessTokenID tokenID,std::vector<PermissionStateFull> & reqPermList,bool isSystemGrant)110 int AccessTokenKit::GetReqPermissions(AccessTokenID tokenID, std::vector<PermissionStateFull>& reqPermList,
111     bool isSystemGrant)
112 {
113     return 0;
114 }
115 
GrantPermission(AccessTokenID tokenID,const std::string & permissionName,int flag)116 int AccessTokenKit::GrantPermission(AccessTokenID tokenID, const std::string& permissionName, int flag)
117 {
118     return 0;
119 }
120 
VerifyAccessToken(AccessTokenID tokenID,const std::string & permissionName)121 int AccessTokenKit::VerifyAccessToken(AccessTokenID tokenID, const std::string& permissionName)
122 {
123     return 0;
124 }
125 
GetDefPermission(const std::string & permissionName,PermissionDef & permissionDefResult)126 int AccessTokenKit::GetDefPermission(const std::string& permissionName, PermissionDef& permissionDefResult)
127 {
128     return -1;
129 }
130 
GetTokenTypeFlag(AccessTokenID tokenID)131 ATokenTypeEnum AccessTokenKit::GetTokenTypeFlag(AccessTokenID tokenID)
132 {
133 #ifdef BUNDLE_FRAMEWORK_SYSTEM_APP_FALSE
134     return TOKEN_INVALID;
135 #else
136     return TOKEN_NATIVE;
137 #endif
138 }
139 #endif
140 
VerifyAccessToken(AccessTokenID callerTokenID,AccessTokenID firstTokenID,const std::string & permissionName)141 int AccessTokenKit::VerifyAccessToken(
142     AccessTokenID callerTokenID, AccessTokenID firstTokenID, const std::string& permissionName)
143 {
144     return 0;
145 }
146 
DeleteToken(AccessTokenID tokenID)147 int AccessTokenKit::DeleteToken(AccessTokenID tokenID)
148 {
149     return 0;
150 }
151 
ClearUserGrantedPermissionState(AccessTokenID tokenID)152 int AccessTokenKit::ClearUserGrantedPermissionState(AccessTokenID tokenID)
153 {
154     return 0;
155 }
156 
GetHapTokenID(int userID,const std::string & bundleName,int instIndex)157 AccessTokenID AccessTokenKit::GetHapTokenID(int userID, const std::string& bundleName, int instIndex)
158 {
159     return 0;
160 }
161 
GetHapTokenIDEx(int userID,const std::string & bundleName,int instIndex)162 AccessTokenIDEx AccessTokenKit::GetHapTokenIDEx(int userID, const std::string& bundleName, int instIndex)
163 {
164     AccessTokenIDEx tokenIdEx;
165     return tokenIdEx;
166 }
167 
GetNativeTokenInfo(AccessTokenID tokenID,NativeTokenInfo & nativeTokenInfo)168 int AccessTokenKit::GetNativeTokenInfo(AccessTokenID tokenID, NativeTokenInfo &nativeTokenInfo)
169 {
170     nativeTokenInfo.processName = "foundation";
171     return 0;
172 }
173 }
174 }
175 }