做同业业务一般关注哪些网站,网站怎么做防御,中江县规划和建设局网站,住房和城乡建设部贰级建造师网站生成密钥(C/C)
以生成ECC密钥为例#xff0c;生成随机密钥。具体的场景介绍及支持的算法规格。 注意#xff1a; 密钥别名中禁止包含个人数据等敏感信息。 开发前请熟悉鸿蒙开发指导文档#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复…生成密钥(C/C)
以生成ECC密钥为例生成随机密钥。具体的场景介绍及支持的算法规格。 注意 密钥别名中禁止包含个人数据等敏感信息。 开发前请熟悉鸿蒙开发指导文档gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 在CMake脚本中链接相关动态库 target_link_libraries(entry PUBLIC libhuks_ndk.z.so)开发步骤 指定待生成的密钥别名keyAlias。 密钥别名的最大长度为64字节。对于不同业务间生成的密钥HUKS将基于业务身份信息进行存储路径隔离不会因为和其他业务密钥同名导致冲突。 初始化密钥属性集。通过[OH_Huks_InitParamSet]、[OH_Huks_AddParams]、[OH_Huks_BuildParamSet]构造密钥属性集paramSet。 密钥属性集中必须包含[OH_Huks_KeyAlg]、[OH_Huks_KeySize]、[OH_Huks_KeyPurpose]属性。 调用[OH_Huks_GenerateKeyItem]传入密钥别名和密钥属性集生成密钥。 说明 如果业务再次使用相同别名调用HUKS生成密钥HUKS将生成新密钥并直接覆盖历史的密钥文件。 HarmonyOS与OpenHarmony鸿蒙文档籽料mau123789是v直接拿 /* 以下以生成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)
{/* 1.确定密钥别名 */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 {/* 2.初始化密钥属性集 */ohResult InitParamSet(testGenerateKeyParamSet, g_testGenerateKeyParam,sizeof(g_testGenerateKeyParam) / sizeof(OH_Huks_Param));if (ohResult.errorCode ! OH_HUKS_SUCCESS) {break;}/* 3.生成密钥 */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;
}