1b1b8bc3fSopenharmony_ci/* 2b1b8bc3fSopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 3b1b8bc3fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4b1b8bc3fSopenharmony_ci * you may not use this file except in compliance with the License. 5b1b8bc3fSopenharmony_ci * You may obtain a copy of the License at 6b1b8bc3fSopenharmony_ci * 7b1b8bc3fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8b1b8bc3fSopenharmony_ci * 9b1b8bc3fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10b1b8bc3fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11b1b8bc3fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12b1b8bc3fSopenharmony_ci * See the License for the specific language governing permissions and 13b1b8bc3fSopenharmony_ci * limitations under the License. 14b1b8bc3fSopenharmony_ci */ 15b1b8bc3fSopenharmony_ci 16b1b8bc3fSopenharmony_ci#include "netmanager_base_test_security.h" 17b1b8bc3fSopenharmony_ci 18b1b8bc3fSopenharmony_ci#include "nativetoken_kit.h" 19b1b8bc3fSopenharmony_ci#include "token_setproc.h" 20b1b8bc3fSopenharmony_ci 21b1b8bc3fSopenharmony_cinamespace OHOS { 22b1b8bc3fSopenharmony_cinamespace NetManagerStandard { 23b1b8bc3fSopenharmony_ciusing namespace Security::AccessToken; 24b1b8bc3fSopenharmony_ciusing Security::AccessToken::AccessTokenID; 25b1b8bc3fSopenharmony_cinamespace { 26b1b8bc3fSopenharmony_ciHapInfoParams netManagerBaseParms = { 27b1b8bc3fSopenharmony_ci .userID = 1, 28b1b8bc3fSopenharmony_ci .bundleName = "netmanager_base_test", 29b1b8bc3fSopenharmony_ci .instIndex = 0, 30b1b8bc3fSopenharmony_ci .appIDDesc = "test", 31b1b8bc3fSopenharmony_ci .isSystemApp = true, 32b1b8bc3fSopenharmony_ci}; 33b1b8bc3fSopenharmony_ci 34b1b8bc3fSopenharmony_ciHapInfoParams netConnManagerNotSystemInfo = { 35b1b8bc3fSopenharmony_ci .userID = 1, 36b1b8bc3fSopenharmony_ci .bundleName = "netmanager_base_test", 37b1b8bc3fSopenharmony_ci .instIndex = 0, 38b1b8bc3fSopenharmony_ci .appIDDesc = "test", 39b1b8bc3fSopenharmony_ci}; 40b1b8bc3fSopenharmony_ci 41b1b8bc3fSopenharmony_ciHapInfoParams netDataShareInfo = { 42b1b8bc3fSopenharmony_ci .userID = 100, 43b1b8bc3fSopenharmony_ci .bundleName = "netmanager_base_test", 44b1b8bc3fSopenharmony_ci .instIndex = 0, 45b1b8bc3fSopenharmony_ci .appIDDesc = "test", 46b1b8bc3fSopenharmony_ci .isSystemApp = true, 47b1b8bc3fSopenharmony_ci}; 48b1b8bc3fSopenharmony_ci 49b1b8bc3fSopenharmony_ciPermissionDef testNetConnInfoPermDef = { 50b1b8bc3fSopenharmony_ci .permissionName = "ohos.permission.GET_NETWORK_INFO", 51b1b8bc3fSopenharmony_ci .bundleName = "netmanager_base_test", 52b1b8bc3fSopenharmony_ci .grantMode = 1, 53b1b8bc3fSopenharmony_ci .availableLevel = APL_SYSTEM_BASIC, 54b1b8bc3fSopenharmony_ci .label = "label", 55b1b8bc3fSopenharmony_ci .labelId = 1, 56b1b8bc3fSopenharmony_ci .description = "Test ethernet maneger network info", 57b1b8bc3fSopenharmony_ci .descriptionId = 1, 58b1b8bc3fSopenharmony_ci}; 59b1b8bc3fSopenharmony_ci 60b1b8bc3fSopenharmony_ciPermissionStateFull testNetConnInfoState = { 61b1b8bc3fSopenharmony_ci .permissionName = "ohos.permission.GET_NETWORK_INFO", 62b1b8bc3fSopenharmony_ci .isGeneral = true, 63b1b8bc3fSopenharmony_ci .resDeviceID = { "local" }, 64b1b8bc3fSopenharmony_ci .grantStatus = { PermissionState::PERMISSION_GRANTED }, 65b1b8bc3fSopenharmony_ci .grantFlags = { 2 }, 66b1b8bc3fSopenharmony_ci}; 67b1b8bc3fSopenharmony_ci 68b1b8bc3fSopenharmony_ciPermissionDef testNetConnInternetPermDef = { 69b1b8bc3fSopenharmony_ci .permissionName = "ohos.permission.INTERNET", 70b1b8bc3fSopenharmony_ci .bundleName = "netmanager_base_test", 71b1b8bc3fSopenharmony_ci .grantMode = 1, 72b1b8bc3fSopenharmony_ci .availableLevel = APL_SYSTEM_BASIC, 73b1b8bc3fSopenharmony_ci .label = "label", 74b1b8bc3fSopenharmony_ci .labelId = 1, 75b1b8bc3fSopenharmony_ci .description = "Test net connect manager internet", 76b1b8bc3fSopenharmony_ci .descriptionId = 1, 77b1b8bc3fSopenharmony_ci}; 78b1b8bc3fSopenharmony_ci 79b1b8bc3fSopenharmony_ciPermissionStateFull testNetConnInternetState = { 80b1b8bc3fSopenharmony_ci .permissionName = "ohos.permission.INTERNET", 81b1b8bc3fSopenharmony_ci .isGeneral = true, 82b1b8bc3fSopenharmony_ci .resDeviceID = { "local" }, 83b1b8bc3fSopenharmony_ci .grantStatus = { PermissionState::PERMISSION_GRANTED }, 84b1b8bc3fSopenharmony_ci .grantFlags = { 2 }, 85b1b8bc3fSopenharmony_ci}; 86b1b8bc3fSopenharmony_ci 87b1b8bc3fSopenharmony_ciPermissionDef testNetConnInternalPermDef = { 88b1b8bc3fSopenharmony_ci .permissionName = "ohos.permission.CONNECTIVITY_INTERNAL", 89b1b8bc3fSopenharmony_ci .bundleName = "netmanager_base_test", 90b1b8bc3fSopenharmony_ci .grantMode = 1, 91b1b8bc3fSopenharmony_ci .availableLevel = APL_SYSTEM_BASIC, 92b1b8bc3fSopenharmony_ci .label = "label", 93b1b8bc3fSopenharmony_ci .labelId = 1, 94b1b8bc3fSopenharmony_ci .description = "Test net connect manager internet", 95b1b8bc3fSopenharmony_ci .descriptionId = 1, 96b1b8bc3fSopenharmony_ci}; 97b1b8bc3fSopenharmony_ci 98b1b8bc3fSopenharmony_ciPermissionStateFull testNetConnInternalState = { 99b1b8bc3fSopenharmony_ci .permissionName = "ohos.permission.CONNECTIVITY_INTERNAL", 100b1b8bc3fSopenharmony_ci .isGeneral = true, 101b1b8bc3fSopenharmony_ci .resDeviceID = { "local" }, 102b1b8bc3fSopenharmony_ci .grantStatus = { PermissionState::PERMISSION_GRANTED }, 103b1b8bc3fSopenharmony_ci .grantFlags = { 2 }, 104b1b8bc3fSopenharmony_ci}; 105b1b8bc3fSopenharmony_ci 106b1b8bc3fSopenharmony_ciPermissionDef testNetPolicyStrategyPermDef = { 107b1b8bc3fSopenharmony_ci .permissionName = "ohos.permission.MANAGE_NET_STRATEGY", 108b1b8bc3fSopenharmony_ci .bundleName = "netmanager_base_test", 109b1b8bc3fSopenharmony_ci .grantMode = 1, 110b1b8bc3fSopenharmony_ci .availableLevel = APL_SYSTEM_BASIC, 111b1b8bc3fSopenharmony_ci .label = "label", 112b1b8bc3fSopenharmony_ci .labelId = 1, 113b1b8bc3fSopenharmony_ci .description = "Test net policy manager", 114b1b8bc3fSopenharmony_ci .descriptionId = 1, 115b1b8bc3fSopenharmony_ci}; 116b1b8bc3fSopenharmony_ci 117b1b8bc3fSopenharmony_ciPermissionStateFull testManageNetStrategyState = { 118b1b8bc3fSopenharmony_ci .permissionName = "ohos.permission.MANAGE_NET_STRATEGY", 119b1b8bc3fSopenharmony_ci .isGeneral = true, 120b1b8bc3fSopenharmony_ci .resDeviceID = { "local" }, 121b1b8bc3fSopenharmony_ci .grantStatus = { PermissionState::PERMISSION_GRANTED }, 122b1b8bc3fSopenharmony_ci .grantFlags = { 2 }, 123b1b8bc3fSopenharmony_ci}; 124b1b8bc3fSopenharmony_ci 125b1b8bc3fSopenharmony_ciPermissionDef testNetSysInternalDef = { 126b1b8bc3fSopenharmony_ci .permissionName = "ohos.permission.NETSYS_INTERNAL", 127b1b8bc3fSopenharmony_ci .bundleName = "netmanager_base_test", 128b1b8bc3fSopenharmony_ci .grantMode = 1, 129b1b8bc3fSopenharmony_ci .availableLevel = APL_SYSTEM_BASIC, 130b1b8bc3fSopenharmony_ci .label = "label", 131b1b8bc3fSopenharmony_ci .labelId = 1, 132b1b8bc3fSopenharmony_ci .description = "Test netsys_native_manager_test", 133b1b8bc3fSopenharmony_ci .descriptionId = 1, 134b1b8bc3fSopenharmony_ci}; 135b1b8bc3fSopenharmony_ci 136b1b8bc3fSopenharmony_ciPermissionStateFull testNetSysInternalState = { 137b1b8bc3fSopenharmony_ci .permissionName = "ohos.permission.NETSYS_INTERNAL", 138b1b8bc3fSopenharmony_ci .isGeneral = true, 139b1b8bc3fSopenharmony_ci .resDeviceID = { "local" }, 140b1b8bc3fSopenharmony_ci .grantStatus = { PermissionState::PERMISSION_GRANTED }, 141b1b8bc3fSopenharmony_ci .grantFlags = { 2 }, 142b1b8bc3fSopenharmony_ci}; 143b1b8bc3fSopenharmony_ci 144b1b8bc3fSopenharmony_ciPermissionDef testNetConnSettingsPermDef = { 145b1b8bc3fSopenharmony_ci .permissionName = "ohos.permission.MANAGE_SECURE_SETTINGS", 146b1b8bc3fSopenharmony_ci .bundleName = "netmanager_base_test", 147b1b8bc3fSopenharmony_ci .grantMode = 1, 148b1b8bc3fSopenharmony_ci .label = "label", 149b1b8bc3fSopenharmony_ci .labelId = 1, 150b1b8bc3fSopenharmony_ci .description = "Test net data share", 151b1b8bc3fSopenharmony_ci .descriptionId = 1, 152b1b8bc3fSopenharmony_ci .availableLevel = APL_SYSTEM_BASIC, 153b1b8bc3fSopenharmony_ci}; 154b1b8bc3fSopenharmony_ci 155b1b8bc3fSopenharmony_ciPermissionStateFull testNetConnSettingsState = { 156b1b8bc3fSopenharmony_ci .grantFlags = { 2 }, 157b1b8bc3fSopenharmony_ci .grantStatus = { PermissionState::PERMISSION_GRANTED }, 158b1b8bc3fSopenharmony_ci .isGeneral = true, 159b1b8bc3fSopenharmony_ci .permissionName = "ohos.permission.MANAGE_SECURE_SETTINGS", 160b1b8bc3fSopenharmony_ci .resDeviceID = { "local" }, 161b1b8bc3fSopenharmony_ci}; 162b1b8bc3fSopenharmony_ci 163b1b8bc3fSopenharmony_ciPermissionDef testNetStatsPermDef = { 164b1b8bc3fSopenharmony_ci .permissionName = "ohos.permission.GET_NETWORK_STATS", 165b1b8bc3fSopenharmony_ci .bundleName = "netmanager_base_test", 166b1b8bc3fSopenharmony_ci .grantMode = 1, 167b1b8bc3fSopenharmony_ci .availableLevel = APL_SYSTEM_BASIC, 168b1b8bc3fSopenharmony_ci .label = "label", 169b1b8bc3fSopenharmony_ci .labelId = 1, 170b1b8bc3fSopenharmony_ci .description = "Test net stats manager", 171b1b8bc3fSopenharmony_ci .descriptionId = 1, 172b1b8bc3fSopenharmony_ci}; 173b1b8bc3fSopenharmony_ci 174b1b8bc3fSopenharmony_ciPermissionStateFull testNetStatsState = { 175b1b8bc3fSopenharmony_ci .permissionName = "ohos.permission.GET_NETWORK_STATS", 176b1b8bc3fSopenharmony_ci .isGeneral = true, 177b1b8bc3fSopenharmony_ci .resDeviceID = { "local" }, 178b1b8bc3fSopenharmony_ci .grantStatus = { PermissionState::PERMISSION_GRANTED }, 179b1b8bc3fSopenharmony_ci .grantFlags = { 2 }, 180b1b8bc3fSopenharmony_ci}; 181b1b8bc3fSopenharmony_ci 182b1b8bc3fSopenharmony_ciHapPolicyParams netManagerBasePolicy = { 183b1b8bc3fSopenharmony_ci .apl = APL_SYSTEM_BASIC, 184b1b8bc3fSopenharmony_ci .domain = "test.domain", 185b1b8bc3fSopenharmony_ci .permList = { testNetConnInfoPermDef, testNetConnInternetPermDef, testNetConnInternalPermDef, 186b1b8bc3fSopenharmony_ci testNetPolicyStrategyPermDef, testNetSysInternalDef, testNetStatsPermDef }, 187b1b8bc3fSopenharmony_ci .permStateList = { testNetConnInfoState, testNetConnInternetState, testNetConnInternalState, 188b1b8bc3fSopenharmony_ci testManageNetStrategyState, testNetSysInternalState, testNetStatsState }, 189b1b8bc3fSopenharmony_ci}; 190b1b8bc3fSopenharmony_ci 191b1b8bc3fSopenharmony_ciPermissionDef testNoPermissionDef = { 192b1b8bc3fSopenharmony_ci .permissionName = "", 193b1b8bc3fSopenharmony_ci .bundleName = "netmanager_base_test", 194b1b8bc3fSopenharmony_ci .grantMode = 1, 195b1b8bc3fSopenharmony_ci .availableLevel = APL_SYSTEM_BASIC, 196b1b8bc3fSopenharmony_ci .label = "label", 197b1b8bc3fSopenharmony_ci .labelId = 1, 198b1b8bc3fSopenharmony_ci .description = "Test no permission", 199b1b8bc3fSopenharmony_ci .descriptionId = 1, 200b1b8bc3fSopenharmony_ci}; 201b1b8bc3fSopenharmony_ci 202b1b8bc3fSopenharmony_ciPermissionStateFull testNoPermissionState = { 203b1b8bc3fSopenharmony_ci .permissionName = "", 204b1b8bc3fSopenharmony_ci .isGeneral = true, 205b1b8bc3fSopenharmony_ci .resDeviceID = { "local" }, 206b1b8bc3fSopenharmony_ci .grantStatus = { PermissionState::PERMISSION_GRANTED }, 207b1b8bc3fSopenharmony_ci .grantFlags = { 2 }, 208b1b8bc3fSopenharmony_ci}; 209b1b8bc3fSopenharmony_ci 210b1b8bc3fSopenharmony_ciHapPolicyParams testNoPermission = { 211b1b8bc3fSopenharmony_ci .apl = APL_SYSTEM_BASIC, 212b1b8bc3fSopenharmony_ci .domain = "test.domain", 213b1b8bc3fSopenharmony_ci .permList = { testNoPermissionDef }, 214b1b8bc3fSopenharmony_ci .permStateList = { testNoPermissionState }, 215b1b8bc3fSopenharmony_ci}; 216b1b8bc3fSopenharmony_ci 217b1b8bc3fSopenharmony_ciHapPolicyParams netDataSharePolicy = { 218b1b8bc3fSopenharmony_ci .apl = APL_SYSTEM_BASIC, 219b1b8bc3fSopenharmony_ci .domain = "test.domain", 220b1b8bc3fSopenharmony_ci .permList = { testNetConnSettingsPermDef }, 221b1b8bc3fSopenharmony_ci .permStateList = { testNetConnSettingsState }, 222b1b8bc3fSopenharmony_ci}; 223b1b8bc3fSopenharmony_ci} // namespace 224b1b8bc3fSopenharmony_ci 225b1b8bc3fSopenharmony_ciNetManagerBaseAccessToken::NetManagerBaseAccessToken() : currentID_(GetSelfTokenID()) 226b1b8bc3fSopenharmony_ci{ 227b1b8bc3fSopenharmony_ci AccessTokenIDEx tokenIdEx = AccessTokenKit::AllocHapToken(netManagerBaseParms, netManagerBasePolicy); 228b1b8bc3fSopenharmony_ci accessID_ = tokenIdEx.tokenIdExStruct.tokenID; 229b1b8bc3fSopenharmony_ci SetSelfTokenID(tokenIdEx.tokenIDEx); 230b1b8bc3fSopenharmony_ci} 231b1b8bc3fSopenharmony_ci 232b1b8bc3fSopenharmony_ciNetManagerBaseAccessToken::~NetManagerBaseAccessToken() 233b1b8bc3fSopenharmony_ci{ 234b1b8bc3fSopenharmony_ci AccessTokenKit::DeleteToken(accessID_); 235b1b8bc3fSopenharmony_ci SetSelfTokenID(currentID_); 236b1b8bc3fSopenharmony_ci} 237b1b8bc3fSopenharmony_ci 238b1b8bc3fSopenharmony_ciNetManagerBaseNotSystemToken::NetManagerBaseNotSystemToken() : currentID_(GetSelfTokenID()) 239b1b8bc3fSopenharmony_ci{ 240b1b8bc3fSopenharmony_ci AccessTokenIDEx tokenIdEx = AccessTokenKit::AllocHapToken(netConnManagerNotSystemInfo, netManagerBasePolicy); 241b1b8bc3fSopenharmony_ci accessID_ = tokenIdEx.tokenIdExStruct.tokenID; 242b1b8bc3fSopenharmony_ci SetSelfTokenID(accessID_); 243b1b8bc3fSopenharmony_ci} 244b1b8bc3fSopenharmony_ci 245b1b8bc3fSopenharmony_ciNetManagerBaseNotSystemToken::~NetManagerBaseNotSystemToken() 246b1b8bc3fSopenharmony_ci{ 247b1b8bc3fSopenharmony_ci AccessTokenKit::DeleteToken(accessID_); 248b1b8bc3fSopenharmony_ci SetSelfTokenID(currentID_); 249b1b8bc3fSopenharmony_ci} 250b1b8bc3fSopenharmony_ci 251b1b8bc3fSopenharmony_ciNetManagerBaseNoPermissionToken::NetManagerBaseNoPermissionToken() : currentID_(GetSelfTokenID()) 252b1b8bc3fSopenharmony_ci{ 253b1b8bc3fSopenharmony_ci AccessTokenIDEx tokenIdEx = AccessTokenKit::AllocHapToken(netManagerBaseParms, testNoPermission); 254b1b8bc3fSopenharmony_ci accessID_ = tokenIdEx.tokenIdExStruct.tokenID; 255b1b8bc3fSopenharmony_ci SetSelfTokenID(tokenIdEx.tokenIDEx); 256b1b8bc3fSopenharmony_ci} 257b1b8bc3fSopenharmony_ci 258b1b8bc3fSopenharmony_ciNetManagerBaseNoPermissionToken::~NetManagerBaseNoPermissionToken() 259b1b8bc3fSopenharmony_ci{ 260b1b8bc3fSopenharmony_ci AccessTokenKit::DeleteToken(accessID_); 261b1b8bc3fSopenharmony_ci SetSelfTokenID(currentID_); 262b1b8bc3fSopenharmony_ci} 263b1b8bc3fSopenharmony_ci 264b1b8bc3fSopenharmony_ciNetManagerBaseDataShareToken::NetManagerBaseDataShareToken() : currentID_(GetSelfTokenID()) 265b1b8bc3fSopenharmony_ci{ 266b1b8bc3fSopenharmony_ci AccessTokenIDEx tokenIdEx = AccessTokenKit::AllocHapToken(netDataShareInfo, netDataSharePolicy); 267b1b8bc3fSopenharmony_ci accessID_ = tokenIdEx.tokenIdExStruct.tokenID; 268b1b8bc3fSopenharmony_ci SetSelfTokenID(tokenIdEx.tokenIDEx); 269b1b8bc3fSopenharmony_ci} 270b1b8bc3fSopenharmony_ci 271b1b8bc3fSopenharmony_ciNetManagerBaseDataShareToken::~NetManagerBaseDataShareToken() 272b1b8bc3fSopenharmony_ci{ 273b1b8bc3fSopenharmony_ci AccessTokenKit::DeleteToken(accessID_); 274b1b8bc3fSopenharmony_ci SetSelfTokenID(currentID_); 275b1b8bc3fSopenharmony_ci} 276b1b8bc3fSopenharmony_ci} // namespace NetManagerStandard 277b1b8bc3fSopenharmony_ci} // namespace OHOS 278