1 /* 2 * Copyright (c) 2024 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 SOFTBUS_ACCESS_TOKEN_ADAPTER 17 #define SOFTBUS_ACCESS_TOKEN_ADAPTER 18 19 #include <stdbool.h> 20 #include <stdint.h> 21 #include <sys/types.h> 22 23 #ifdef __cplusplus 24 #if __cplusplus 25 extern "C" { 26 #endif /* __cplusplus */ 27 #endif /* __cplusplus */ 28 29 typedef int32_t (*PermissionChangeCb)(int32_t state, const char *pkgName, int32_t pid); 30 31 typedef enum { 32 ACEESS_TOKEN_TYPE_INVALID = -1, 33 ACCESS_TOKEN_TYPE_HAP = 0, 34 ACCESS_TOKEN_TYPE_NATIVE, 35 ACCESS_TOKEN_TYPE_SHELL, 36 ACCESS_TOKEN_TYPE_BUTT, 37 } SoftBusAccessTokenType; 38 39 bool SoftBusCheckIsSystemService(uint64_t tokenId); 40 bool SoftBusCheckIsNormalApp(uint64_t fullTokenId, const char *sessionName); 41 bool SoftBusCheckIsAccessAndRecordAccessToken(uint64_t tokenId, const char *permission); 42 int32_t SoftBusCalcPermType(uint64_t fullTokenId, pid_t uid, pid_t pid); 43 int32_t SoftBusCheckDynamicPermission(uint64_t tokenId); 44 void SoftBusRegisterDataSyncPermission(uint64_t tokenId, const char *permissionName, const char *pkgName, int32_t pid); 45 void SoftBusUnRegisterDataSyncPermission(int32_t pid); 46 void SoftBusRegisterPermissionChangeCb(PermissionChangeCb cb); 47 int32_t SoftBusGetAccessTokenType(uint64_t tokenId); 48 void SoftBusGetTokenNameByTokenType( 49 char *tokenName, int32_t nameLen, uint64_t tokenId, SoftBusAccessTokenType tokenType); 50 int32_t SoftBusCheckDmsServerPermission(uint64_t tokenId); 51 bool SoftBusCheckIsCollabApp(uint64_t fullTokenId, const char *sessionName); 52 bool SoftBusCheckIsAccess(void); 53 bool SoftBusSaCanUseDeviceKey(uint64_t tokenId); 54 bool SoftBusCheckIsSystemApp(uint64_t tokenId, const char *sessionName); 55 #ifdef __cplusplus 56 #if __cplusplus 57 } 58 #endif /* __cplusplus */ 59 #endif /* __cplusplus */ 60 61 #endif /* SOFTBUS_ACCESS_TOKEN_ADAPTER */ 62