diff --git a/interfaces/kits/napi/src/cm_napi_set_cert_status.cpp b/interfaces/kits/napi/src/cm_napi_set_cert_status.cpp index 0aee2816e66e9608181ff1e0387fa01077a1aaf9..1a3c6e8a48ee79d9e52b5c2b4728ee7c5f2d4893 100644 --- a/interfaces/kits/napi/src/cm_napi_set_cert_status.cpp +++ b/interfaces/kits/napi/src/cm_napi_set_cert_status.cpp @@ -120,10 +120,7 @@ static napi_value SetCertStatusParseParams( static void SetCertStatusExecute(napi_env env, void *data) { SetCertStatusAsyncContext context = static_cast(data); - if (context->store == CM_SYSTEM_TRUSTED_STORE) { - context->result = CmSetCertStatus(context->certUri, context->store, - context->status); - } else if (context->store == CM_USER_TRUSTED_STORE) { + if (context->store == CM_USER_TRUSTED_STORE) { context->result = CmSetUserCertStatus(context->certUri, context->store, context->status); } else { context->result = CMR_ERROR_INVALID_ARGUMENT; diff --git a/services/cert_manager_standard/cert_manager_engine/main/core/include/cert_manager_service.h b/services/cert_manager_standard/cert_manager_engine/main/core/include/cert_manager_service.h index c9e4808500d0aff853258525906903060b351645..a9971dc8769625b08fc3ff8fa0c92060e5cb8e20 100755 --- a/services/cert_manager_standard/cert_manager_engine/main/core/include/cert_manager_service.h +++ b/services/cert_manager_standard/cert_manager_engine/main/core/include/cert_manager_service.h @@ -69,9 +69,6 @@ int32_t CmUninstallUserCert(const struct CmContext *context, const struct CmBlob int32_t CmUninstallAllUserCert(const struct CmContext *context); -int32_t CmServiceSetCertStatus(const struct CmContext *context, const struct CmBlob *certUri, - uint32_t store, uint32_t status); - int32_t CmSetStatusBackupCert( const struct CmContext *context, const struct CmBlob *certUri, uint32_t store, uint32_t status); diff --git a/services/cert_manager_standard/cert_manager_engine/main/core/include/cert_manager_status.h b/services/cert_manager_standard/cert_manager_engine/main/core/include/cert_manager_status.h index 321e6b088391a627535e3c3cc7420a9f61ba4277..5736208179a110057db3090ab3220cae0e0378ab 100644 --- a/services/cert_manager_standard/cert_manager_engine/main/core/include/cert_manager_status.h +++ b/services/cert_manager_standard/cert_manager_engine/main/core/include/cert_manager_status.h @@ -86,6 +86,7 @@ int32_t CmSetStatusEnable(const struct CmContext *context, struct CmMutableBlob int32_t CmGetCertStatus(const struct CmContext *context, struct CertFileInfo *cFile, uint32_t store, uint32_t *status); +int32_t CmGetCertConfigStatus(const char *fileName, uint32_t *status); #ifdef __cplusplus } #endif diff --git a/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager.c b/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager.c index 01c1fc709ab5cbc74d857cd5ae6271e2cfa12216..f6ed66b1b110cb8366f7de97d73d0e082c96cd7b 100644 --- a/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager.c +++ b/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager.c @@ -856,7 +856,6 @@ static int32_t RemoveAllUserCert(const struct CmContext *context, uint32_t store { ASSERT_ARGS(path); struct CmMutableBlob fileNames = { 0, NULL }; - struct CmMutableBlob pathBlob = { strlen(path) + 1, (uint8_t *)path }; /* include '\0' at end. */ struct CmBlob certUri = { 0, NULL }; int32_t ret = CertManagerGetFilenames(&fileNames, path); if (ret != CM_SUCCESS) { @@ -883,11 +882,6 @@ static int32_t RemoveAllUserCert(const struct CmContext *context, uint32_t store CM_LOG_E("User Cert %u remove failed, ret: %d", i, ret); continue; } - ret = CmSetStatusEnable(context, &pathBlob, (struct CmBlob *)(&fNames[i]), store); - if (ret != CM_SUCCESS) { - CM_LOG_E("Update StatusFile %u fail, ret = %d", i, ret); - continue; - } } FreeFileNames(fNames, fileNames.size); diff --git a/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_query.c b/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_query.c index eef37da5d5b037eaa1f55dbecef96d8a2b21201e..1fc3d1d4b5838fa11b2800a218701919a99deeb3 100644 --- a/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_query.c +++ b/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_query.c @@ -551,12 +551,6 @@ int32_t CmGetCertListInfo(const struct CmContext *context, uint32_t store, return ret; } - ret = CmGetCertStatus(&certContext, &cFileList[i], store, &status[i]); /* status */ - if (ret != CM_SUCCESS) { - CM_LOG_E("Failed to get cert status"); - return CMR_ERROR_GET_CERT_STATUS; - } - if (memcpy_s(certBlob->uri[i].data, MAX_LEN_URI, cFileList[i].fileName.data, cFileList[i].fileName.size) != EOK) { CM_LOG_E("Failed to get cert uri"); @@ -585,6 +579,16 @@ int32_t CmGetCertListInfo(const struct CmContext *context, uint32_t store, return ret; } CM_FREE_BLOB(certData); + + if (store == CM_SYSTEM_TRUSTED_STORE) { + status[i] = CERT_STATUS_ENABLED; + continue; + } + ret = CmGetCertConfigStatus((char *)cFileList[i].fileName.data, &status[i]); + if (ret != CM_SUCCESS) { + CM_LOG_E("Failed to get cert status, ret = %d", ret); + return CMR_ERROR_GET_CERT_STATUS; + } } return ret; } diff --git a/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_service.c b/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_service.c index 308ae1be946fa47dcb890cb1d8be0ad86cc869a4..433f59ca78219fac4f83c6e67939775ce9948b1e 100644 --- a/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_service.c +++ b/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_service.c @@ -506,7 +506,7 @@ static int32_t CmGetHapUserCertList(const struct CmContext *context, const struc } ret = CmGetCertPathList(&cmContext, CM_USER_TRUSTED_STORE, pathList); if (ret != CM_SUCCESS) { - CM_LOG_E("get current or gloval cert path list failed"); + CM_LOG_E("get current or global cert path list failed"); return ret; } } @@ -605,14 +605,9 @@ static int32_t CmServiceGetSysCertInfo(const struct CmContext *context, const st ret = CMR_ERROR_NOT_EXIST; break; } + *status = CERT_STATUS_ENABLED; struct CertFileInfo *cFileList = (struct CertFileInfo *)certFileList.data; - ret = CmGetCertStatus(context, &cFileList[matchIndex], store, status); /* status */ - if (ret != CM_SUCCESS) { - CM_LOG_E("Failed to get cert status"); - break; - } - ret = CmStorageGetBuf((char *)cFileList[matchIndex].path.data, (char *)cFileList[matchIndex].fileName.data, certificateData); /* cert data */ if (ret != CM_SUCCESS) { @@ -643,20 +638,25 @@ static int32_t CmServiceGetUserCertInfo(struct CmContext *context, const struct CM_LOG_E("Failed to construct uidpath"); return ret; } - struct CmBlob path = {MAX_PATH_LEN, (uint8_t *)uidPath}; struct CertFileInfo cFile = {*certUri, path}; - ret = CmGetCertStatus(context, &cFile, store, status); /* status */ + ret = CmStorageGetBuf(uidPath, (char *)cFile.fileName.data, certificateData); /* cert data */ if (ret != CM_SUCCESS) { - CM_LOG_E("Failed to get cert status"); + CM_LOG_E("Failed to get cert data"); return ret; } - ret = CmStorageGetBuf(uidPath, (char *)cFile.fileName.data, certificateData); /* cert data */ - if (ret != CM_SUCCESS) { - CM_LOG_E("Failed to get cert data"); + if (store == CM_SYS_CREDENTIAL_STORE) { + *status = CERT_STATUS_ENABLED; return ret; } + ret = CmGetCertConfigStatus((char *)cFile.fileName.data, status); + if (ret != CM_SUCCESS) { + CM_LOG_E("Failed to get cert status, ret = %d", ret); + CM_FREE_PTR(certificateData->data); + certificateData->size = 0; + return CMR_ERROR_GET_CERT_STATUS; + } return ret; } @@ -775,6 +775,72 @@ static int32_t GetUserCertNameAndPath(const struct CmContext *context, const str return ret; } +static int32_t GetCertFileHash(const struct CmBlob *certFileData, struct CmBlob *certFileHash) +{ + uint8_t certAliasData[] = ""; + struct CmBlob certAlias = { sizeof(certAliasData), certAliasData }; + // get cert file hash + int ret = GetObjNameFromCertData(certFileData, &certAlias, certFileHash); + if (ret != CM_SUCCESS) { + CM_LOG_E("get objName from certData failed, ret = %d", ret); + } + return ret; +} + +static int32_t FindDuplicateUserCert(const struct CmContext *context, const char *objectName, + struct CmBlob *outUri) +{ + if (context == NULL || objectName == NULL || outUri == NULL) { + CM_LOG_E("params null pointer"); + return CMR_ERROR_NULL_POINTER; + } + struct CmMutableBlob certFileList = { 0, NULL }; + const struct UserCAProperty prop = { INIT_INVALID_VALUE, CM_CURRENT_USER }; + int32_t ret = CmServiceGetCertList(context, &prop, CM_USER_TRUSTED_STORE, &certFileList); + if (ret != CM_SUCCESS) { + CM_LOG_E("get cert file list failed"); + return ret; + } + struct CertFileInfo *cFileList = (struct CertFileInfo *)certFileList.data; + ret = CMR_ERROR_NOT_EXIST; + for (uint32_t i = 0; i < certFileList.size; i++) { + char fileName[MAX_PATH_LEN] = { 0 }; + if (sprintf_s(fileName, MAX_PATH_LEN, "%s/%s", cFileList[i].path.data, cFileList[i].fileName.data) < 0) { + CM_LOG_E("Failed sprint fileName"); + return CMR_ERROR_MEM_OPERATION_PRINT; + } + struct CmBlob certData = { 0, NULL }; + ret = CmStorageGetBuf((char *)cFileList[i].path.data, (char *)cFileList[i].fileName.data, &certData); + if (ret != CM_SUCCESS) { + CM_LOG_E("get cert data failed"); + break; + } + uint8_t certFileHashData[MAX_LEN_CERT_ALIAS] = { 0 }; + struct CmBlob certFileHash = { sizeof(certFileHashData), certFileHashData }; + ret = GetCertFileHash(&certData, &certFileHash); + CM_FREE_BLOB(certData); + if (ret != CM_SUCCESS) { + CM_LOG_E("get certFileHash failed"); + break; + } + if (strcmp((char *)certFileHashData, objectName) != 0) { + ret = CMR_ERROR_NOT_EXIST; + continue; + } + if (memcpy_s(outUri->data, outUri->size, cFileList[i].fileName.data, cFileList[i].fileName.size) != EOK) { + CM_LOG_E("Copy cert uri failed"); + ret = CMR_ERROR_MEM_OPERATION_COPY; + break; + } + ret = CM_SUCCESS; + break; + } + if (certFileList.data != NULL) { + CmFreeCertFiles((struct CertFileInfo *)certFileList.data, certFileList.size); + } + return ret; +} + int32_t CmInstallUserCert(const struct CmContext *context, const struct CmBlob *userCert, const struct CmBlob *certAlias, const uint32_t status, struct CmBlob *certUri) { @@ -796,6 +862,14 @@ int32_t CmInstallUserCert(const struct CmContext *context, const struct CmBlob * break; } + if (strcmp("", (char *)certAlias->data) == 0) { + ret = FindDuplicateUserCert(context, (char *)objectBuf, certUri); + if (ret == CM_SUCCESS) { + CM_LOG_I("Find duplicate userCert"); + break; + } + } + ret = CmWriteUserCert(context, &pathBlob, userCert, &objectName, certUri); if (ret != CM_SUCCESS) { CM_LOG_E("CertManagerWriteUserCert fail"); @@ -811,12 +885,6 @@ int32_t CmInstallUserCert(const struct CmContext *context, const struct CmBlob * break; } - ret = SetcertStatus(context, certUri, CM_USER_TRUSTED_STORE, status, NULL); - if (ret != CM_SUCCESS) { - CM_LOG_E("SetcertStatus fail"); - break; - } - if (status == CERT_STATUS_ENABLED) { ret = TryBackupUserCert(context, userCert, certUri, &pathBlob); if (ret != CM_SUCCESS) { @@ -1017,13 +1085,7 @@ int32_t CmUninstallUserCert(const struct CmContext *context, const struct CmBlob CM_LOG_E("CmRemoveBackupUserCert fail"); break; } - ret = CmSetStatusEnable(context, &pathBlob, certUri, store); - if (ret != CM_SUCCESS) { - CM_LOG_E("UpdateStatusFile fail, ret = %d", ret); - break; - } } while (0); - return ret; } @@ -1053,16 +1115,6 @@ int32_t CmUninstallAllUserCert(const struct CmContext *context) return ret; } -int32_t CmServiceSetCertStatus(const struct CmContext *context, const struct CmBlob *certUri, - uint32_t store, uint32_t status) -{ - if (CmCheckBlob(certUri) != CM_SUCCESS || CheckUri(certUri) != CM_SUCCESS) { - CM_LOG_E("input params invalid"); - return CMR_ERROR_INVALID_ARGUMENT_URI; - } - return SetcertStatus(context, certUri, store, status, NULL); -} - int32_t CmSetStatusBackupCert( const struct CmContext *context, const struct CmBlob *certUri, uint32_t store, uint32_t status) { diff --git a/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_status.c b/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_status.c index e3276e7cda4b8d46ebe9caa0ce2e51e76a7178a5..cad829f4a513855567de2db6566d6829045d4f9c 100644 --- a/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_status.c +++ b/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_status.c @@ -28,6 +28,8 @@ #include "cm_log.h" #include "cm_type.h" #include "rbtree.h" +#include "cert_manager_uri.h" +#include "cert_manager_storage.h" #define HEADER_LEN (4 + CM_INTEGRITY_TAG_LEN + CM_INTEGRITY_SALT_LEN) #define APPLICATION_TRUSTED_STORE 2 @@ -848,6 +850,38 @@ int32_t CmGetCertStatus(const struct CmContext *context, struct CertFileInfo *cF return CertManagerStatusFile(context, certFile, store, CERT_STATUS_INVALID, status); } + +int32_t CmGetCertConfigStatus(const char *fileName, uint32_t *status) +{ + if (fileName == NULL || status == NULL) { + CM_LOG_E("Check param invalid"); + return CMR_ERROR_INVALID_ARGUMENT; + } + struct CMUri uriObj = { 0 }; + int32_t ret = CertManagerUriDecode(&uriObj, fileName); + if (ret != CM_SUCCESS) { + CM_LOG_E("Failed to decode uri, ret = %d", ret); + return ret; + } + char confFilePath[CERT_MAX_PATH_LEN] = { 0 }; + if (sprintf_s(confFilePath, CERT_MAX_PATH_LEN, "%s/%s/%s/%s%s", CERT_BACKUP_CONFIG_ROOT_DIR, uriObj.user, + uriObj.app, fileName, CERT_CONFIG_FILE_SUFFIX) < 0) { + CM_LOG_E("Failed sprintf conf file path"); + (void)CertManagerFreeUri(&uriObj); + return CMR_ERROR_BUFFER_TOO_SMALL; + } + (void)CertManagerFreeUri(&uriObj); + + ret = CmIsFileExist(NULL, confFilePath); + if (ret != CM_SUCCESS) { + CM_LOG_I("Cert config file not exist"); + *status = CERT_STATUS_DISABLED; + } else { + CM_LOG_I("Cert config file exist"); + *status = CERT_STATUS_ENABLED; + } + return CM_SUCCESS; +} #ifdef __cplusplus } #endif diff --git a/services/cert_manager_standard/cert_manager_engine/main/core/src/cm_event_process.c b/services/cert_manager_standard/cert_manager_engine/main/core/src/cm_event_process.c index 64720dd59fba72ad2a1f234b3f6bd331a4f8921c..7ab2dd68223adade318f0477f294d7267b9ee498 100644 --- a/services/cert_manager_standard/cert_manager_engine/main/core/src/cm_event_process.c +++ b/services/cert_manager_standard/cert_manager_engine/main/core/src/cm_event_process.c @@ -82,20 +82,12 @@ static int32_t CmTraversalDirActionUserCa(const struct CmContext *context, const return ret; } - struct CmBlob certUri = { strlen(fileName) + 1, (uint8_t *)fileName }; /* include '\0' at end. */ ret = DeleteCertProperty(fileName); if (ret != CM_SUCCESS) { CM_LOG_E("delete user ca cert property failed, ret: %d", ret); return ret; } - struct CmMutableBlob pathBlob = { strlen(filePath) + 1, (uint8_t *)filePath }; - ret = CmSetStatusEnable(context, &pathBlob, &certUri, store); - if (ret != CM_SUCCESS) { - CM_LOG_E("User set status faild, ret: %d", ret); - return ret; - } - return CM_SUCCESS; } diff --git a/services/cert_manager_standard/cert_manager_service/main/os_dependency/idl/cm_ipc/cm_ipc_service.c b/services/cert_manager_standard/cert_manager_service/main/os_dependency/idl/cm_ipc/cm_ipc_service.c index 462e283c85522e901001e309c91051fec5b2565a..19a34024ebd544aa20864406c941274a78f6a067 100644 --- a/services/cert_manager_standard/cert_manager_service/main/os_dependency/idl/cm_ipc/cm_ipc_service.c +++ b/services/cert_manager_standard/cert_manager_service/main/os_dependency/idl/cm_ipc/cm_ipc_service.c @@ -198,12 +198,6 @@ void CmIpcServiceSetCertStatus(const struct CmBlob *paramSetBlob, struct CmBlob CM_LOG_E("CmServiceSetCertStatusCheck check failed, ret = %d", ret); break; } - - ret = CmServiceSetCertStatus(&cmContext, &certUri, store, status); - if (ret != CM_SUCCESS) { - CM_LOG_E("set system cert status failed, ret = %d", ret); - break; - } } while (0); CmReport(__func__, &cmContext, &certUri, ret); @@ -1171,11 +1165,6 @@ void CmIpcServiceSetUserCertStatus(const struct CmBlob *paramSetBlob, struct CmB break; } - ret = CmServiceSetCertStatus(&cmContext, &certUri, store, status); - if (ret != CM_SUCCESS) { - CM_LOG_E("set user cert status failed, ret = %d", ret); - break; - } ret = CmSetStatusBackupCert(&cmContext, &certUri, store, status); if (ret != CM_SUCCESS) { CM_LOG_E("CmSetStatusBackupCert failed, ret = %d", ret); diff --git a/test/unittest/src/cm_set_status_test.cpp b/test/unittest/src/cm_set_status_test.cpp index 4a5c9a13921ac1761cb3f6f7443119a0c4613fee..fb505809aac16ae1d891a008ad45f940c0432004 100644 --- a/test/unittest/src/cm_set_status_test.cpp +++ b/test/unittest/src/cm_set_status_test.cpp @@ -29,10 +29,10 @@ struct CertStatusExpectResult { struct CertStatusExpectResult g_expectList[] = { { - {"1d3472b9.0"}, false, false + {"1d3472b9.0"}, false, true }, { - {"4bfab552.0"}, false, false + {"4bfab552.0"}, false, true }, { {"4f316efb.0"}, true, true @@ -108,7 +108,7 @@ HWTEST_F(CmSetCertStatusTest, SetCertStatusAndQueryStatus002, TestSize.Level0) EXPECT_EQ(ret, CM_SUCCESS) << "SetCertStatusAndQueryStatus,CmGetCertInfo failed,retcode: " << ret; int32_t status = (g_expectList[i].expectStatus == certDetailInfo.status) ? 1 : 0; - EXPECT_EQ(status, 1) << "SetCertStatusAndQueryStatus faild, cert info: " << DumpCertInfo(&certDetailInfo); + EXPECT_EQ(status, 0) << "SetCertStatusAndQueryStatus faild, cert info: " << DumpCertInfo(&certDetailInfo); FreeCMBlobData(&(certDetailInfo.certInfo)); ret = CmSetCertStatus(&uriBlob, CM_SYSTEM_TRUSTED_STORE, true); diff --git a/test/unittest/src/cm_user_cert_test.cpp b/test/unittest/src/cm_user_cert_test.cpp index e2b97cbb2c3b6ffb559da6d13cf7ce66c7d89b15..8a029578f2b0be899d741d92f812b890efd6a30b 100755 --- a/test/unittest/src/cm_user_cert_test.cpp +++ b/test/unittest/src/cm_user_cert_test.cpp @@ -14,6 +14,7 @@ */ #include +#include #include "cm_test_log.h" #include "cm_test_common.h" #include "cert_manager_api.h" @@ -851,6 +852,40 @@ HWTEST_F(CmUserCertTest, InstallUserCertTest029, TestSize.Level0) CM_FREE_PTR(certUriList.uriList); } +/** + * @tc.name: InstallUserCertTest030 + * @tc.desc: Test CertManager Install user cert interface function + * @tc.type: FUNC + * @tc.require: AR000H0MJ8 /SR000H09N7 + */ +HWTEST_F(CmUserCertTest, InstallUserCertTest030, TestSize.Level0) +{ + int32_t ret; + uint8_t uriBuf0301[MAX_URI_LEN] = {0}; + struct CmBlob certUri301 = { sizeof(uriBuf0301), uriBuf0301 }; + + char aliasBuf1[] = "test_alias"; + struct CmBlob alias0301 = { strlen(aliasBuf1) + 1, reinterpret_cast(aliasBuf1) }; + + ret = CmInstallUserCACert(&userCert[0], &alias0301, TEST_USERID, true, &certUri301); + EXPECT_EQ(ret, CM_SUCCESS) << "Normal install user ca cert test failed, recode:" << ret; + + uint8_t uriBuf0302[MAX_URI_LEN] = {0}; + struct CmBlob certUri302 = { sizeof(uriBuf0302), uriBuf0302 }; + + char aliasBuf2[] = ""; + struct CmBlob alias0302 = { strlen(aliasBuf2) + 1, reinterpret_cast(aliasBuf2) }; + + ret = CmInstallUserCACert(&userCert[0], &alias0302, TEST_USERID, true, &certUri302); + EXPECT_EQ(ret, CM_SUCCESS) << "Normal install same user ca cert test failed, recode:" << ret; + + ret = strcmp((char *)uriBuf0301, (char *)uriBuf0302); + EXPECT_EQ(ret, CM_SUCCESS) << "Normal install same user ca test compare uri failed, recode:" << ret; + + ret = CmUninstallUserTrustedCert(&certUri301); + EXPECT_EQ(ret, CM_SUCCESS) << "Normal uninstall same user ca cert test failed, recode:" << ret; +} + /** * @tc.name: UninstallUserCertTest001 * @tc.desc: Test CertManager Uninstall user cert interface base function @@ -1492,7 +1527,7 @@ HWTEST_F(CmUserCertTest, SetUserCertStatusTest005, TestSize.Level0) reinterpret_cast(g_certStatusExpectResult[1].uri) }; ret = CmSetUserCertStatus(&certUri, 100, true); /* invalid store */ - EXPECT_EQ(ret, CMR_ERROR_INVALID_ARGUMENT) << "Normal set user cert status test failed, recode:" << ret; + EXPECT_EQ(ret, CM_FAILURE) << "Normal set user cert status test failed, recode:" << ret; } /** @@ -1508,7 +1543,7 @@ HWTEST_F(CmUserCertTest, SetUserCertStatusTest006, TestSize.Level0) struct CmBlob invalidCertUri = { sizeof(invalidUriBuf), invalidUriBuf }; ret = CmSetUserCertStatus(&invalidCertUri, CM_USER_TRUSTED_STORE, true); - EXPECT_EQ(ret, CMR_ERROR_NOT_FOUND) << "Normal set user cert status test failed, recode:" << ret; + EXPECT_EQ(ret, CM_FAILURE) << "Normal set user cert status test failed, recode:" << ret; } /**