diff --git a/frameworks/inc/ipc_sdk.h b/frameworks/inc/ipc_sdk.h index ebb9346..b12f351 100755 --- a/frameworks/inc/ipc_sdk.h +++ b/frameworks/inc/ipc_sdk.h @@ -60,7 +60,6 @@ extern "C" { #define PARAM_TYPE_DEVICE_INFO 29 #define PARAM_TYPE_AUTH_PARAMS 30 #define PARAM_TYPE_CB_OBJECT 31 -#define PARAM_TYPE_RETURN_DATA 32 enum { IPC_CALL_ID_REG_CB = 1, @@ -86,7 +85,6 @@ enum { IPC_CALL_ID_GET_GROUP_FRIEND, IPC_CALL_ID_GET_GROUP_INFO, IPC_CALL_ID_SEARCH_GROUPS, - IPC_CALL_ID_GET_PK_INFO_LIST, IPC_CALL_ID_GET_JOINED_GROUPS, IPC_CALL_ID_GET_RELATED_GROUPS, IPC_CALL_ID_GET_DEV_INFO_BY_ID, diff --git a/frameworks/src/ipc_sdk.c b/frameworks/src/ipc_sdk.c index e8216a1..6318f32 100644 --- a/frameworks/src/ipc_sdk.c +++ b/frameworks/src/ipc_sdk.c @@ -97,7 +97,6 @@ static void GetIpcReplyByType(const IpcDataInfo *ipcData, case PARAM_TYPE_FRIEND_APPID: case PARAM_TYPE_DEVICE_INFO: case PARAM_TYPE_GROUP_INFO: - case PARAM_TYPE_RETURN_DATA: *(uint8_t **)outCache = ipcData[i].val; if (cacheLen != NULL) { *cacheLen = ipcData[i].valSz; @@ -1288,86 +1287,6 @@ static int32_t IpcGmGetGroupInfoById(const char *appId, const char *groupId, cha return ret; } -static int32_t ParseReturnResult(const IpcDataInfo *replies, - int32_t cacheNum, char **returnData, uint32_t *returnNum) -{ - int32_t ret; - int32_t inOutLen; - - inOutLen = sizeof(int32_t); - GetIpcReplyByType(replies, cacheNum, PARAM_TYPE_IPC_RESULT_NUM, (uint8_t *)&ret, &inOutLen); - if ((ret < IPC_RESULT_NUM_2) || (inOutLen != sizeof(int32_t))) { - return HC_ERR_IPC_OUT_DATA_NUM; - } - GetIpcReplyByType(replies, cacheNum, PARAM_TYPE_RETURN_DATA, (uint8_t *)returnData, NULL); - if (*returnData == NULL) { - return HC_ERR_IPC_OUT_DATA; - } - *returnData = strdup(*returnData); - if (*returnData == NULL) { - return HC_ERR_ALLOC_MEMORY; - } - inOutLen = sizeof(int32_t); - GetIpcReplyByType(replies, cacheNum, PARAM_TYPE_DATA_NUM, (uint8_t *)returnNum, &inOutLen); - return HC_SUCCESS; -} - -static int32_t IpcGmGetPkInfoList(const char *appId, const char *queryParams, char **returnInfoList, - uint32_t *returnInfoNum) -{ - uintptr_t callCtx = 0x0; - int32_t ret; - int32_t inOutLen; - IpcDataInfo replyCache[IPC_DATA_CACHES_4] = {{0}}; - - LOGI("starting ..."); - if (!IS_STRING_VALID(queryParams) || !IS_STRING_VALID(appId) || - (returnInfoList == NULL) || (returnInfoNum == NULL)) { - return HC_ERR_INVALID_PARAMS; - } - if (!IsServiceRunning()) { - LOGE("service is not activity"); - return HC_ERROR; - } - ret = CreateCallCtx(&callCtx, NULL); - if (ret != HC_SUCCESS) { - LOGE("CreateCallCtx failed, ret %d", ret); - return HC_ERR_IPC_INIT; - } - ret = SetCallRequestParamInfo(callCtx, PARAM_TYPE_APPID, (const uint8_t *)appId, strlen(appId) + 1); - if (ret != HC_SUCCESS) { - LOGE("set request param failed, ret %d, param id %d", ret, PARAM_TYPE_APPID); - DestroyCallCtx(&callCtx, NULL); - return HC_ERR_IPC_BUILD_PARAM; - } - ret = SetCallRequestParamInfo(callCtx, PARAM_TYPE_QUERY_PARAMS, - (const uint8_t *)queryParams, strlen(queryParams) + 1); - if (ret != HC_SUCCESS) { - LOGE("set request param failed, ret %d, param id %d", ret, PARAM_TYPE_QUERY_PARAMS); - DestroyCallCtx(&callCtx, NULL); - return HC_ERR_IPC_BUILD_PARAM; - } - ret = DoBinderCall(callCtx, IPC_CALL_ID_GET_PK_INFO_LIST, true); - if (ret == HC_ERR_IPC_INTERNAL_FAILED) { - LOGE("ipc call failed"); - DestroyCallCtx(&callCtx, NULL); - return HC_ERR_IPC_PROC_FAILED; - } - DecodeCallReply(callCtx, replyCache, REPLAY_CACHE_NUM(replyCache)); - ret = HC_ERR_IPC_UNKNOW_REPLY; - inOutLen = sizeof(int32_t); - GetIpcReplyByType(replyCache, REPLAY_CACHE_NUM(replyCache), PARAM_TYPE_IPC_RESULT, (uint8_t *)&ret, &inOutLen); - LOGI("process done, ret %d", ret); - if (ret != HC_SUCCESS) { - DestroyCallCtx(&callCtx, NULL); - return ret; - } - ret = ParseReturnResult(replyCache, REPLAY_CACHE_NUM(replyCache), returnInfoList, returnInfoNum); - LOGI("proc result done, ret %d", ret); - DestroyCallCtx(&callCtx, NULL); - return ret; -} - static int32_t SearchGroupsIpcResult(const IpcDataInfo *replies, int32_t cacheNum, char **outGroupVec, uint32_t *groupNum) { @@ -1884,7 +1803,6 @@ static void InitIpcGmMethods(DeviceGroupManager *gmMethodObj) gmMethodObj->getDeviceInfoById = IpcGmGetDeviceInfoById; gmMethodObj->getTrustedDevices = IpcGmGetTrustedDevices; gmMethodObj->checkAccessToGroup = IpcGmCheckAccessToGroup; - gmMethodObj->getPkInfoList = IpcGmGetPkInfoList; gmMethodObj->isDeviceInGroup = IpcGmIsDeviceInGroup; gmMethodObj->destroyInfo = IpcGmDestroyInfo; gmMethodObj->authKeyAgree = IpcGmAuthKeyAgree; diff --git a/frameworks/src/ipc_service.c b/frameworks/src/ipc_service.c index a27ecf2..46bd82d 100644 --- a/frameworks/src/ipc_service.c +++ b/frameworks/src/ipc_service.c @@ -562,43 +562,6 @@ static int32_t IpcServiceGmApplyRegisterInfo(const IpcDataInfo *ipcParams, int32 return (ret == HC_SUCCESS) ? ret : HC_ERROR; } -static int32_t IpcServiceGmGetPkInfoList(const IpcDataInfo *ipcParams, int32_t paramNum, uintptr_t outCache) -{ - int32_t callRet; - int32_t ret; - const char *appId = NULL; - const char *queryParams = NULL; - char *returnInfoList = NULL; - uint32_t returnInfoNum = 0; - - LOGI("starting ..."); - ret = GetIpcRequestParamByType(ipcParams, paramNum, PARAM_TYPE_APPID, (uint8_t *)&appId, NULL); - if ((appId == NULL) || (ret != HC_SUCCESS)) { - LOGE("get param error, type %d", PARAM_TYPE_APPID); - return HC_ERR_IPC_BAD_PARAM; - } - ret = GetIpcRequestParamByType(ipcParams, paramNum, PARAM_TYPE_QUERY_PARAMS, (uint8_t *)&queryParams, NULL); - if ((queryParams == NULL) || (ret != HC_SUCCESS)) { - LOGE("get param error, type %d", PARAM_TYPE_QUERY_PARAMS); - return HC_ERR_IPC_BAD_PARAM; - } - - callRet = g_devGroupMgrMethod.getPkInfoList(appId, queryParams, &returnInfoList, &returnInfoNum); - ret = IpcEncodeCallReplay(outCache, PARAM_TYPE_IPC_RESULT, (const uint8_t *)&callRet, sizeof(int32_t)); - ret += IpcEncodeCallReplay(outCache, PARAM_TYPE_IPC_RESULT_NUM, - (const uint8_t *)&g_ipcResultNum2, sizeof(int32_t)); - if (returnInfoList != NULL) { - ret += IpcEncodeCallReplay(outCache, PARAM_TYPE_RETURN_DATA, (const uint8_t *)returnInfoList, - strlen(returnInfoList) + 1); - } else { - ret += IpcEncodeCallReplay(outCache, PARAM_TYPE_RETURN_DATA, NULL, 0); - } - ret += IpcEncodeCallReplay(outCache, PARAM_TYPE_DATA_NUM, (const uint8_t *)&returnInfoNum, sizeof(int32_t)); - LOGI("process done, call ret %d, ipc ret %d", callRet, ret); - g_devGroupMgrMethod.destroyInfo(&returnInfoList); - return (ret == HC_SUCCESS) ? ret : HC_ERROR; -} - static int32_t IpcServiceGmAddGroupManager(const IpcDataInfo *ipcParams, int32_t paramNum, uintptr_t outCache) { int32_t callRet; @@ -1276,7 +1239,6 @@ static int32_t AddMethodMap(uintptr_t ipcInstance) ret &= SetIpcCallMap(ipcInstance, IpcServiceGmGetDeviceInfoById, IPC_CALL_ID_GET_DEV_INFO_BY_ID); ret &= SetIpcCallMap(ipcInstance, IpcServiceGmGetTrustedDevices, IPC_CALL_ID_GET_TRUST_DEVICES); ret &= SetIpcCallMap(ipcInstance, IpcServiceGmIsDeviceInGroup, IPC_CALL_ID_IS_DEV_IN_GROUP); - ret &= SetIpcCallMap(ipcInstance, IpcServiceGmGetPkInfoList, IPC_CALL_ID_GET_PK_INFO_LIST); ret &= SetIpcCallMap(ipcInstance, IpcServiceGaProcessData, IPC_CALL_ID_GA_PROC_DATA); ret &= SetIpcCallMap(ipcInstance, IpcServiceGaQueryTrustedDeviceNum, IPC_CALL_ID_QUERY_TRUST_DEV_NUM); ret &= SetIpcCallMap(ipcInstance, IpcServiceGaIsTrustedDevice, IPC_CALL_ID_IS_TRUST_DEVICE); diff --git a/interfaces/innerkits/device_auth.h b/interfaces/innerkits/device_auth.h index 5d56cbf..5fc0893 100644 --- a/interfaces/innerkits/device_auth.h +++ b/interfaces/innerkits/device_auth.h @@ -169,8 +169,6 @@ typedef struct { int32_t (*getRegisterInfo)(char **returnRegisterInfo); int32_t (*getLocalConnectInfo)(char *returnInfo, int32_t bufLen); int32_t (*checkAccessToGroup)(const char *appId, const char *groupId); - int32_t (*getPkInfoList)(const char *appId, const char *queryParams, char **returnInfoList, - uint32_t *returnInfoNum); int32_t (*addGroupManager)(const char *appId, const char *groupId, const char *managerAppId); int32_t (*addGroupFriend)(const char *appId, const char *groupId, const char *friendAppId); int32_t (*deleteGroupManager)(const char *appId, const char *groupId, const char *managerAppId); diff --git a/services/authenticators/inc/account_unrelated/das_module.h b/services/authenticators/inc/account_unrelated/das_module.h index 819cb72..d57242c 100644 --- a/services/authenticators/inc/account_unrelated/das_module.h +++ b/services/authenticators/inc/account_unrelated/das_module.h @@ -25,7 +25,6 @@ typedef struct DasAuthModuleT { int (*registerLocalIdentity)(const char *, const char *, Uint8Buff *, int); int (*unregisterLocalIdentity)(const char *, const char *, Uint8Buff *, int); int (*deletePeerAuthInfo)(const char *, const char *, Uint8Buff *, int); - int (*getPublicKey)(const char *, const char *, Uint8Buff *, int, Uint8Buff *); } DasAuthModule; bool IsDasSupported(void); diff --git a/services/authenticators/inc/account_unrelated/das_task_main.h b/services/authenticators/inc/account_unrelated/das_task_main.h index 9d3f04e..ca75493 100644 --- a/services/authenticators/inc/account_unrelated/das_task_main.h +++ b/services/authenticators/inc/account_unrelated/das_task_main.h @@ -39,7 +39,5 @@ void DestroyDasProtocolEntities(void); int32_t RegisterLocalIdentityInTask(const char *pkgName, const char *serviceType, Uint8Buff *authId, int userType); int32_t UnregisterLocalIdentityInTask(const char *pkgName, const char *serviceType, Uint8Buff *authId, int userType); int32_t DeletePeerAuthInfoInTask(const char *pkgName, const char *serviceType, Uint8Buff *authIdPeer, int userTypePeer); -int32_t GetPublicKeyInTask(const char *pkgName, const char *serviceType, Uint8Buff *authIdPeer, int userTypePeer, - Uint8Buff *returnPk); #endif diff --git a/services/authenticators/inc/account_unrelated/das_token_manager.h b/services/authenticators/inc/account_unrelated/das_token_manager.h index 4e5bf4f..48e6419 100644 --- a/services/authenticators/inc/account_unrelated/das_token_manager.h +++ b/services/authenticators/inc/account_unrelated/das_token_manager.h @@ -24,7 +24,6 @@ typedef struct TokenManagerT { int (*unregisterLocalIdentity)(const char *, const char *, Uint8Buff *, int); int (*deletePeerAuthInfo)(const char *, const char *, Uint8Buff *, int); int (*computeAndSavePsk)(const PakeParams *); - int (*getPublicKey)(const char *, const char *, Uint8Buff *, int, Uint8Buff *); } TokenManager; #endif diff --git a/services/authenticators/src/account_unrelated/das_module.c b/services/authenticators/src/account_unrelated/das_module.c index 1f60c54..f155f9c 100644 --- a/services/authenticators/src/account_unrelated/das_module.c +++ b/services/authenticators/src/account_unrelated/das_module.c @@ -44,12 +44,6 @@ static int32_t DeleteDasPeerAuthInfo(const char *pkgName, const char *serviceTyp return DeletePeerAuthInfoInTask(pkgName, serviceType, authId, userType); } -static int32_t GetDasPublicKey(const char *pkgName, const char *serviceType, Uint8Buff *authId, int userType, - Uint8Buff *returnPk) -{ - return GetPublicKeyInTask(pkgName, serviceType, authId, userType, returnPk); -} - bool IsDasMsgNeedIgnore(const CJson *in) { uint32_t message = 0; @@ -153,7 +147,6 @@ AuthModuleBase *CreateDasModule(void) g_dasModule.registerLocalIdentity = RegisterDasLocalIdentity; g_dasModule.unregisterLocalIdentity = UnregisterDasLocalIdentity; g_dasModule.deletePeerAuthInfo = DeleteDasPeerAuthInfo; - g_dasModule.getPublicKey = GetDasPublicKey; g_taskInModuleVec = CREATE_HC_VECTOR(TaskInModuleVec) if (InitDasProtocolEntities() != HC_SUCCESS) { LOGE("Init das protocol entities failed."); diff --git a/services/authenticators/src/account_unrelated/das_task_main.c b/services/authenticators/src/account_unrelated/das_task_main.c index 070a553..88e50bf 100644 --- a/services/authenticators/src/account_unrelated/das_task_main.c +++ b/services/authenticators/src/account_unrelated/das_task_main.c @@ -469,25 +469,6 @@ int32_t DeletePeerAuthInfoInTask(const char *pkgName, const char *serviceType, U return res; } -int32_t GetPublicKeyInTask(const char *pkgName, const char *serviceType, Uint8Buff *authIdPeer, int userTypePeer, - Uint8Buff *returnPk) -{ - uint32_t index; - void **ptr = NULL; - FOR_EACH_HC_VECTOR(g_protocolEntityVec, index, ptr) { - if (ptr != NULL && (*ptr) != NULL) { - DasProtocolEntity *temp = (DasProtocolEntity *)(*ptr); - if ((temp->tokenManagerInstance == NULL) || (temp->tokenManagerInstance->getPublicKey == NULL)) { - LOGD("Protocol type: %d, unsupported method!", temp->type); - continue; - } - return temp->tokenManagerInstance->getPublicKey(pkgName, serviceType, authIdPeer, userTypePeer, returnPk); - } - } - LOGE("Failed to find valid protocol!"); - return HC_ERR_NOT_SUPPORT; -} - static uint32_t GetPakeAlgInProtocol(int offset) { uint32_t algInProtocol = PSK_SPEKE; diff --git a/services/authenticators/src/account_unrelated/iso_task/lite_exchange_task/das_lite_token_manager.c b/services/authenticators/src/account_unrelated/iso_task/lite_exchange_task/das_lite_token_manager.c index 931c520..adfe560 100644 --- a/services/authenticators/src/account_unrelated/iso_task/lite_exchange_task/das_lite_token_manager.c +++ b/services/authenticators/src/account_unrelated/iso_task/lite_exchange_task/das_lite_token_manager.c @@ -74,7 +74,6 @@ TokenManager g_symTokenManagerInstance = { .unregisterLocalIdentity = UnregisterLocalIdentity, .deletePeerAuthInfo = DeletePeerAuthInfo, .computeAndSavePsk = NULL, - .getPublicKey = NULL }; const TokenManager *GetLiteTokenManagerInstance(void) diff --git a/services/authenticators/src/account_unrelated/pake_task/standard_exchange_task/das_standard_token_manager.c b/services/authenticators/src/account_unrelated/pake_task/standard_exchange_task/das_standard_token_manager.c index 39218d7..1324166 100644 --- a/services/authenticators/src/account_unrelated/pake_task/standard_exchange_task/das_standard_token_manager.c +++ b/services/authenticators/src/account_unrelated/pake_task/standard_exchange_task/das_standard_token_manager.c @@ -166,42 +166,11 @@ static int32_t ComputeAndSavePsk(const PakeParams *params) return res; } -static int32_t GetPublicKey(const char *pkgName, const char *serviceType, Uint8Buff *authId, int userType, - Uint8Buff *returnPk) -{ - const AlgLoader *loader = GetLoaderInstance(); - Uint8Buff pkgNameBuff = { (uint8_t *)pkgName, strlen(pkgName) }; - Uint8Buff serviceTypeBuff = { (uint8_t *)serviceType, strlen(serviceType) }; - KeyAliasType keyType = userType; - uint8_t keyAliasVal[PAKE_KEY_ALIAS_LEN] = { 0 }; - Uint8Buff keyAliasBuff = { keyAliasVal, PAKE_KEY_ALIAS_LEN }; - int32_t res = GenerateKeyAlias(&pkgNameBuff, &serviceTypeBuff, keyType, authId, &keyAliasBuff); - if (res != HC_SUCCESS) { - LOGE("Failed to generate keyPair alias!"); - return res; - } - - res = loader->checkKeyExist(&keyAliasBuff); - if (res != HC_SUCCESS) { - LOGE("Key pair is not exist!"); - return res; - } - - res = loader->exportPublicKey(&keyAliasBuff, returnPk); - if (res != HC_SUCCESS) { - LOGE("Failed to export public key!"); - return res; - } - LOGI("Get public key successfully!"); - return HC_SUCCESS; -} - TokenManager g_asyTokenManagerInstance = { .registerLocalIdentity = RegisterLocalIdentity, .unregisterLocalIdentity = UnregisterLocalIdentity, .deletePeerAuthInfo = DeletePeerAuthInfo, .computeAndSavePsk = ComputeAndSavePsk, - .getPublicKey = GetPublicKey }; const TokenManager *GetStandardTokenManagerInstance() diff --git a/services/device_auth.c b/services/device_auth.c index eb44c14..847b43e 100644 --- a/services/device_auth.c +++ b/services/device_auth.c @@ -281,7 +281,6 @@ DEVICE_AUTH_API_PUBLIC const DeviceGroupManager *GetGmInstance(void) g_groupManagerInstance->getRegisterInfo = GetRegisterInfo; g_groupManagerInstance->getLocalConnectInfo = NULL; g_groupManagerInstance->checkAccessToGroup = CheckAccessToGroupImpl; - g_groupManagerInstance->getPkInfoList = GetPkInfoListImpl; g_groupManagerInstance->addGroupManager = AddGroupManagerImpl; g_groupManagerInstance->deleteGroupManager = DeleteGroupManagerImpl; g_groupManagerInstance->getGroupManagers = GetGroupManagersImpl; diff --git a/services/frameworks/inc/module/dev_auth_module_manager.h b/services/frameworks/inc/module/dev_auth_module_manager.h index d0a7163..5041a9d 100644 --- a/services/frameworks/inc/module/dev_auth_module_manager.h +++ b/services/frameworks/inc/module/dev_auth_module_manager.h @@ -46,8 +46,6 @@ int32_t UnregisterLocalIdentity(const char *pkgName, const char *serviceType, Ui int moduleType); int32_t DeletePeerAuthInfo(const char *pkgName, const char *serviceType, Uint8Buff *authId, int userType, int moduleType); -int32_t GetPublicKey(const char *pkgName, const char *serviceType, Uint8Buff *authId, int userType, - int moduleType, Uint8Buff *returnPk); // for ACCOUNT int32_t ProcessCredentials(int credentialOpCode, const CJson *in, CJson *out, int moduleType); diff --git a/services/frameworks/src/module/dev_auth_module_manager.c b/services/frameworks/src/module/dev_auth_module_manager.c index 042b43c..7fc7adb 100644 --- a/services/frameworks/src/module/dev_auth_module_manager.c +++ b/services/frameworks/src/module/dev_auth_module_manager.c @@ -146,27 +146,6 @@ int32_t DeletePeerAuthInfo(const char *pkgName, const char *serviceType, Uint8Bu return HC_SUCCESS; } -int32_t GetPublicKey(const char *pkgName, const char *serviceType, Uint8Buff *authId, int userType, - int moduleType, Uint8Buff *returnPk) -{ - if (!IsParamsForDasTokenManagerValid(pkgName, serviceType, authId, userType, moduleType) || returnPk == NULL) { - LOGE("Params for GetPublicKey is invalid."); - return HC_ERR_INVALID_PARAMS; - } - AuthModuleBase *module = GetModule(moduleType); - if (module == NULL) { - LOGE("Failed to get module for das."); - return HC_ERR_MODULE_NOT_FOUNT; - } - DasAuthModule *dasModule = (DasAuthModule *)module; - int32_t res = dasModule->getPublicKey(pkgName, serviceType, authId, userType, returnPk); - if (res != HC_SUCCESS) { - LOGE("Get public key failed, res: %d", res); - return res; - } - return HC_SUCCESS; -} - int32_t ProcessTask(int taskId, const CJson *in, CJson *out, int *status, int moduleType) { if (in == NULL || out == NULL || status == NULL) { diff --git a/services/group_manager/inc/group_manager.h b/services/group_manager/inc/group_manager.h index 0686e34..d1290f0 100644 --- a/services/group_manager/inc/group_manager.h +++ b/services/group_manager/inc/group_manager.h @@ -47,7 +47,6 @@ int32_t RegListenerImpl(const char *appId, const DataChangeListener *listener); int32_t UnRegListenerImpl(const char *appId); int32_t CheckAccessToGroupImpl(const char *appId, const char *groupId); -int32_t GetPkInfoListImpl(const char *appId, const char *queryParams, char **returnInfoList, uint32_t *returnInfoNum); int32_t GetGroupInfoByIdImpl(const char *appId, const char *groupId, char **returnGroupInfo); int32_t GetGroupInfoImpl(const char *appId, const char *queryParams, char **returnGroupVec, uint32_t *groupNum); int32_t GetJoinedGroupsImpl(const char *appId, int groupType, char **returnGroupVec, uint32_t *groupNum); diff --git a/services/group_manager/inc/group_operation.h b/services/group_manager/inc/group_operation.h index c5fa992..0e78b2e 100644 --- a/services/group_manager/inc/group_operation.h +++ b/services/group_manager/inc/group_operation.h @@ -41,8 +41,6 @@ typedef struct { int32_t (*regListener)(const char *appId, const DataChangeListener *listener); int32_t (*unRegListener)(const char *appId); int32_t (*checkAccessToGroup)(const char *appId, const char *groupId); - int32_t (*getPkInfoList)(const char *appId, const char *queryParams, char **returnInfoList, - uint32_t *returnInfoNum); int32_t (*getAccessibleGroupInfoById)(const char *appId, const char *groupId, char **returnGroupInfo); int32_t (*getAccessibleGroupInfo)(const char *appId, const char *queryParams, char **returnGroupVec, uint32_t *groupNum); diff --git a/services/group_manager/src/group_manager.c b/services/group_manager/src/group_manager.c index e188d01..d5022f6 100644 --- a/services/group_manager/src/group_manager.c +++ b/services/group_manager/src/group_manager.c @@ -117,12 +117,6 @@ int32_t CheckAccessToGroupImpl(const char *appId, const char *groupId) return IsGroupSupport() ? GetGroupImplInstance()->checkAccessToGroup(appId, groupId) : HC_ERR_NOT_SUPPORT; } -int32_t GetPkInfoListImpl(const char *appId, const char *queryParams, char **returnInfoList, uint32_t *returnInfoNum) -{ - return IsGroupSupport() ? GetGroupImplInstance()->getPkInfoList(appId, queryParams, returnInfoList, - returnInfoNum) : HC_ERR_NOT_SUPPORT; -} - int32_t GetGroupInfoByIdImpl(const char *appId, const char *groupId, char **returnGroupInfo) { return IsGroupSupport() ? GetGroupImplInstance()->getAccessibleGroupInfoById(appId, groupId, diff --git a/services/group_manager/src/group_operation/group_operation.c b/services/group_manager/src/group_operation/group_operation.c index 27709f6..abd2677 100644 --- a/services/group_manager/src/group_operation/group_operation.c +++ b/services/group_manager/src/group_operation/group_operation.c @@ -186,163 +186,6 @@ static bool IsQueryParamsValid(int groupType, const char *groupId, const char *g } } -static int32_t QueryRelatedGroupsForGetPk(const char *udid, GroupInfoVec *groupInfoVec) -{ - GroupQueryParams dbQueryParams = { 0 }; - dbQueryParams.visibility = GROUP_VISIBILITY_PUBLIC; - dbQueryParams.type = PEER_TO_PEER_GROUP; - dbQueryParams.udid = NULL; - dbQueryParams.authId = NULL; - if (udid != NULL) { - uint32_t peerUdidLen = HcStrlen(udid) + 1; - dbQueryParams.udid = (char *)HcMalloc(peerUdidLen, 0); - if (dbQueryParams.udid == NULL) { - LOGE("Failed to allocate memory for queryParams of udid!"); - return HC_ERR_ALLOC_MEMORY; - } - if (strcpy_s(dbQueryParams.udid, peerUdidLen, udid) != EOK) { - LOGE("Failed to copy udid for queryParams!"); - HcFree(dbQueryParams.udid); - dbQueryParams.udid = NULL; - return HC_ERR_MEMORY_COPY; - } - } - int32_t result = GetJoinedGroupInfoVecByDevId(&dbQueryParams, groupInfoVec); - HcFree(dbQueryParams.udid); - return result; -} - -static int32_t GetPkByParams(const char *groupId, const DeviceInfo *deviceInfo, char *returnPkHexStr, - int32_t returnPkHexStrLen) -{ - /* Use the DeviceGroupManager package name. */ - const char *appId = GROUP_MANAGER_PACKAGE_NAME; - int userType = deviceInfo->devType; - const char *authId = StringGet(&deviceInfo->authId); - if (authId == NULL) { - LOGE("Failed to get authId from deviceInfo!"); - return HC_ERR_DB; - } - Uint8Buff authIdBuff = { 0, 0 }; - authIdBuff.length = HcStrlen(authId); - authIdBuff.val = (uint8_t *)HcMalloc(authIdBuff.length, 0); - if (authIdBuff.val == NULL) { - LOGE("Failed to allocate authIdBuff memory!"); - return HC_ERR_ALLOC_MEMORY; - } - if (memcpy_s(authIdBuff.val, authIdBuff.length, authId, authIdBuff.length) != HC_SUCCESS) { - LOGE("Failed to copy authId!"); - HcFree(authIdBuff.val); - return HC_ERR_MEMORY_COPY; - } - uint8_t returnPkBytes[PUBLIC_KEY_MAX_LENGTH] = { 0 }; - Uint8Buff returnPkBuff = { 0, 0 }; - returnPkBuff.length = PUBLIC_KEY_MAX_LENGTH; - returnPkBuff.val = returnPkBytes; - int32_t res = GetPublicKey(appId, groupId, &authIdBuff, userType, DAS_MODULE, &returnPkBuff); - HcFree(authIdBuff.val); - if (res != HC_SUCCESS) { - return res; - } - res = GetHashResult(returnPkBuff.val, returnPkBuff.length, returnPkHexStr, returnPkHexStrLen); - if (res != HC_SUCCESS) { - LOGE("Failed to get hash for pk!"); - return HC_ERR_HASH_FAIL; - } - return HC_SUCCESS; -} - -static int32_t GeneratePkInfo(const char *queryUdid, const char *groupId, CJson *pkInfo) -{ - DeviceInfo *deviceInfo = CreateDeviceInfoStruct(); - if (deviceInfo == NULL) { - LOGE("Failed to allocate deviceInfo memory!"); - return HC_ERR_ALLOC_MEMORY; - } - int32_t res = GetTrustedDevInfoById(queryUdid, true, groupId, deviceInfo); - if (res != HC_SUCCESS) { - DestroyDeviceInfoStruct(deviceInfo); - return res; - } - char returnPkHexStr[SHA256_LEN * BYTE_TO_HEX_OPER_LENGTH + 1] = { 0 }; - res = GetPkByParams(groupId, deviceInfo, returnPkHexStr, sizeof(returnPkHexStr)); - DestroyDeviceInfoStruct(deviceInfo); - if (res != HC_SUCCESS) { - return res; - } - if (AddStringToJson(pkInfo, FIELD_GROUP_ID, groupId) != HC_SUCCESS) { - LOGE("Failed to add groupId to pkInfo!"); - return HC_ERR_JSON_ADD; - } - if (AddStringToJson(pkInfo, FIELD_PUBLIC_KEY, returnPkHexStr) != HC_SUCCESS) { - LOGE("Failed to add publicKey to pkInfo!"); - return HC_ERR_JSON_ADD; - } - return HC_SUCCESS; -} - -static void AddAllPkInfoToList(const char *queryUdid, const GroupInfoVec *groupInfoVec, CJson *pkInfoList) -{ - uint32_t index; - void **groupInfoPtr; - FOR_EACH_HC_VECTOR(*groupInfoVec, index, groupInfoPtr) { - if ((groupInfoPtr == NULL) || (*groupInfoPtr == NULL)) { - continue; - } - GroupInfo *groupInfo = (GroupInfo *)*groupInfoPtr; - const char *groupId = StringGet(&groupInfo->id); - if (groupId == NULL) { - LOGE("Failed to get groupId from groupInfo!"); - continue; - } - CJson *pkInfo = CreateJson(); - if (pkInfo == NULL) { - LOGE("Failed to create json!"); - continue; - } - int32_t res = GeneratePkInfo(queryUdid, groupId, pkInfo); - if (res != HC_SUCCESS) { - FreeJson(pkInfo); - continue; - } - if (AddObjToArray(pkInfoList, pkInfo) != HC_SUCCESS) { - LOGE("Failed to add pkInfo to pkInfoList!"); - FreeJson(pkInfo); - } - } -} - -static int32_t GeneratePkInfoList(const char *appId, const CJson *params, CJson *pkInfoList) -{ - const char *udid = GetStringFromJson(params, FIELD_UDID); - if (udid == NULL) { - LOGE("Failed to get udid from params!"); - return HC_ERR_JSON_GET; - } - bool isSelfPk = false; - if (GetBoolFromJson(params, FIELD_IS_SELF_PK, &isSelfPk) != HC_SUCCESS) { - LOGE("Failed to get isSelfPk from json!"); - return HC_ERR_JSON_GET; - } - GroupInfoVec groupInfoVec; - CreateGroupInfoVecStruct(&groupInfoVec); - int32_t res = QueryRelatedGroupsForGetPk(udid, &groupInfoVec); - if (res != HC_SUCCESS) { - DestroyGroupInfoVecStruct(&groupInfoVec); - return res; - } - RemoveNoPermissionGroup(&groupInfoVec, appId); - const char *queryUdid = isSelfPk ? GetLocalDevUdid() : udid; - if (queryUdid == NULL) { - LOGE("Failed to get local udid!"); - DestroyGroupInfoVecStruct(&groupInfoVec); - return HC_ERR_DB; - } - AddAllPkInfoToList(queryUdid, &groupInfoVec, pkInfoList); - DestroyGroupInfoVecStruct(&groupInfoVec); - return HC_SUCCESS; -} - static BaseGroup *GetGroupInstance(int32_t groupType) { if (!IsGroupTypeSupported(groupType)) { @@ -849,43 +692,6 @@ static int32_t CheckAccessToGroup(const char *appId, const char *groupId) return HC_SUCCESS; } -static int32_t GetPkInfoList(const char *appId, const char *queryParams, char **returnInfoList, uint32_t *returnInfoNum) -{ - LOGI("[Start]: start to get pk list!"); - if ((appId == NULL) || (queryParams == NULL) || (returnInfoList == NULL) || (returnInfoNum == NULL)) { - LOGE("The input parameters contains NULL value!"); - return HC_ERR_INVALID_PARAMS; - } - CJson *params = CreateJsonFromString(queryParams); - if (params == NULL) { - LOGE("Failed to create json from string!"); - return HC_ERR_JSON_CREATE; - } - CJson *pkInfoList = CreateJsonArray(); - if (pkInfoList == NULL) { - LOGE("Failed to create json array!"); - FreeJson(params); - return HC_ERR_JSON_CREATE; - } - int32_t res = GeneratePkInfoList(appId, params, pkInfoList); - FreeJson(params); - if (res != HC_SUCCESS) { - FreeJson(pkInfoList); - return res; - } - int32_t pkInfoNum = GetItemNum(pkInfoList); - char *pkInfoListStr = PackJsonToString(pkInfoList); - FreeJson(pkInfoList); - if (pkInfoListStr == NULL) { - LOGE("Failed to convert json to string!"); - return HC_ERR_PACKAGE_JSON_TO_STRING_FAIL; - } - *returnInfoList = pkInfoListStr; - *returnInfoNum = pkInfoNum; - LOGI("[End]: Get pk list successfully!"); - return HC_SUCCESS; -} - static int32_t GetAccessibleGroupInfoById(const char *appId, const char *groupId, char **returnGroupInfo) { if ((appId == NULL) || (groupId == NULL) || (returnGroupInfo == NULL)) { @@ -1130,7 +936,6 @@ static const GroupImpl g_groupImplInstance = { .regListener = RegListener, .unRegListener = UnRegListener, .checkAccessToGroup = CheckAccessToGroup, - .getPkInfoList = GetPkInfoList, .getAccessibleGroupInfoById = GetAccessibleGroupInfoById, .getAccessibleGroupInfo = GetAccessibleGroupInfo, .getAccessibleJoinedGroups = GetAccessibleJoinedGroups,