diff --git a/frameworks/common/include/access_token_error_no.h b/frameworks/common/include/access_token_error_no.h new file mode 100644 index 0000000000000000000000000000000000000000..73ccfbf533147851ead4015ac830b8c08d17b166 --- /dev/null +++ b/frameworks/common/include/access_token_error_no.h @@ -0,0 +1,118 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SECURITY_ACCESS_TOKEN_FRAMEWORKS_COMMON_ACCESS_TOKEN_ERROR_INCLUDE_ACCESS_TOKEN_ERROR_NO_H +#define SECURITY_ACCESS_TOKEN_FRAMEWORKS_COMMON_ACCESS_TOKEN_ERROR_INCLUDE_ACCESS_TOKEN_ERROR_NO_H + +#include "errors.h" + +namespace OHOS { +enum { + SECURITY_MODULE_ACCESS_TOKEN_KIT = 0x00, + SECURITY_MODULE_ACCESS_TOKEN_CLIENT, + SECURITY_MODULE_ACCESS_TOKEN_PROXY, + SECURITY_MODULE_PRIVACY, + SECURITY_ACCESS_TOKEN_EXTERNAL_INTERFACE, +}; + +// Error code for access token kit +constexpr ErrCode SECURITY_ACCESS_TOKEN_KIT_ERR_OFFSET = ErrCodeOffset(SUBSYS_SECURITY, SECURITY_MODULE_ACCESS_TOKEN_KIT); +enum { + ERR_ACCESS_TOKEN_INNER_INTPUT = SECURITY_ACCESS_TOKEN_KIT_ERR_OFFSET + 0x0001, + ERR_ACCESS_TOKEN_UPDATE_HAP_TOKEN_INVALID_TOKENID, + ERR_ACCESS_TOKEN_DELETE_TOKEN_INVALID_TOKENID, + ERR_ACCESS_TOKEN_CHECK_NATIVE_DCAP_INVALID_TOKENID, + ERR_ACCESS_TOKEN_GET_HAP_TOKEN_INFO_INVALID_TOKENID, + ERR_ACCESS_TOKEN_GET_DEF_PERMISSIONS_INVALID_TOKENID, + ERR_ACCESS_TOKEN_GET_REQ_PERMISSIONS_INVALID_TOKENID, + ERR_ACCESS_TOKEN_CLEAR_USER_GRANTED_PERMISSION_STATE_INVALID_TOKENID, + ERR_ACCESS_TOKEN_CLEAR_USER_GRANTED_PERMISSION_STATE_PROXY_NULL, + ERR_ACCESS_TOKEN_GET_HAP_DLP_FLAG_INVALID_TOKENID, + ERR_ACCESS_TOKEN_GET_HAP_TOKENINFO_FROM_REMOTE_INVALID_TOKENID, + ERR_ACCESS_TOKEN_CHECK_NATIVE_DCAP_INVALID_DCAP, + ERR_ACCESS_TOKEN_GET_DEF_PERMISSION_INVALID_PERMISSIONNAME, + ERR_ACCESS_TOKEN_NULL_PROXY_GET_DEF_PERMISSION, + ERR_ACCESS_TOKEN_NULL_PROXY_GET_DEF_PERMISSIONS, + ERR_ACCESS_TOKEN_NULL_PROXY_GET_REQ_PERMISSION, + ERR_ACCESS_TOKEN_NULL_PROXY_GET_PERMISSION_FLAG, + ERR_ACCESS_TOKEN_NULL_PROXY_GET_SELF_PERMISSIONS_STATE, +}; + +// Error code for access token client +constexpr ErrCode SECURITY_MODULE_ACCESS_TOKEN_CLIENT_ERR_OFFSET = + ErrCodeOffset(SUBSYS_SECURITY, SECURITY_MODULE_ACCESS_TOKEN_CLIENT); +enum { + ERR_ACCESS_TOKEN_REGISTER_PERM_STATE_CHANGE_CALLBACK_CUSTOMIZEDCB_NULL = + SECURITY_MODULE_ACCESS_TOKEN_CLIENT_ERR_OFFSET + 0x0001, + ERR_ACCESS_TOKEN_REGISTER_PERM_STATE_CHANGE_CALLBACK_PROXY_NULL, + ERR_ACCESS_TOKEN_UNREGISTER_PERM_STATE_CHANGE_CALLBACK_GOALCALLBACK_NOT_EXIST, + ERR_ACCESS_TOKEN_UNREGISTER_PERM_STATE_CHANGE_CALLBACK_GOALCALLBACK_PROXY_NULL, + ERR_ACCESS_TOKEN_DELETE_TOKEN_PROXY_NULL, + ERR_ACCESS_TOKEN_CHECK_NATIVE_DCAP_PROXY_NULL, + ERR_ACCESS_TOKEN_UPDATE_HAP_TOKEN_PROXY_NULL, + ERR_ACCESS_TOKEN_GET_HAP_TOKENINFO_PROXY_NULL, + ERR_ACCESS_TOKEN_GET_NATIVE_TOKENINFO_PROXY_NULL, + ERR_ACCESS_TOKEN_RELOAD_NATIVE_TOKENINFO_PROXY_NULL, + ERR_ACCESS_TOKEN_GET_ALL_NATIVE_TOKENINFO_PROXY_NULL, + ERR_ACCESS_TOKEN_SET_REMOTE_HAP_TOKENINFO_PROXY_NULL, + ERR_ACCESS_TOKEN_SET_REMOTE_NATIVE_TOKENINFO_PROXY_NULL, + ERR_ACCESS_TOKEN_DELETE_REMOTE_TOKEN_PROXY_NULL, + ERR_ACCESS_TOKEN_DELETE_REMOTE_DEVICE_TOKENS_PROXY_NULL, + ERR_ACCESS_TOKEN_CREATE_PERM_STATE_CHANGE_SAME_CALLBACK, + ERR_ACCESS_TOKEN_CREATE_PERM_STATE_CHANGE_MEMORY_FAILED, +}; + +// Error code for privacy +constexpr ErrCode SECURITY_PRIVACY_ERR_OFFSET = ErrCodeOffset(SUBSYS_SECURITY, SECURITY_MODULE_PRIVACY); +enum { + ERR_ACCOUNT_MGR_DUMP_ERROR =SECURITY_PRIVACY_ERR_OFFSET + 0x0001, +}; + +// Error code for access token proxy +constexpr ErrCode SECURITY_MODULE_ACCESS_TOKEN_PROXY_ERR_OFFSET = ErrCodeOffset(SUBSYS_SECURITY, SECURITY_MODULE_ACCESS_TOKEN_PROXY); +enum { + ERR_ACCESS_TOKEN_VERIFY_FAILED_WRITE_TOKENID = SECURITY_MODULE_ACCESS_TOKEN_PROXY_ERR_OFFSET + 0x0001, + ERR_ACCESS_TOKEN_VERIFY_FAILED_WRITE_PERMISSIONNAME, + ERR_ACCESS_TOKEN_VERIFY_REMOTE_SERVIECE_NULL, + ERR_ACCESS_TOKEN_VERIFY_PROXY_REQUEST_FAILED, + ERR_ACCESS_TOKEN_GET_DEF_PERMISSION_WIRITE_PERMISSIONNAME_FAILED, + ERR_ACCESS_TOKEN_GET_DEF_PERMISSION_REMOTE_SERVIECE_NULL, + ERR_ACCESS_TOKEN_GET_DEF_PERMISSION_REQUEST_FAIL, + ERR_ACCESS_TOKEN_GET_DEF_PERMISSION_READ_PERMISSION_DEF_PARCEL_FAIL, + ERR_ACCESS_TOKEN_GET_DEF_PERMISSIONS_WRITE_TOKENID_FAIL, +}; + +// Error code for external interface +constexpr ErrCode SECURITY_ACCESS_TOKEN_EXTERNAL_INTERFACE_ERR_OFFSET = + ErrCodeOffset(SUBSYS_SECURITY, SECURITY_ACCESS_TOKEN_EXTERNAL_INTERFACE); +enum { + ERR_ACCESS_TOKEN_VERIFY_INVALID_TOKENID = SECURITY_ACCESS_TOKEN_EXTERNAL_INTERFACE_ERR_OFFSET + 0x0001, + ERR_ACCESS_TOKEN_VERIFY_INVALID_PERMISSIONNAME, + ERR_ACCESS_TOKEN_VERIFY_PROXY_NULL, + ERR_ACCESS_TOKEN_GET_PERIMISSION_FALG_INVALID_TOKENID, + ERR_ACCESS_TOKEN_GET_PERIMISSION_FALG_INVALID_PERMISSIONNAME, + ERR_ACCESS_TOKEN_GRANT_PERMISSION_INVALID_TOKENID, + ERR_ACCESS_TOKEN_GRANT_PERMISSION_INVALID_PERMISSIONNAME, + ERR_ACCESS_TOKEN_GRANT_PERMISSION_INVALID_FLAG, + ERR_ACCESS_TOKEN_GRANT_PERMISSION_PROXY_NULL, + ERR_ACCESS_TOKEN_REVOKE_PERMISSION_INVALID_TOKENID, + ERR_ACCESS_TOKEN_REVOKE_PERMISSION_INVALID_PERMISSIONNAME, + ERR_ACCESS_TOKEN_REVOKE_PERMISSION_INVALID_FLAG, + ERR_ACCESS_TOKEN_REVOKE_PERMISSION_PROXY_NULL, + ERR_ACCESS_TOKEN_CREATE_PERM_STATE_CHANGE_CALLBACK_MAXNUM, +}; +} // namespace OHOS + +#endif // SECURITY_ACCESS_TOKEN_FRAMEWORKS_COMMON_ACCESS_TOKEN_ERROR_INCLUDE_ACCESS_TOKEN_ERROR_NO_H diff --git a/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp b/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp index 9f0e9ce3ad0a3e9c75e938fccbc8e9ec3cd05335..590a3d16c44b086636a8376fcffa97d435e0fef7 100644 --- a/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp +++ b/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp @@ -51,7 +51,7 @@ int AccessTokenManagerClient::VerifyAccessToken(AccessTokenID tokenID, const std auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return PERMISSION_DENIED; + return ERR_ACCESS_TOKEN_VERIFY_PROXY_NULL; } return proxy->VerifyAccessToken(tokenID, permissionName); } @@ -62,7 +62,7 @@ int AccessTokenManagerClient::GetDefPermission( auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_NULL_PROXY_GET_DEF_PERMISSION; } PermissionDefParcel permissionDefParcel; int result = proxy->GetDefPermission(permissionName, permissionDefParcel); @@ -75,7 +75,7 @@ int AccessTokenManagerClient::GetDefPermissions(AccessTokenID tokenID, std::vect auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_NULL_PROXY_GET_DEF_PERMISSIONS; } std::vector parcelList; int result = proxy->GetDefPermissions(tokenID, parcelList); @@ -92,7 +92,7 @@ int AccessTokenManagerClient::GetReqPermissions( auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_NULL_PROXY_GET_REQ_PERMISSION; } std::vector parcelList; int result = proxy->GetReqPermissions(tokenID, parcelList, isSystemGrant); @@ -108,7 +108,7 @@ int AccessTokenManagerClient::GetPermissionFlag(AccessTokenID tokenID, const std auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return PERMISSION_DEFAULT_FLAG; + return ERR_ACCESS_TOKEN_NULL_PROXY_GET_PERMISSION_FLAG; } return proxy->GetPermissionFlag(tokenID, permissionName); } @@ -151,7 +151,7 @@ int AccessTokenManagerClient::GrantPermission(AccessTokenID tokenID, const std:: auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_GRANT_PERMISSION_PROXY_NULL; } return proxy->GrantPermission(tokenID, permissionName, flag); } @@ -161,7 +161,7 @@ int AccessTokenManagerClient::RevokePermission(AccessTokenID tokenID, const std: auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_REVOKE_PERMISSION_PROXY_NULL; } return proxy->RevokePermission(tokenID, permissionName, flag); } @@ -171,7 +171,7 @@ int AccessTokenManagerClient::ClearUserGrantedPermissionState(AccessTokenID toke auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_CLEAR_USER_GRANTED_PERMISSION_STATE_PROXY_NULL; } return proxy->ClearUserGrantedPermissionState(tokenID); } @@ -183,18 +183,18 @@ int32_t AccessTokenManagerClient::CreatePermStateChangeCallback( std::lock_guard lock(callbackMutex_); if (callbackMap_.size() == MAX_CALLBACK_MAP_SIZE) { ACCESSTOKEN_LOG_ERROR(LABEL, "the maximum number of callback has been reached"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_CREATE_PERM_STATE_CHANGE_CALLBACK_MAXNUM; } auto goalCallback = callbackMap_.find(customizedCb); if (goalCallback != callbackMap_.end()) { ACCESSTOKEN_LOG_ERROR(LABEL, "already has the same callback"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_CREATE_PERM_STATE_CHANGE_SAME_CALLBACK; } else { callback = new (std::nothrow) PermissionStateChangeCallback(customizedCb); if (!callback) { ACCESSTOKEN_LOG_ERROR(LABEL, "memory allocation for callback failed!"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_CREATE_PERM_STATE_CHANGE_MEMORY_FAILED; } } return RET_SUCCESS; @@ -205,7 +205,7 @@ int32_t AccessTokenManagerClient::RegisterPermStateChangeCallback( { if (customizedCb == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "customizedCb is nullptr"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_REGISTER_PERM_STATE_CHANGE_CALLBACK_CUSTOMIZEDCB_NULL; } sptr callback = nullptr; @@ -216,7 +216,7 @@ int32_t AccessTokenManagerClient::RegisterPermStateChangeCallback( auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_REGISTER_PERM_STATE_CHANGE_CALLBACK_PROXY_NULL; } PermStateChangeScopeParcel scopeParcel; @@ -237,13 +237,13 @@ int32_t AccessTokenManagerClient::UnRegisterPermStateChangeCallback( auto goalCallback = callbackMap_.find(customizedCb); if (goalCallback == callbackMap_.end()) { ACCESSTOKEN_LOG_ERROR(LABEL, "goalCallback already is not exist"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_UNREGISTER_PERM_STATE_CHANGE_CALLBACK_GOALCALLBACK_NOT_EXIST; } auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_UNREGISTER_PERM_STATE_CHANGE_CALLBACK_GOALCALLBACK_PROXY_NULL; } int32_t result = proxy->UnRegisterPermStateChangeCallback(goalCallback->second->AsObject()); @@ -274,7 +274,7 @@ int AccessTokenManagerClient::DeleteToken(AccessTokenID tokenID) auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_DELETE_TOKEN_PROXY_NULL; } return proxy->DeleteToken(tokenID); } @@ -294,7 +294,7 @@ int AccessTokenManagerClient::CheckNativeDCap(AccessTokenID tokenID, const std:: auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_CHECK_NATIVE_DCAP_PROXY_NULL; } return proxy->CheckNativeDCap(tokenID, dcap); } @@ -326,7 +326,7 @@ int AccessTokenManagerClient::UpdateHapToken( auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_UPDATE_HAP_TOKEN_PROXY_NULL; } HapPolicyParcel hapPolicyParcel; hapPolicyParcel.hapPolicyParameter = policy; @@ -338,7 +338,7 @@ int AccessTokenManagerClient::GetHapTokenInfo(AccessTokenID tokenID, HapTokenInf auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_GET_HAP_TOKENINFO_PROXY_NULL; } HapTokenInfoParcel hapTokenInfoParcel; int res = proxy->GetHapTokenInfo(tokenID, hapTokenInfoParcel); @@ -352,7 +352,7 @@ int AccessTokenManagerClient::GetNativeTokenInfo(AccessTokenID tokenID, NativeTo auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_GET_NATIVE_TOKENINFO_PROXY_NULL; } NativeTokenInfoParcel nativeTokenInfoParcel; int res = proxy->GetNativeTokenInfo(tokenID, nativeTokenInfoParcel); @@ -365,7 +365,7 @@ int32_t AccessTokenManagerClient::ReloadNativeTokenInfo() auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_RELOAD_NATIVE_TOKENINFO_PROXY_NULL; } return proxy->ReloadNativeTokenInfo(); } @@ -400,7 +400,7 @@ int AccessTokenManagerClient::GetAllNativeTokenInfo(std::vector parcelList; @@ -418,7 +418,7 @@ int AccessTokenManagerClient::SetRemoteHapTokenInfo(const std::string& deviceID, auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_SET_REMOTE_HAP_TOKENINFO_PROXY_NULL; } HapTokenInfoForSyncParcel hapSyncParcel; @@ -434,7 +434,7 @@ int AccessTokenManagerClient::SetRemoteNativeTokenInfo(const std::string& device auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_SET_REMOTE_NATIVE_TOKENINFO_PROXY_NULL; } std::vector nativeTokenInfoParcels; for (const auto& native : nativeTokenInfoList) { @@ -452,7 +452,7 @@ int AccessTokenManagerClient::DeleteRemoteToken(const std::string& deviceID, Acc auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_DELETE_REMOTE_TOKEN_PROXY_NULL; } int res = proxy->DeleteRemoteToken(deviceID, tokenID); @@ -476,7 +476,7 @@ int AccessTokenManagerClient::DeleteRemoteDeviceTokens(const std::string& device auto proxy = GetProxy(); if (proxy == nullptr) { ACCESSTOKEN_LOG_ERROR(LABEL, "proxy is null"); - return RET_FAILED; + return ERR_ACCESS_TOKEN_DELETE_REMOTE_DEVICE_TOKENS_PROXY_NULL; } int res = proxy->DeleteRemoteDeviceTokens(deviceID);