diff --git a/cert_mgr_service/build/certconfig.gni b/cert_mgr_service/build/certconfig.gni index 28075df7606c114ba35d540b9d226878e091573a..0c61268741e4a06ad6b5a454e5d4d4ddf8d047f2 100644 --- a/cert_mgr_service/build/certconfig.gni +++ b/cert_mgr_service/build/certconfig.gni @@ -8,14 +8,14 @@ certmanager_kits_path = "${certmanager_path}/interfaces/kits/napi" # 支持构建种类 declare_args() { - l2_shared_release = "l2_shared_release" - l2_shared_debug = "l2_shared_debug" + cert_release = "cert_release" + cert_debug = "cert_debug" } # 配置构建参数 declare_args() { # 构建版本 - cert_build_target = l2_shared_release + cert_build_target = cert_release # 模拟网络认证数据开关。true:模拟网络数据; false:访问真实网络数据。 enable_cert_test_mock_network = false @@ -31,6 +31,9 @@ declare_args() { # 控制测试demo开关 enable_cert_test_sample = false + + # 控制DFX开关。 true:开启dfx + enable_cert_debug_dfx = false } # 声明通用全局宏 @@ -38,9 +41,11 @@ declare_args() { # 调试debug开关 enable_cert_common_debug = false + # 调试网络HOST debug开关 + enable_cert_network_host_debug = false } # 设置通用全局宏 -if (cert_build_target == l2_shared_debug) { +if (cert_build_target == cert_debug) { enable_cert_common_debug = true } \ No newline at end of file diff --git a/cert_mgr_service/services/core/BUILD.gn b/cert_mgr_service/services/core/BUILD.gn index a5f1f3d9c160e0b4b9fc10fdf4b528630143aeda..3ab6f3342fc088532883f798325e8f0acd91dbed 100644 --- a/cert_mgr_service/services/core/BUILD.gn +++ b/cert_mgr_service/services/core/BUILD.gn @@ -14,6 +14,40 @@ import("//build/ohos.gni") import("//base/cert_mgr_service/build/certconfig.gni") +sources_common = [ + "cert_entry.c", + "adapter/cert_adapter.c", + "adapter/cert_adapter_os.c", + "adapter/cert_adapter_oem.c", + "adapter/cert_adapter_mock.c", + "cert/cert_service.c", + "cert/cert_service_auth.c", + "cert/cert_service_active.c", + "cert/cert_service_challenge.c", + "cert/cert_service_reset.c", + "cert/cert_service_device.c", + "network/cert_network.c", + "security/cert_security.c", + "security/cert_security_token.c", + "security/cert_security_ticket.c", + "utils/cert_utils_file.c", + "utils/cert_utils_json.c", + "utils/cert_utils_log.c", + "utils/cert_utils_timer.c", + "utils/cert_utils_list.c", + "utils/cert_utils.c", +] +if (enable_cert_debug_memory_leak) { + sources_common += [ + "utils/cert_utils_memleak.c", + ] +} + +if (enable_cert_debug_dfx) { + sources_common += [ + "dfx/cert_dfx.c", + ] +} config("cert_mgr_core_config") { visibility = [ ":*" ] cflags = [ @@ -65,31 +99,7 @@ config("cert_mgr_core_config") { } ohos_shared_library("cert_mgr_core") { - sources = [ - "cert_entry.c", - "adapter/cert_adapter.c", - "adapter/cert_adapter_os.c", - "adapter/cert_adapter_oem.c", - "adapter/cert_adapter_mock.c", - "cert/cert_service.c", - "cert/cert_service_auth.c", - "cert/cert_service_active.c", - "cert/cert_service_challenge.c", - "cert/cert_service_reset.c", - "cert/cert_service_device.c", - "network/cert_network.c", - "security/cert_security.c", - "security/cert_security_token.c", - "security/cert_security_ticket.c", - "utils/cert_utils_file.c", - "utils/cert_utils_json.c", - "utils/cert_utils_log.c", - "utils/cert_utils_timer.c", - "utils/cert_utils_list.c", - "utils/cert_utils_memleak.c", - "utils/cert_utils.c", - "dfx/cert_dfx.c", - ] + sources = sources_common configs = [ ":cert_mgr_core_config", diff --git a/cert_mgr_service/services/core/adapter/cert_adapter_mock.c b/cert_mgr_service/services/core/adapter/cert_adapter_mock.c index 4a559d1866f138d9cab20aa648f082b2342cfb34..ccba281d28adc6a1230b9c45b21aaf0f8b64af4d 100644 --- a/cert_mgr_service/services/core/adapter/cert_adapter_mock.c +++ b/cert_mgr_service/services/core/adapter/cert_adapter_mock.c @@ -189,6 +189,7 @@ char* OsGetUdidStub(void) if (ret != CERT_OK) { CERT_LOG_INFO("[OsGetUdidStub] Get udid failed, ret = %d", ret); CERT_MEM_FREE(udidSha256); + return NULL; } CERT_LOG_INFO_ANONY("[OsGetUdidStub] Sha256(udid) = %s\n", udidSha256); return udidSha256; diff --git a/cert_mgr_service/services/core/adapter/cert_adapter_oem.c b/cert_mgr_service/services/core/adapter/cert_adapter_oem.c index d2fbdf8062f8b8d9000f40b5d6703dcfaaf8c945..48e4bb057e5a81a7badd9a4bc9a7e8c5746671f2 100644 --- a/cert_mgr_service/services/core/adapter/cert_adapter_oem.c +++ b/cert_mgr_service/services/core/adapter/cert_adapter_oem.c @@ -78,4 +78,4 @@ int32_t OEMWriteTicket(const TicketInfo* ticketInfo) return CERT_ERR; } return WriteFile(AUTH_RESULT_PATH, TICKET_FILE_NAME, ticket, sizeof(ticket)); -} +} diff --git a/cert_mgr_service/services/core/cert/cert_service.c b/cert_mgr_service/services/core/cert/cert_service.c index 06d05fba32641c098ae49df1bbc62734b652c1a3..7967a12f4576fe113e1809634b4cf21c677a79f6 100644 --- a/cert_mgr_service/services/core/cert/cert_service.c +++ b/cert_mgr_service/services/core/cert/cert_service.c @@ -20,7 +20,9 @@ #include "cert_utils_memleak.h" #include "cert_utils_log.h" #include "cert_security_token.h" +#include "cert_security_ticket.h" #include "cert_adapter.h" +#include "cert_adapter_mock.h" #include "cert_service_auth.h" #include "cert_service_reset.h" #include "cert_service_active.h" @@ -30,7 +32,8 @@ #include "cert_service.h" #include "cert_service_device.h" -pthread_mutex_t g_mtx_certmgr = PTHREAD_MUTEX_INITIALIZER; +pthread_mutex_t g_mtxCertMgr = PTHREAD_MUTEX_INITIALIZER; + static int32_t ResetDevice(void) { @@ -170,11 +173,12 @@ static int32_t ActiveToken(AuthResult* authResult) static int32_t ProcCertImpl(void) { CERT_LOG_DEBUG("[ProcCertImpl] Proc cert begin."); + int32_t ret = InitSysData(); // 初始化系统参数 if (ret != CERT_OK) { CERT_LOG_ERROR("[ProcCertImpl] Init system device param failed, ret = %d.", ret); DestroySysData(); - return CERT_ERR; + return CERT_ERR; } if (!IsAuthStatusChg()) { // 检查本地数据是否修改或过期,进行重新认证 @@ -249,7 +253,7 @@ static int32_t ProcCertImpl(void) int32_t ProcCert(void) { - pthread_mutex_lock(&g_mtx_certmgr); + pthread_mutex_lock(&g_mtxCertMgr); PrintCurrentTime(); int32_t ret; if (CERT_DEBUG_MEMORY_LEAK) { @@ -266,7 +270,7 @@ int32_t ProcCert(void) CERT_LOG_INFO("[ProcCert] Destroy mem node list, ret = %d.", ret); } PrintCurrentTime(); - pthread_mutex_unlock(&g_mtx_certmgr); + pthread_mutex_unlock(&g_mtxCertMgr); return ret; } @@ -316,12 +320,12 @@ static int32_t QueryCertStatusImpl(int32_t* authResult, int32_t* softwareResult, int32_t QueryCertStatus(int32_t* authResult, int32_t* softwareResult, char** ticket) { - pthread_mutex_lock(&g_mtx_certmgr); + pthread_mutex_lock(&g_mtxCertMgr); int32_t ret = QueryCertStatusImpl(authResult, softwareResult, ticket); if (ret != CERT_OK) { CERT_LOG_ERROR("[QueryCertStatus] failed ret = %d.", ret); } - pthread_mutex_unlock(&g_mtx_certmgr); + pthread_mutex_unlock(&g_mtxCertMgr); return ret; } diff --git a/cert_mgr_service/services/core/cert/cert_service_active.c b/cert_mgr_service/services/core/cert/cert_service_active.c index e23fb6b726cf3b24a810bf2fff84b051cc3d98da..94ead6171c15eb238f31eb27a7f20a51b9cabd77 100644 --- a/cert_mgr_service/services/core/cert/cert_service_active.c +++ b/cert_mgr_service/services/core/cert/cert_service_active.c @@ -23,6 +23,7 @@ #include "cert_network.h" #include "cert_adapter_mock.h" #include "cert_service_active.h" +#include "cert_security_token.h" int32_t GenActiveMsg(AuthResult* authResult, const ChallengeResult* challengeResult, DevicePacket** devPacket) { @@ -64,7 +65,9 @@ int32_t GenActiveMsg(AuthResult* authResult, const ChallengeResult* challengeRes devicePacket->tokenInfo.uuid = CertStrdup((char*)tokenId); devicePacket->tokenInfo.token = CertStrdup((char*)tokenValueHmac); *devPacket = devicePacket; - CERT_DFX_DEV_PACKET(devicePacket); + if (CERT_DEBUG_DFX) { + CERT_DFX_DEV_PACKET(devicePacket); + } CERT_LOG_DEBUG("[GenActiveMsg] End."); return CERT_OK; } diff --git a/cert_mgr_service/services/core/cert/cert_service_auth.c b/cert_mgr_service/services/core/cert/cert_service_auth.c index 149ec2fdc97d9e50b48fe62e5e93795895f50cf9..ca382c08d77ac8040487ec59c1a56b950c172039 100644 --- a/cert_mgr_service/services/core/cert/cert_service_auth.c +++ b/cert_mgr_service/services/core/cert/cert_service_auth.c @@ -368,7 +368,7 @@ int32_t CheckVersionChanged(AuthStatus* authStatus) } int32_t DecodeAuthStatus(const char* infoByBase64, AuthStatus* authStats) -{ +{ if (infoByBase64 == NULL || strlen(infoByBase64) == 0) { CERT_LOG_ERROR("[DecodeAuthStatus] Invalid parameter"); return CERT_ERR; @@ -687,7 +687,9 @@ int32_t GenAuthMsg(ChallengeResult* challengeResult, DevicePacket** devPacket) return CERT_ERR; } *devPacket = devicePacket; - CERT_DFX_DEV_PACKET(devicePacket); + if (CERT_DEBUG_DFX) { + CERT_DFX_DEV_PACKET(devicePacket); + } CERT_LOG_DEBUG("[GenAuthMsg] End."); return CERT_OK; } @@ -725,6 +727,7 @@ int32_t ParseAuthResultResp(const char* msg, AuthResult* authResult) cJSON* json = cJSON_Parse(msg); if (json == NULL) { CERT_LOG_ERROR("[ParseAuthResultResp] Format error, response is not json format strings"); + DestroyAuthStatus(&authStatus); return CERT_ERR; } int32_t ret = -1; @@ -762,8 +765,10 @@ int32_t ParseAuthResultResp(const char* msg, AuthResult* authResult) ret = 0; } while (0); cJSON_Delete(json); - CERT_DFX_AUTH_RESULT(authResult); - CERT_DFX_AUTH_STATUS(authStatus); + if (CERT_DEBUG_DFX) { + CERT_DFX_AUTH_RESULT(authResult); + CERT_DFX_AUTH_STATUS(authStatus); + } DestroyAuthStatus(&authStatus); CERT_LOG_DEBUG("[ParseAuthResultResp] End."); return ret; diff --git a/cert_mgr_service/services/core/cert/cert_service_challenge.c b/cert_mgr_service/services/core/cert/cert_service_challenge.c index be9b4c2850b3c27877c09402b977cdc827f2731f..53405d8374ff54a04ea1ae8af603a272489eda0b 100644 --- a/cert_mgr_service/services/core/cert/cert_service_challenge.c +++ b/cert_mgr_service/services/core/cert/cert_service_challenge.c @@ -23,7 +23,7 @@ #include "cert_adapter_mock.h" #include "cert_service_challenge.h" -ChallengeResult* CreateChallengeResult(void) +static ChallengeResult* CreateChallengeResult(void) { ChallengeResult* challengeResult = (ChallengeResult *)CERT_MEM_MALLOC(sizeof(ChallengeResult)); if (challengeResult == NULL) { @@ -35,6 +35,77 @@ ChallengeResult* CreateChallengeResult(void) return challengeResult; } +static int32_t GenChallengeMsg(DevicePacket** devPacket) +{ + if (devPacket == NULL) { + CERT_LOG_ERROR("[GenChallengeMsg] Invalid parameter"); + return CERT_ERR; + } + + DevicePacket* devicePacket = CreateDevicePacket(); + if (devicePacket == NULL) { + CERT_LOG_ERROR("[GenChallengeMsg] Create DevicePacket failed"); + return CERT_ERR; + } + + devicePacket->appId = StrdupDevInfo(APP_ID); + devicePacket->tenantId = StrdupDevInfo(TENANT_ID); + devicePacket->randomUuid = StrdupDevInfo(RANDOM_UUID); + devicePacket->udid = StrdupDevInfo(UDID); + devicePacket->productInfo.versionId = StrdupDevInfo(VERSION_ID); + *devPacket = devicePacket; + if (CERT_DEBUG_DFX) { + CERT_DFX_DEV_PACKET(devicePacket); + } + return CERT_OK; +} + +static int32_t SendChallMsg(DevicePacket* devicePacket, char** respMsg, CERT_ACTION_TYPE action) +{ + if (CERT_MOCK_NETWORK_STUB_FLAG) { + return SendChallMsgStub(action, respMsg); + } + if (devicePacket == NULL || respMsg == NULL) { + CERT_LOG_ERROR("[SendChallMsg] Invalid parameter"); + return CERT_ERR; + } + char* recvMsg = NULL; + uint32_t ret = SendCertMsg(devicePacket, CERT_ACTION_CHALLENGE, &recvMsg); + if (ret != CERT_OK) { + CERT_LOG_ERROR("[SendChallMsg] Send CertMsg failed"); + return CERT_ERR; + } + *respMsg = recvMsg; + return ret; +} + +static int32_t ParseChallengeResult(const char* jsonStr, ChallengeResult *challenge) +{ + if (jsonStr == NULL || challenge == NULL) { + CERT_LOG_ERROR("[ParseChallengeResult] Invalid parameter"); + return CERT_ERR; + } + int32_t errorCode = (int32_t) GetObjectItemValueNumber(jsonStr, "errcode"); + if (isnan(errorCode)) { + CERT_LOG_WARN("[ParseChallengeResult] errorCode is nan."); + CERT_LOG_ERROR("[ParseChallengeResult] Parse msg failed."); + return CERT_ERR; + } + if (errorCode != CERT_OK) { + CERT_LOG_ERROR("[ParseChallengeResult] -errorCode = %d.", -errorCode); + return -(errorCode); + } + + challenge->currentTime = GetObjectItemValueNumber(jsonStr, "currentTime"); + if (isnan(challenge->currentTime)) { + CERT_LOG_WARN("[ParseChallengeResult] currentTime is nan."); + CERT_LOG_ERROR("[ParseChallengeResult] GetObjectItem currentTime failed."); + return CERT_ERR; + } + uint32_t ret = GetObjectItemValueStr(jsonStr, "challenge", &(challenge->challenge)); + return ret; +} + void DestroyChallengeResult(ChallengeResult** challengeResult) { if (challengeResult == NULL || *challengeResult == NULL) { @@ -85,7 +156,7 @@ int32_t GetChallenge(ChallengeResult** challResult, CERT_ACTION_TYPE actionType) CERT_LOG_ERROR("[GetChallenge] Create ChallengeResult failed."); return CERT_ERR; } - + int32_t ret; for (int32_t i = 0; i <= WISE_RETRY_CNT; i++) { ret = SetChallenge(challengeResult, actionType); @@ -93,7 +164,9 @@ int32_t GetChallenge(ChallengeResult** challResult, CERT_ACTION_TYPE actionType) break; } } - CERT_DFX_CHALL_RESULT(challengeResult); + if (CERT_DEBUG_DFX) { + CERT_DFX_CHALL_RESULT(challengeResult); + } if (ret != CERT_OK) { CERT_LOG_ERROR("[GetChallenge] Set Challenge failed, ret = %d.", ret); FREE_CHALLENGE_RESULT(challengeResult); @@ -103,73 +176,3 @@ int32_t GetChallenge(ChallengeResult** challResult, CERT_ACTION_TYPE actionType) CERT_LOG_DEBUG("[GetChallenge] end."); return ret; } - -int32_t GenChallengeMsg(DevicePacket** devPacket) -{ - if (devPacket == NULL) { - CERT_LOG_ERROR("[GenChallengeMsg] Invalid parameter"); - return CERT_ERR; - } - - DevicePacket* devicePacket = CreateDevicePacket(); - if (devicePacket == NULL) { - CERT_LOG_ERROR("[GenChallengeMsg] Create DevicePacket failed"); - return CERT_ERR; - } - - devicePacket->appId = StrdupDevInfo(APP_ID); - devicePacket->tenantId = StrdupDevInfo(TENANT_ID); - devicePacket->randomUuid = StrdupDevInfo(RANDOM_UUID); - devicePacket->udid = StrdupDevInfo(UDID); - devicePacket->productInfo.versionId = StrdupDevInfo(VERSION_ID); - *devPacket = devicePacket; - CERT_DFX_DEV_PACKET(devicePacket); - return CERT_OK; -} - -int32_t SendChallMsg(DevicePacket* devicePacket, char** respMsg, CERT_ACTION_TYPE action) -{ - if (CERT_MOCK_NETWORK_STUB_FLAG) { - return SendChallMsgStub(action, respMsg); - } - if (devicePacket == NULL || respMsg == NULL) { - CERT_LOG_ERROR("[SendChallMsg] Invalid parameter"); - return CERT_ERR; - } - char* recvMsg = NULL; - uint32_t ret = SendCertMsg(devicePacket, CERT_ACTION_CHALLENGE, &recvMsg); - if (ret != CERT_OK) { - CERT_LOG_ERROR("[SendChallMsg] Send CertMsg failed"); - return CERT_ERR; - } - *respMsg = recvMsg; - return ret; -} - -int32_t ParseChallengeResult(const char* jsonStr, ChallengeResult *challenge) -{ - if (jsonStr == NULL || challenge == NULL) { - CERT_LOG_ERROR("[ParseChallengeResult] Invalid parameter"); - return CERT_ERR; - } - int32_t errorCode = (int32_t) GetObjectItemValueNumber(jsonStr, "errcode"); - if (isnan(errorCode)) { - CERT_LOG_WARN("[ParseChallengeResult] errorCode is nan."); - CERT_LOG_ERROR("[ParseChallengeResult] Parse msg failed."); - return CERT_ERR; - } - if (errorCode != CERT_OK) { - CERT_LOG_ERROR("[ParseChallengeResult] -errorCode = %d.", -errorCode); - return -(errorCode); - } - - challenge->currentTime = GetObjectItemValueNumber(jsonStr, "currentTime"); - if (isnan(challenge->currentTime)) { - CERT_LOG_WARN("[ParseChallengeResult] currentTime is nan."); - CERT_LOG_ERROR("[ParseChallengeResult] GetObjectItem currentTime failed."); - return CERT_ERR; - } - uint32_t ret = GetObjectItemValueStr(jsonStr, "challenge", &(challenge->challenge)); - return ret; -} - diff --git a/cert_mgr_service/services/core/cert/cert_service_device.c b/cert_mgr_service/services/core/cert/cert_service_device.c index c7e009bb32602d115662c2e136ff39f5327c7b9a..132030ef40414212ee56ef1eb2318ba02f24fba8 100644 --- a/cert_mgr_service/services/core/cert/cert_service_device.c +++ b/cert_mgr_service/services/core/cert/cert_service_device.c @@ -96,7 +96,7 @@ static void PrintDevSysInfo(void) CERT_LOG_INFO("--------------------------"); } -int32_t InitSysData(void) +int32_t InitSysData(void) { CERT_LOG_DEBUG("[InitSysData] Begin."); diff --git a/cert_mgr_service/services/core/cert/cert_service_reset.c b/cert_mgr_service/services/core/cert/cert_service_reset.c index 099aebb1c56b826fb3a939bce57991d183a121f8..8bf1ef8b0912e206ff8ef42996ae78a2c408b9dc 100644 --- a/cert_mgr_service/services/core/cert/cert_service_reset.c +++ b/cert_mgr_service/services/core/cert/cert_service_reset.c @@ -52,7 +52,9 @@ int32_t GenResetMsg(ChallengeResult* challengeResult, DevicePacket** devPacket) devicePacket->tokenInfo.uuid = CertStrdup((char*)tokenId); devicePacket->tokenInfo.token = CertStrdup((char*)tokenValueHmac); *devPacket = devicePacket; - CERT_DFX_DEV_PACKET(devicePacket); + if (CERT_DEBUG_DFX) { + CERT_DFX_DEV_PACKET(devicePacket); + } CERT_LOG_DEBUG("[GenResetMsg] End."); return CERT_OK; } diff --git a/cert_mgr_service/services/core/cert_entry.h b/cert_mgr_service/services/core/cert_entry.h index 23b4a471f0a660680ab63d5f30fa091d8f1e205d..79a647de3dbb3ceb80559b9612790f56001a8145 100644 --- a/cert_mgr_service/services/core/cert_entry.h +++ b/cert_mgr_service/services/core/cert_entry.h @@ -16,13 +16,14 @@ #ifndef CERT_ENTRY_H #define CERT_ENTRY_H +#include + #ifdef __cplusplus #if __cplusplus extern "C" { #endif #endif /* __cplusplus */ - int32_t CertTask(void); int32_t QueryCert(int32_t* authResult, int32_t* softwareResult, char** ticket); diff --git a/cert_mgr_service/services/core/dfx/cert_dfx.c b/cert_mgr_service/services/core/dfx/cert_dfx.c index cd9d97d815ebfc7011130b64bafcdde5833e1fcb..340040dca842d613f4845166e78544fb7d383ed0 100644 --- a/cert_mgr_service/services/core/dfx/cert_dfx.c +++ b/cert_mgr_service/services/core/dfx/cert_dfx.c @@ -71,6 +71,7 @@ void PrintDevicePacket(DevicePacket* devicePacket) } else { CERT_LOG_INFO("randomUuid = %s;", devicePacket->randomUuid); } + if (devicePacket->kitinfo == NULL) { CERT_LOG_WARN("kitinfo = null;"); } else { @@ -259,4 +260,3 @@ void PrintTicketInfo(TicketInfo* ticketInfo) } CERT_LOG_INFO("----------------------------"); } - diff --git a/cert_mgr_service/services/core/include/adapter/cert_adapter_mock.h b/cert_mgr_service/services/core/include/adapter/cert_adapter_mock.h index 2ca320ebb782b2984d6fc8a0ac1abd876e5054b9..6544f8f4fca67e9e22fff3f8cbeed61762ab569b 100644 --- a/cert_mgr_service/services/core/include/adapter/cert_adapter_mock.h +++ b/cert_mgr_service/services/core/include/adapter/cert_adapter_mock.h @@ -49,7 +49,7 @@ extern "C" { int32_t SendChallMsgStub(CERT_ACTION_TYPE actionType, char** respMsg); -int32_t SendCertMsgStub(CERT_ACTION_TYPE actionType, char** respMsg); +int32_t SendCertMsgStub(CERT_ACTION_TYPE actionType, char** respMsg); char* OsGetVersionIdStub(void); diff --git a/cert_mgr_service/services/core/include/cert/cert_service_auth.h b/cert_mgr_service/services/core/include/cert/cert_service_auth.h index 1567a519281c52eee3b8c90e4b75ef1371fc7707..7e5b773c56972e65cc2ae4c3af41a0ae063d9e22 100644 --- a/cert_mgr_service/services/core/include/cert/cert_service_auth.h +++ b/cert_mgr_service/services/core/include/cert/cert_service_auth.h @@ -54,7 +54,6 @@ int32_t ParseAuthResultResp(const char* msg, AuthResult* authResult); int32_t FlushCertStatusPara(const char* authStatusBase64); - #ifdef __cplusplus #if __cplusplus } diff --git a/cert_mgr_service/services/core/include/cert/cert_service_challenge.h b/cert_mgr_service/services/core/include/cert/cert_service_challenge.h index e781cfcf998841c8b88f6ae86157292721e71bcd..749055a5ad031712f01250070300f5549702cabe 100644 --- a/cert_mgr_service/services/core/include/cert/cert_service_challenge.h +++ b/cert_mgr_service/services/core/include/cert/cert_service_challenge.h @@ -22,20 +22,11 @@ extern "C" { #endif #endif /* __cplusplus */ -ChallengeResult* CreateChallengeResult(void); - void DestroyChallengeResult(ChallengeResult** challengeResult); int32_t GetChallenge(ChallengeResult** challResult, CERT_ACTION_TYPE actionType); -int32_t GenChallengeMsg(DevicePacket** devPacket); - -int32_t SendChallMsg(DevicePacket* devicePacket, char** respMsg, CERT_ACTION_TYPE actionType); - -int32_t ParseChallengeResult(const char* msg, ChallengeResult* challengeResult); - -#define FREE_CHALLENGE_RESULT(challengeResult) DestroyChallengeResult((ChallengeResult**)&challengeResult) - +#define FREE_CHALLENGE_RESULT(challengeResult) DestroyChallengeResult((ChallengeResult**)&(challengeResult)) #ifdef __cplusplus #if __cplusplus diff --git a/cert_mgr_service/services/core/include/cert_error.h b/cert_mgr_service/services/core/include/cert_error.h index 2dcf86dc863a0c36b36693b85285966049f2338b..ea6329fa7d2e7ac44627420a26edfa15656a77b8 100644 --- a/cert_mgr_service/services/core/include/cert_error.h +++ b/cert_mgr_service/services/core/include/cert_error.h @@ -13,8 +13,8 @@ * limitations under the License. */ -#ifndef __CERT_ERROR_CODE_H__ -#define __CERT_ERROR_CODE_H__ +#ifndef CERT_ERROR_CODE_H +#define CERT_ERROR_CODE_H #ifdef __cplusplus #if __cplusplus @@ -50,7 +50,6 @@ extern "C" { #define ERR_CERT_SECURITY_GET_TOKEN_VALUE 319 #define ERR_CERT_SECURITY_GET_TOKEN 320 - #ifdef __cplusplus #if __cplusplus } diff --git a/cert_mgr_service/services/core/include/cert_type.h b/cert_mgr_service/services/core/include/cert_type.h index 08acb1a1b480e66205b1492770b69bd5e613ecdd..647a928f1d2d76ae80bb3af3b5e9811361e0f569 100644 --- a/cert_mgr_service/services/core/include/cert_type.h +++ b/cert_mgr_service/services/core/include/cert_type.h @@ -13,8 +13,8 @@ * limitations under the License. */ -#ifndef __CERT_TYPE__ -#define __CERT_TYPE__ +#ifndef CERT_TYPE +#define CERT_TYPE #include #include @@ -35,12 +35,6 @@ extern "C" { #endif #endif /* __cplusplus */ -#ifdef __CERT_DEBUG__ -#define CERT_DEBUG_FLAG true -#else -#define CERT_DEBUG_FLAG false -#endif - // 网络访问相关 #define WISE_HTTPS_ERROR 4999 #define WISE_INVALID_CHALLENGE 14001 diff --git a/cert_mgr_service/services/core/include/dfx/cert_dfx.h b/cert_mgr_service/services/core/include/dfx/cert_dfx.h index 58695f20d9d689d840a9a36c364664ce80c5af12..98e67cc2f824b30ac8dff251cee72586ae097538 100644 --- a/cert_mgr_service/services/core/include/dfx/cert_dfx.h +++ b/cert_mgr_service/services/core/include/dfx/cert_dfx.h @@ -22,6 +22,12 @@ #endif #endif /* __cplusplus */ +#ifdef __CERT_DEBUG_DFX__ +#define CERT_DEBUG_DFX true +#else +#define CERT_DEBUG_DFX false +#endif + void PrintChallengeResult(ChallengeResult* challengeResult); void PrintDevicePacket(DevicePacket* devicePacket); @@ -38,21 +44,21 @@ void PrintTokenInfo(TokenInfo* tokenInfo); void PrintTicketInfo(TicketInfo* ticketInfo); -#define CERT_DFX_CHALL_RESULT(d_challengeResult) PrintChallengeResult((ChallengeResult*)d_challengeResult) +#define CERT_DFX_CHALL_RESULT(d_challengeResult) PrintChallengeResult((ChallengeResult*)(d_challengeResult)) -#define CERT_DFX_DEV_PACKET(d_devicePacket) PrintDevicePacket((DevicePacket*)d_devicePacket) +#define CERT_DFX_DEV_PACKET(d_devicePacket) PrintDevicePacket((DevicePacket*)(d_devicePacket)) -#define CERT_DFX_DEV_TOKEN(d_tokenInfo) PrintDeviceTokenInfo((DeviceTokenInfo*)d_tokenInfo) +#define CERT_DFX_DEV_TOKEN(d_tokenInfo) PrintDeviceTokenInfo((DeviceTokenInfo*)(d_tokenInfo)) -#define CERT_DFX_DEV_PDT(d_productInfo) PrintDeviceProductInfo((DeviceProductInfo *)d_productInfo) +#define CERT_DFX_DEV_PDT(d_productInfo) PrintDeviceProductInfo((DeviceProductInfo *)(d_productInfo)) -#define CERT_DFX_AUTH_RESULT(d_authResult) PrintAuthResult((AuthResult*)d_authResult) +#define CERT_DFX_AUTH_RESULT(d_authResult) PrintAuthResult((AuthResult*)(d_authResult)) -#define CERT_DFX_AUTH_STATUS(d_authStatus) PrintAuthStatus((AuthStatus*)d_authStatus) +#define CERT_DFX_AUTH_STATUS(d_authStatus) PrintAuthStatus((AuthStatus*)(d_authStatus)) -#define CERT_DFX_TOKEN_INFO(d_tokenInfo) PrintTokenInfo((TokenInfo*)d_tokenInfo) +#define CERT_DFX_TOKEN_INFO(d_tokenInfo) PrintTokenInfo((TokenInfo*)(d_tokenInfo)) -#define CERT_DFX_TICKET_INFO(d_ticketInfo) PrintTicketInfo((TicketInfo*)d_ticketInfo) +#define CERT_DFX_TICKET_INFO(d_ticketInfo) PrintTicketInfo((TicketInfo*)(d_ticketInfo)) #ifdef __cplusplus #if __cplusplus diff --git a/cert_mgr_service/services/core/include/network/cert_network.h b/cert_mgr_service/services/core/include/network/cert_network.h index 423be0ba062ba1b5b583f71a7abff87b7ee5b526..fc4ac2f3aab8ada788372a4dd4456f96835f6be3 100644 --- a/cert_mgr_service/services/core/include/network/cert_network.h +++ b/cert_mgr_service/services/core/include/network/cert_network.h @@ -67,6 +67,7 @@ x-tenantid: %s\r\n\ Content-type: application/json\r\n\ Content-Length: %d\r\n\r\n") + #define FILL_HTTPS_POST_FORMAT_ARGS(httpPacket) \ (httpPacket).reqMethod, (httpPacket).reqHost, (httpPacket).reqPort, \ (httpPacket).reqXclientID, (httpPacket).reqXtraceID, \ @@ -76,7 +77,7 @@ DevicePacket* CreateDevicePacket(void); void DestroyDevicePacket(DevicePacket** devicePacket); -#define FREE_DEVICE_PACKET(devicePacket) DestroyDevicePacket((DevicePacket**)&devicePacket) +#define FREE_DEVICE_PACKET(devicePacket) DestroyDevicePacket((DevicePacket**)&(devicePacket)) int32_t SendCertMsg(DevicePacket *devValue, CERT_ACTION_TYPE actionType, char **respBodyData); diff --git a/cert_mgr_service/services/core/include/security/cert_security.h b/cert_mgr_service/services/core/include/security/cert_security.h index e837406a46e5c616972eae1b3358e4ffd5a4f8c6..4a994b399333a434b20624662f6c7df908d0e067 100644 --- a/cert_mgr_service/services/core/include/security/cert_security.h +++ b/cert_mgr_service/services/core/include/security/cert_security.h @@ -71,15 +71,6 @@ typedef struct { size_t versionLen; } VersionData; -int32_t GetTokenValueHmac(const char* challenge, uint8_t* tokenValueHmac, uint8_t tokenValueHmacLen); - -int32_t GetTokenId(uint8_t* tokenId, uint8_t tokenIdLen); - -int32_t WriteTicketToDevice(const char* ticket, uint8_t len); - -int32_t ReadTicketFromDevice(char* ticket, uint8_t len); - -int32_t FlushToken(AuthResult* authResult); int32_t Base64Encode(const uint8_t* srcData, size_t srcDataLen, uint8_t* base64Encode, uint16_t base64EncodeLen); diff --git a/cert_mgr_service/services/core/include/utils/cert_utils.h b/cert_mgr_service/services/core/include/utils/cert_utils.h index c12ff69eb9363befc5487d9e5b85eb178a21cc49..5d7f3cfaea9ef74a2667670aa8e9064056dc48f5 100644 --- a/cert_mgr_service/services/core/include/utils/cert_utils.h +++ b/cert_mgr_service/services/core/include/utils/cert_utils.h @@ -29,13 +29,13 @@ void CertMemFree(void **point); -#define CERT_MEM_FREE(pointer) CertMemFree((void **)&pointer) +#define CERT_MEM_FREE(pointer) CertMemFree((void **)&(pointer)) void *CertMemAlloc(uint32_t size, const char* file, uint32_t line, const char* func); - + #define CERT_MEM_MALLOC(size) CertMemAlloc(size, __FILE__, __LINE__, __FUNCTION__) -#define ABS(x) ((x) >= 0 ? (x) : (-x)) +#define ABS(x) ((x) >= 0 ? (x) : -(x)) int32_t GetRandomNum(void); diff --git a/cert_mgr_service/services/core/include/utils/cert_utils_list.h b/cert_mgr_service/services/core/include/utils/cert_utils_list.h index 6fcc044b4675979e72d659b3970ad1e25fdd9c42..0c5c58cf3d79369134446742bbb3e2ffacee65ae 100644 --- a/cert_mgr_service/services/core/include/utils/cert_utils_list.h +++ b/cert_mgr_service/services/core/include/utils/cert_utils_list.h @@ -43,16 +43,9 @@ int32_t CreateList(List *list); int32_t AddListNode(List *list, void *data); -int32_t RemoveListNode(List *list, int32_t index); - -void* GetListNodeData(List *list, int32_t index); - int32_t GetListSize(List *list); -int32_t IsListEmpty(List *list); - -void ReleaseKVList(List *list); - +void ReleaseList(List *list); #ifdef __cplusplus #if __cplusplus diff --git a/cert_mgr_service/services/core/include/utils/cert_utils_log.h b/cert_mgr_service/services/core/include/utils/cert_utils_log.h index 9a93a7b0e01ac7f1ff7adc6870d6fc93e9c29c38..82a6fc37a1d4a8171745266bd57348cacedd9a5d 100644 --- a/cert_mgr_service/services/core/include/utils/cert_utils_log.h +++ b/cert_mgr_service/services/core/include/utils/cert_utils_log.h @@ -57,7 +57,7 @@ void CertLogAnonyStr(CertLogLevel logLevel, const char* fmt, const char* str); (d_curLen) += snprintf_s((d_curBuffer + d_curLen), (uint32_t)((d_maxLen) - (d_curLen)), \ ((uint32_t)((d_maxLen) - (d_curLen)) - 1), (d_format), ##d_args); \ } \ -} while (0); +} while (0) #ifdef __cplusplus #if __cplusplus diff --git a/cert_mgr_service/services/core/security/cert_security_token.c b/cert_mgr_service/services/core/security/cert_security_token.c index db29ac3dbea942cc0b416591d2d41ae1662ac21a..7330a70f1cbf54254e7257f2f7167c3317d4e7df 100644 --- a/cert_mgr_service/services/core/security/cert_security_token.c +++ b/cert_mgr_service/services/core/security/cert_security_token.c @@ -33,7 +33,7 @@ static int32_t TransTokenVersion(const char* tokenVersion, uint8_t tokenVersionL for (int32_t i = 0; i < VERSION_ENCRYPT_LEN; i++) { if (*tokenVersion >= 'a' && *tokenVersion <= 'f') { g_tokenVersion[i] = *tokenVersion - ('a' - 'A'); - } else if ((*tokenVersion >= '0' && *tokenVersion <= '9') || + } else if ((*tokenVersion >= '0' && *tokenVersion <= '9') || (*tokenVersion >= 'A' && *tokenVersion <= 'F')) { g_tokenVersion[i] = *tokenVersion; } else { @@ -66,7 +66,7 @@ static int32_t GetDecryptedTokenValue(TokenInfo* tokenInfo, uint8_t* tokenValue, CERT_LOG_ERROR("[GetDecryptedTokenValue] Generate aes key failed, ret = %d", ret); return ret; } - ret = Decrypt((const uint8_t*)tokenInfo->tokenValue, sizeof(tokenInfo->tokenValue), aesKey, + ret = Decrypt((const uint8_t*)tokenInfo->tokenValue, sizeof(tokenInfo->tokenValue), aesKey, tokenValue, tokenValueLen); (void)memset_s(aesKey, sizeof(aesKey), 0, sizeof(aesKey)); if (ret != CERT_OK) { @@ -173,7 +173,7 @@ static int32_t EncryptTokenIdToTokenInfo(const char* data, uint8_t dataLen, uint return CERT_OK; } -static int32_t GetTokenInfo(const char* tokenValue, uint8_t tokenValueLen, +static int32_t GetTokenInfo(const char* tokenValue, uint8_t tokenValueLen, const char* tokenId, uint8_t tokenIdLen, TokenInfo* tokenInfo) { @@ -333,7 +333,9 @@ int32_t FlushToken(AuthResult* authResult) CERT_LOG_ERROR("[FlushToken] Invalid parameter"); return CERT_ERR; } - CERT_DFX_AUTH_RESULT(authResult); + if (CERT_DEBUG_DFX) { + CERT_DFX_AUTH_RESULT(authResult); + } uint32_t tokenIdLen = (authResult->tokenId == NULL) ? 0 : strlen(authResult->tokenId); uint32_t tokenValueLen = (authResult->tokenValue == NULL) ? 0 : strlen(authResult->tokenValue); int32_t ret = WriteToken(authResult->tokenValue, tokenValueLen, authResult->tokenId, tokenIdLen); diff --git a/cert_mgr_service/services/core/utils/cert_utils.c b/cert_mgr_service/services/core/utils/cert_utils.c index be576e6d800a42bb4f36399b7fe01b8c5ce023bf..8ed6eaf60a8b60e1317f22e4311b5a61c79e1536 100644 --- a/cert_mgr_service/services/core/utils/cert_utils.c +++ b/cert_mgr_service/services/core/utils/cert_utils.c @@ -22,7 +22,7 @@ #include "cert_utils_memleak.h" #include "cert_utils.h" -int32_t GetRandomNum() +int32_t GetRandomNum(void) { mbedtls_ctr_drbg_context randomContext; mbedtls_entropy_context randomEntropy; @@ -131,11 +131,14 @@ int32_t AnonymiseStr(char* str) return ret; } -void PrintCurrentTime(void) +void PrintCurrentTime(void) { time_t timet; - time(&timet); + (void)time(&timet); struct tm* timePacket = gmtime(&timet); + if (timePacket == NULL) { + return; + } CERT_LOG_INFO("[PrintCurrentTime] Hours: %d, Minutes: %d, Seconds: %d", timePacket->tm_hour, timePacket->tm_min, timePacket->tm_sec); } @@ -191,8 +194,6 @@ int32_t StrToHex(char *pbDest, char *pbSrc, int nLen) int Sha256Value(const unsigned char *src, char *dest, int destLen) { - const int DEV_BUF_LENGTH = 3; - const int HASH_LENGTH = 32; if (src == NULL) { return CERT_ERR; } @@ -207,8 +208,10 @@ int Sha256Value(const unsigned char *src, char *dest, int destLen) for (size_t i = 0; i < HASH_LENGTH; i++) { unsigned char value = hash[i]; - memset_s(buf, DEV_BUF_LENGTH, 0, DEV_BUF_LENGTH); - sprintf_s(buf, sizeof(buf), "%02X", value); + (void)memset_s(buf, DEV_BUF_LENGTH, 0, DEV_BUF_LENGTH); + if (sprintf_s(buf, sizeof(buf), "%02X", value) < 0) { + return CERT_ERR; + } if (strcat_s(dest, destLen, buf) != 0) { return CERT_ERR; } diff --git a/cert_mgr_service/services/core/utils/cert_utils_file.c b/cert_mgr_service/services/core/utils/cert_utils_file.c index 4ac7b70bf221a1b43ca73887485a5e74c8db9ccb..f080d52d268e5460eb9b588c5fc9e3f811f34c07 100644 --- a/cert_mgr_service/services/core/utils/cert_utils_file.c +++ b/cert_mgr_service/services/core/utils/cert_utils_file.c @@ -67,12 +67,12 @@ int32_t GetFileSize(const char* path, const char* fileName, uint32_t* result) if (fseek(fp, 0, SEEK_END) < 0) { CERT_LOG_ERROR("[GetFileSize] seek file %s failed", formatPath); free(formatPath); - fclose(fp); + (void)fclose(fp); return CERT_ERR; } *result = ftell(fp); free(formatPath); - fclose(fp); + (void)fclose(fp); return CERT_OK; } @@ -105,11 +105,11 @@ int32_t WriteFile(const char* path, const char* fileName, const char* data, uint if (fwrite(data, dataLen, 1, fp) != 1) { CERT_LOG_ERROR("[WriteFile] write file %s failed", formatPath); free(formatPath); - fclose(fp); + (void)fclose(fp); return CERT_ERR; } free(formatPath); - fclose(fp); + (void)fclose(fp); return CERT_OK; } @@ -148,11 +148,11 @@ int32_t ReadFile(const char* path, const char* fileName, char* buffer, uint32_t if (fread(buffer, fileSize, 1, fp) != 1) { CERT_LOG_ERROR("[ReadFile] read file %s data from device failed", formatPath); free(formatPath); - fclose(fp); + (void)fclose(fp); return CERT_ERR; } free(formatPath); - fclose(fp); + (void)fclose(fp); return CERT_OK; } @@ -189,7 +189,7 @@ int32_t CreateFile(const char* path, const char* fileName) return CERT_ERR; } CERT_MEM_FREE(realPath); - fclose(fp); + (void)fclose(fp); return CERT_OK; } @@ -216,7 +216,7 @@ bool IsFileExist(const char* path, const char* fileName) return false; } free(formatPath); - fclose(fp); + (void)fclose(fp); return true; } diff --git a/cert_mgr_service/services/core/utils/cert_utils_list.c b/cert_mgr_service/services/core/utils/cert_utils_list.c index e2dfa3d0d998e4d48bc728550d5a724569797002..de1fd63790d133f876a130a5ba8ca9a4f40689ec 100644 --- a/cert_mgr_service/services/core/utils/cert_utils_list.c +++ b/cert_mgr_service/services/core/utils/cert_utils_list.c @@ -65,41 +65,6 @@ int32_t AddListNode(List *list, void *data) return CERT_OK; } -int32_t RemoveListNode(List *list, int32_t index) -{ - if (list == NULL) { - return ERR_INVALID_PARAM; - } - if (index < 0 || index >= GetListSize(list)) { - return ERR_OUT_CAPACITY; - } - ListNode* curr = list->head; - ListNode* pre = curr; - for (int32_t i = 0; i < index; i++) { - pre = curr; - curr = curr->next; - } - pre->next = curr->next; - if (index == 0) { - list->head = curr->next; - } - CERT_MEM_FREE(curr); - return CERT_OK; -} - -void* GetListNodeData(List *list, int32_t index) -{ - if (list == NULL || index < 0 || index >= GetListSize(list)) { - return NULL; - } - ListNode* curr = list->head; - while (index > 0) { - curr = curr->next; - index--; - } - return curr->data; -} - int32_t GetListSize(List *list) { if (list == NULL) { @@ -114,14 +79,6 @@ int32_t GetListSize(List *list) return size; } -int32_t IsListEmpty(List *list) -{ - if (list == NULL) { - return true; - } - return (list->head == NULL); -} - void ReleaseList(List *list) { if (list == NULL) { @@ -139,18 +96,3 @@ void ReleaseList(List *list) list->head = NULL; } -void ReleaseKVList(List *list) -{ - if (list == NULL) { - return; - } - ListNode* head = list->head; - while (head != NULL) { - KVNode* node = (KVNode*)(head->data); - CERT_MEM_FREE(node->key); - CERT_MEM_FREE(node->value); - head = head->next; - } - (void)ReleaseList(list); -} - diff --git a/cert_mgr_service/services/core/utils/cert_utils_memleak.c b/cert_mgr_service/services/core/utils/cert_utils_memleak.c index a1ba3ffea972e8cda6331eeed0c0753b2d36de94..5e333f26a31a3c57b544541dc7721cf9e35a103b 100644 --- a/cert_mgr_service/services/core/utils/cert_utils_memleak.c +++ b/cert_mgr_service/services/core/utils/cert_utils_memleak.c @@ -235,9 +235,9 @@ void PrintMemNodeList(void) } ListNode* head = list->head; if (head == NULL) { - CERT_LOG_ERROR("[PrintMemNodeList] No memory leak."); + CERT_LOG_ERROR("[PrintMemNodeList] No memory leak."); } else { - CERT_LOG_INFO("[PrintMemNodeList] Memory leak info:"); + CERT_LOG_INFO("[PrintMemNodeList] Memory leak info:"); } while (head != NULL) { PrintMemNode((MemNode *)(head->data));