HarmonyOS 使用通用密钥库进行SM4加密失败?

参数:

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.
阅读 594
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进