From d84c70e1bff0fbac8c14ed487417bcf279fb2735 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8A=E5=AE=98=E6=99=AF=E5=A8=81?= Date: Fri, 27 Jun 2025 12:26:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dhota=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=BF=9E=E6=8E=A5=E5=85=AC=E5=8F=B8wifi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 上官景威 --- .../main/core/src/cert_manager.c | 8 +++++++ .../core/src/cert_manager_app_cert_process.c | 2 ++ .../main/core/src/cert_manager_auth_mgr.c | 24 +++++++++++++++++++ .../main/core/src/cert_manager_query.c | 5 +++- .../main/core/src/cert_manager_service.c | 4 ++++ .../main/core/src/cm_event_process.c | 4 ++++ .../main/rdb/src/cm_cert_property_rdb.cpp | 2 +- .../main/rdb/src/cm_rdb_open_callback.cpp | 11 +++++---- 8 files changed, 53 insertions(+), 7 deletions(-) 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 2189bb7..a39e3f1 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 @@ -256,6 +256,10 @@ int32_t CmRemoveAppCert(const struct CmContext *context, const struct CmBlob *ke CM_LOG_E("get rdb auth storage level failed, ret = %d", ret); return ret; } + if (level == ERROR_LEVEL) { + level = CM_AUTH_STORAGE_LEVEL_EL1; + CM_LOG_I("Remove cred level is ERROR_LEVEL, change to default level el1"); + } if (store == CM_CREDENTIAL_STORE) { ret = CmAuthDeleteAuthInfo(context, keyUri, level); @@ -417,6 +421,10 @@ static int32_t GetUriAndDeleteRdbData(const char *filePath, struct CmBlob *uriBl CM_LOG_E("get rdb auth storage level failed, ret = %d", ret); return ret; } + if (*level == ERROR_LEVEL) { + *level = CM_AUTH_STORAGE_LEVEL_EL1; + CM_LOG_I("Delete rdb level is ERROR_LEVEL, change to default level el1"); + } ret = DeleteCertProperty((char *)uriBlob->data); if (ret != CM_SUCCESS) { diff --git a/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_app_cert_process.c b/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_app_cert_process.c index 486caef..aea3678 100644 --- a/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_app_cert_process.c +++ b/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_app_cert_process.c @@ -480,11 +480,13 @@ static int32_t StoreKeyAndCert(const struct CmContext *context, const struct CmA level = param->level; break; case CM_CREDENTIAL_STORE: + /* If not found, specify the level el2 */ if (level == ERROR_LEVEL) { level = CM_AUTH_STORAGE_LEVEL_EL2; } break; default: + /* whether you find it or not, specify the level el1 */ level = CM_AUTH_STORAGE_LEVEL_EL1; break; } diff --git a/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_auth_mgr.c b/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_auth_mgr.c index 85e2a6d..b46074b 100755 --- a/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_auth_mgr.c +++ b/services/cert_manager_standard/cert_manager_engine/main/core/src/cert_manager_auth_mgr.c @@ -364,6 +364,10 @@ int32_t CmAuthGrantAppCertificate(const struct CmContext *context, const struct CM_LOG_E("get rdb auth storage level failed, ret = %d", ret); break; } + if (level == ERROR_LEVEL) { + level = CM_AUTH_STORAGE_LEVEL_EL1; + CM_LOG_I("grant level is ERROR_LEVEL, change to default level el1"); + } ret = CheckCallerIsProducer(context, &uriObj); if (ret != CM_SUCCESS) { @@ -534,6 +538,10 @@ int32_t CmAuthIsAuthorizedApp(const struct CmContext *context, const struct CmBl CM_LOG_E("get rdb auth storage level failed, ret = %d", ret); break; } + if (level == ERROR_LEVEL) { + level = CM_AUTH_STORAGE_LEVEL_EL1; + CM_LOG_I("Is authed app level is ERROR_LEVEL, change to default level el1"); + } ret = CheckIsAuthorizedApp(&uriObj, level); if (ret != CM_SUCCESS) { @@ -566,6 +574,10 @@ int32_t CmAuthRemoveGrantedApp(const struct CmContext *context, const struct CmB CM_LOG_E("get rdb auth storage level failed, ret = %d", ret); break; } + if (level == ERROR_LEVEL) { + level = CM_AUTH_STORAGE_LEVEL_EL1; + CM_LOG_I("Remove granted app level is ERROR_LEVEL, change to default level el1"); + } ret = CheckCallerIsProducer(context, &uriObj); if (ret != CM_SUCCESS) { @@ -676,6 +688,10 @@ int32_t CmAuthDeleteAuthInfoByUserId(uint32_t userId, const struct CmBlob *uri) CM_LOG_E("get rdb auth storage level failed, ret = %d", ret); break; } + if (level == ERROR_LEVEL) { + level = CM_AUTH_STORAGE_LEVEL_EL1; + CM_LOG_I("Delete auth user level is ERROR_LEVEL, change to default level el1"); + } ret = DeleteAuthInfo(userId, uri, &appUidList, level); if (ret != CM_SUCCESS) { @@ -719,6 +735,10 @@ int32_t CmAuthDeleteAuthInfoByUid(uint32_t userId, uint32_t targetUid, const str CM_LOG_E("get rdb auth storage level failed, ret = %d", ret); break; } + if (level == ERROR_LEVEL) { + level = CM_AUTH_STORAGE_LEVEL_EL1; + CM_LOG_I("Delete auth app level is ERROR_LEVEL, change to default level el1"); + } uint32_t appUid[] = { targetUid }; struct CmAppUidList appUidList = { sizeof(appUid) / sizeof(uint32_t), appUid }; @@ -747,6 +767,10 @@ static int32_t CheckCommonPermission(const struct CmContext *context, const stru CM_LOG_E("get rdb auth storage level failed, ret = %d", ret); return ret; } + if (level == ERROR_LEVEL) { + level = CM_AUTH_STORAGE_LEVEL_EL1; + CM_LOG_I("Check permission level is ERROR_LEVEL, change to default level el1"); + } ret = CheckCallerIsProducer(context, uriObj); if (ret == CM_SUCCESS) { 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 af74968..ee3d411 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 @@ -660,13 +660,16 @@ int32_t GetRdbAuthStorageLevel(const struct CmBlob *keyUri, enum CmAuthStorageLe struct CertProperty certProp; (void)memset_s(&certProp, sizeof(struct CertProperty), 0, sizeof(struct CertProperty)); + /* Even if the queried data is empty, the return value is also success, + * this value is used to determine whether the query is successful + */ certProp.level = ERROR_LEVEL; int32_t ret = QueryCertProperty((char *)keyUri->data, &certProp); if (ret != CM_SUCCESS) { CM_LOG_E("Failed to QueryCertProperty, ret: %d", ret); return ret; } - /* If the return value of level is ERROR_LEVEL, nothing is found */ + *level = certProp.level; 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 45be990..835b06f 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 @@ -294,6 +294,10 @@ int32_t CmServiceInit(const struct CmContext *context, const struct CmBlob *auth CM_FREE_PTR(commonUri.data); return ret; } + if (level == ERROR_LEVEL) { + level = CM_AUTH_STORAGE_LEVEL_EL1; + CM_LOG_I("Init level is ERROR_LEVEL, change to default level el1"); + } ret = CmKeyOpInit(context, &commonUri, spec, level, handle); CM_FREE_PTR(commonUri.data); 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 12064eb..7d61237 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 @@ -66,6 +66,10 @@ static int32_t CmTraversalDirActionCredential(const char *filePath, const char * CM_LOG_E("get storage level failed, ret: %d", ret); return ret; } + if (level == ERROR_LEVEL) { + level = CM_AUTH_STORAGE_LEVEL_EL1; + CM_LOG_I("Traversal dir level is ERROR_LEVEL, change to default level el1"); + } ret = CmKeyOpDeleteKey(&keyUri, level); if (ret != CM_SUCCESS) { /* ignore the return of delete key */ diff --git a/services/cert_manager_standard/cert_manager_engine/main/rdb/src/cm_cert_property_rdb.cpp b/services/cert_manager_standard/cert_manager_engine/main/rdb/src/cm_cert_property_rdb.cpp index 31c0a3d..40768f5 100644 --- a/services/cert_manager_standard/cert_manager_engine/main/rdb/src/cm_cert_property_rdb.cpp +++ b/services/cert_manager_standard/cert_manager_engine/main/rdb/src/cm_cert_property_rdb.cpp @@ -248,7 +248,7 @@ int32_t QueryCertProperty(const char *uri, struct CertProperty *certProperty) return CMR_ERROR_QUERY_RDB_DATA_FAIL; } if (rowCount <= 0) { - CM_LOG_D("Finish to query, cert: %s does not exist in the database", uri); + CM_LOG_I("Finish to query, cert: %s does not exist in the database", uri); return CM_SUCCESS; } diff --git a/services/cert_manager_standard/cert_manager_engine/main/rdb/src/cm_rdb_open_callback.cpp b/services/cert_manager_standard/cert_manager_engine/main/rdb/src/cm_rdb_open_callback.cpp index 2f17106..eb3466d 100644 --- a/services/cert_manager_standard/cert_manager_engine/main/rdb/src/cm_rdb_open_callback.cpp +++ b/services/cert_manager_standard/cert_manager_engine/main/rdb/src/cm_rdb_open_callback.cpp @@ -26,31 +26,32 @@ CmRdbOpenCallback::CmRdbOpenCallback(const RdbConfig &rdbConfig) : rdbConfig_(rd int32_t CmRdbOpenCallback::OnCreate(NativeRdb::RdbStore &rdbStore) { - CM_LOG_D("CmRdbOpenCallback OnCreate"); + CM_LOG_I("CmRdbOpenCallback OnCreate"); return NativeRdb::E_OK; } int32_t CmRdbOpenCallback::OnUpgrade(NativeRdb::RdbStore &rdbStore, int currentVersion, int targetVersion) { - CM_LOG_D("CmRdbOpenCallback OnUpgrade : database upgrade. currentVersion = %{public}d, newVersion = %{public}d", + CM_LOG_I("CmRdbOpenCallback OnUpgrade : database upgrade. currentVersion = %{public}d, newVersion = %{public}d", currentVersion, targetVersion); /* Upgrade the database: Add the AUTH_STORAGE_LEVEL column with a default value of 1 (EL1). */ if (currentVersion == RDB_VERSION_FIRST && targetVersion == RDB_VERSION_CURRENT) { - rdbStore.ExecuteSql("ALTER TABLE " + CERT_PROPERTY_TABLE_NAME + " ADD COLUMN " + + int32_t ret = rdbStore.ExecuteSql("ALTER TABLE " + CERT_PROPERTY_TABLE_NAME + " ADD COLUMN " + COLUMN_AUTH_STORAGE_LEVEL + " INTEGER DEFAULT 1;"); + CM_LOG_I("Upgrade execute sql ret: %d", ret); } return NativeRdb::E_OK; } int32_t CmRdbOpenCallback::OnDowngrade(NativeRdb::RdbStore &rdbStore, int currentVersion, int targetVersion) { - CM_LOG_D("CmRdbOpenCallback OnDowngrade"); + CM_LOG_I("CmRdbOpenCallback OnDowngrade"); return NativeRdb::E_OK; } int32_t CmRdbOpenCallback::OnOpen(NativeRdb::RdbStore &rdbStore) { - CM_LOG_D("CmRdbOpenCallback OnOpen"); + CM_LOG_I("CmRdbOpenCallback OnOpen"); return NativeRdb::E_OK; } } // namespace CertManager -- Gitee