做网站要写代码吗,网站优化目的,网站建设工作基本流程,西安seo关键词查询明文导入密钥(C/C)
以明文导入ECC密钥为例。具体的场景介绍及支持的算法规格
在CMake脚本中链接相关动态库 target_link_libraries(entry PUBLIC libhuks_ndk.z.so)开发步骤 指定密钥别名keyAlias。 密钥别名的最大长度为64字节。 封装密钥属性集和密钥材料。通过[OH_Huks_I…明文导入密钥(C/C)
以明文导入ECC密钥为例。具体的场景介绍及支持的算法规格
在CMake脚本中链接相关动态库 target_link_libraries(entry PUBLIC libhuks_ndk.z.so)开发步骤 指定密钥别名keyAlias。 密钥别名的最大长度为64字节。 封装密钥属性集和密钥材料。通过[OH_Huks_InitParamSet]、[OH_Huks_AddParams]、[OH_Huks_BuildParamSet]构造密钥属性集paramSet。 密钥属性集中必须包含[OH_Huks_KeyAlg]、[OH_Huks_KeySize]、[OH_Huks_KeyPurpose]属性。密钥材料须符合[HUKS密钥材料格式]。开发前请熟悉鸿蒙开发指导文档gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 调用[OH_Huks_ImportKeyItem]传入密钥别名和密钥属性集导入密钥。 /* 以下以明文导入ECC密钥为例 */
#include huks/native_huks_api.h
#include huks/native_huks_param.h
#include string.h
OH_Huks_Result InitParamSet(struct OH_Huks_ParamSet **paramSet, const struct OH_Huks_Param *params,uint32_t paramCount) {OH_Huks_Result ret OH_Huks_InitParamSet(paramSet);if (ret.errorCode ! OH_HUKS_SUCCESS) {return ret;}ret OH_Huks_AddParams(*paramSet, params, paramCount);if (ret.errorCode ! OH_HUKS_SUCCESS) {OH_Huks_FreeParamSet(paramSet);return ret;}ret OH_Huks_BuildParamSet(paramSet);if (ret.errorCode ! OH_HUKS_SUCCESS) {OH_Huks_FreeParamSet(paramSet);return ret;}return ret;
}
struct OH_Huks_Param g_testGenerateKeyParam[] {{.tag OH_HUKS_TAG_ALGORITHM, .uint32Param OH_HUKS_ALG_ECC},{.tag OH_HUKS_TAG_PURPOSE, .uint32Param OH_HUKS_KEY_PURPOSE_AGREE},{.tag OH_HUKS_TAG_KEY_SIZE, .uint32Param OH_HUKS_ECC_KEY_SIZE_256},{.tag OH_HUKS_TAG_DIGEST, .uint32Param OH_HUKS_DIGEST_NONE}};
static napi_value GenerateKey(napi_env env, napi_callback_info info) {const char *alias test_generate;struct OH_Huks_Blob aliasBlob {.size (uint32_t)strlen(alias), .data (uint8_t *)alias};struct OH_Huks_ParamSet *testGenerateKeyParamSet nullptr;struct OH_Huks_Result ohResult;do {ohResult InitParamSet(testGenerateKeyParamSet, g_testGenerateKeyParam,sizeof(g_testGenerateKeyParam) / sizeof(OH_Huks_Param));if (ohResult.errorCode ! OH_HUKS_SUCCESS) {break;}ohResult OH_Huks_GenerateKeyItem(aliasBlob, testGenerateKeyParamSet, nullptr);} while (0);OH_Huks_FreeParamSet(testGenerateKeyParamSet);napi_value ret;napi_create_int32(env, ohResult.errorCode, ret);return ret;
}
static napi_value ImportKey(napi_env env, napi_callback_info info) {(void)GenerateKey(env, info);const char *alias test_generate;struct OH_Huks_Blob aliasBlob {.size (uint32_t)strlen(alias), .data (uint8_t *)alias};uint8_t pubKey[OH_HUKS_ECC_KEY_SIZE_256] {0};struct OH_Huks_Blob publicKey {OH_HUKS_ECC_KEY_SIZE_256, pubKey};struct OH_Huks_ParamSet *testImportKeyParamSet nullptr;struct OH_Huks_Result ohResult;do {ohResult InitParamSet(testImportKeyParamSet, g_testGenerateKeyParam,sizeof(g_testGenerateKeyParam) / sizeof(OH_Huks_Param));if (ohResult.errorCode ! OH_HUKS_SUCCESS) {break;}ohResult OH_Huks_ExportPublicKeyItem(aliasBlob, testImportKeyParamSet, publicKey);if (ohResult.errorCode ! OH_HUKS_SUCCESS) {break;}/* 4. Import Key */char newKey[] test_import;struct OH_Huks_Blob newKeyAlias {.size (uint32_t)strlen(newKey), .data (uint8_t *)newKey};ohResult OH_Huks_ImportKeyItem(newKeyAlias, testImportKeyParamSet, publicKey);} while (0);OH_Huks_FreeParamSet(testImportKeyParamSet);napi_value ret;napi_create_int32(env, ohResult.errorCode, ret);return ret;
}