From e9d843eb76dd0daf33323270a4a6c2d3e8b15b10 Mon Sep 17 00:00:00 2001 From: zqr2001 <1805768383@qq.com> Date: Wed, 17 Aug 2022 11:27:19 +0000 Subject: [PATCH] update zh-cn/device-dev/subsystems/subsys-security-huks-guide.md. Signed-off-by: zqr2001 <1805768383@qq.com> --- .../subsystems/subsys-security-huks-guide.md | 118 +++++++++--------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/zh-cn/device-dev/subsystems/subsys-security-huks-guide.md b/zh-cn/device-dev/subsystems/subsys-security-huks-guide.md index c7b942a84e..e2456f4896 100644 --- a/zh-cn/device-dev/subsystems/subsys-security-huks-guide.md +++ b/zh-cn/device-dev/subsystems/subsys-security-huks-guide.md @@ -720,68 +720,68 @@ return ret; 3. 结束密钥操作并取回结果,销毁句柄。 ```c -//三段式Finish接口 -int32_t HksCoreFinish(const struct HksBlob *handle, const struct HksParamSet *paramSet, const struct HksBlob *inData, + //三段式Finish接口 + int32_t HksCoreFinish(const struct HksBlob *handle, const struct HksParamSet *paramSet, const struct HksBlob *inData, struct HksBlob *outData) -{ -HKS_LOG_D("HksCoreFinish in Core start"); -uint32_t pur = 0; -uint32_t alg = 0; -//检查参数 -if (handle == NULL || paramSet == NULL || inData == NULL) { - HKS_LOG_E("the pointer param entered is invalid"); - return HKS_FAILURE; -} + { + HKS_LOG_D("HksCoreFinish in Core start"); + uint32_t pur = 0; + uint32_t alg = 0; + //检查参数 + if (handle == NULL || paramSet == NULL || inData == NULL) { + HKS_LOG_E("the pointer param entered is invalid"); + return HKS_FAILURE; + } -uint64_t sessionId; -struct HuksKeyNode *keyNode = NULL; -//根据handle获取本次三段式操作需要的上下文 -int32_t ret = GetParamsForUpdateAndFinish(handle, &sessionId, &keyNode, &pur, &alg); -if (ret != HKS_SUCCESS) { - HKS_LOG_E("GetParamsForCoreUpdate failed"); - return ret; -} -//校验密钥参数 -ret = HksCoreSecureAccessVerifyParams(keyNode, paramSet); -if (ret != HKS_SUCCESS) { - HksDeleteKeyNode(sessionId); - HKS_LOG_E("HksCoreFinish secure access verify failed"); - return ret; -} -//调用对应的算法库密钥处理函数 -uint32_t i; -uint32_t size = HKS_ARRAY_SIZE(g_hksCoreFinishHandler); -for (i = 0; i < size; i++) { - if (g_hksCoreFinishHandler[i].pur == pur) { - uint32_t outDataBufferSize = (outData == NULL) ? 0 : outData->size; - struct HksBlob appendInData = { 0, NULL }; - ret = HksCoreAppendAuthInfoBeforeFinish(keyNode, pur, paramSet, inData, &appendInData); - if (ret != HKS_SUCCESS) { - HKS_LOG_E("before finish: append auth info failed"); - break; - } - ret = g_hksCoreFinishHandler[i].handler(keyNode, paramSet, - appendInData.data == NULL ? inData : &appendInData, outData, alg); - if (appendInData.data != NULL) { - HKS_FREE_BLOB(appendInData); - } - if (ret != HKS_SUCCESS) { - break; + uint64_t sessionId; + struct HuksKeyNode *keyNode = NULL; + //根据handle获取本次三段式操作需要的上下文 + int32_t ret = GetParamsForUpdateAndFinish(handle, &sessionId, &keyNode, &pur, &alg); + if (ret != HKS_SUCCESS) { + HKS_LOG_E("GetParamsForCoreUpdate failed"); + return ret; + } + //校验密钥参数 + ret = HksCoreSecureAccessVerifyParams(keyNode, paramSet); + if (ret != HKS_SUCCESS) { + HksDeleteKeyNode(sessionId); + HKS_LOG_E("HksCoreFinish secure access verify failed"); + return ret; + } + //调用对应的算法库密钥处理函数 + uint32_t i; + uint32_t size = HKS_ARRAY_SIZE(g_hksCoreFinishHandler); + for (i = 0; i < size; i++) { + if (g_hksCoreFinishHandler[i].pur == pur) { + uint32_t outDataBufferSize = (outData == NULL) ? 0 : outData->size; + struct HksBlob appendInData = { 0, NULL }; + ret = HksCoreAppendAuthInfoBeforeFinish(keyNode, pur, paramSet, inData, &appendInData); + if (ret != HKS_SUCCESS) { + HKS_LOG_E("before finish: append auth info failed"); + break; + } + ret = g_hksCoreFinishHandler[i].handler(keyNode, paramSet, + appendInData.data == NULL ? inData : &appendInData, outData, alg); + if (appendInData.data != NULL) { + HKS_FREE_BLOB(appendInData); + } + if (ret != HKS_SUCCESS) { + break; + } + //添加密钥操作结束标签 + ret = HksCoreAppendAuthInfoAfterFinish(keyNode, pur, paramSet, outDataBufferSize, outData); + break; } - //添加密钥操作结束标签 - ret = HksCoreAppendAuthInfoAfterFinish(keyNode, pur, paramSet, outDataBufferSize, outData); - break; - } -} -if (i == size) { - HKS_LOG_E("don't found purpose, pur : %d", pur); - ret = HKS_FAILURE; -} -//删除对应的session -HksDeleteKeyNode(sessionId); -HKS_LOG_D("HksCoreFinish in Core end"); -return ret; -} + } + if (i == size) { + HKS_LOG_E("don't found purpose, pur : %d", pur); + ret = HKS_FAILURE; + } + //删除对应的session + HksDeleteKeyNode(sessionId); + HKS_LOG_D("HksCoreFinish in Core end"); + return ret; + } ``` ### 调测验证 -- GitLab