参数:
struct OH_Huks_Param g_SM4EncryptParam[] = {
{.tag = OH_HUKS_TAG_ALGORITHM, .uint32Param = OH_HUKS_ALG_SM4},
{.tag = OH_HUKS_TAG_PURPOSE, .uint32Param = OH_HUKS_KEY_PURPOSE_ENCRYPT},
{.tag = OH_HUKS_TAG_KEY_SIZE, .uint32Param = OH_HUKS_SM4_KEY_SIZE_128},
{.tag = OH_HUKS_TAG_PADDING, .uint32Param = OH_HUKS_PADDING_NONE},
{.tag = OH_HUKS_TAG_BLOCK_MODE, .uint32Param = OH_HUKS_MODE_ECB}
}
使用代码段:
ohResult = InitParamSet(paramSet, g_SM4EncryptParam, sizeof(g_SM4EncryptParam) / sizeof(OH_Huks_Param));//成功
uint8_t handleE[sizeof(uint64_t)] = { 0 };
struct OH_Huks_Blob handleEncrypt = {(uint32_t)sizeof(uint64_t), handleE};
ohResult = OH_Huks_InitSession(&aliasBlob, encryptParamSet, &handleEncrypt, nullptr);
//失败,错误码:12000002,错误信息:Failed to obtain the cipher mode. It is not set in ParamSet.
当前SM4加密不支持ECB模式,支持的算法请参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/huks-encryption-decryption-overview-V5\#支持的算法