HarmonyOS API:HuksKeyApi

joytrian
发布于 2023-4-14 16:49
浏览
0收藏

版本:v3.1 Beta

HuksKeyApi

更新时间: 2023-02-17 09:19

概述

描述HUKS向应用提供密钥库能力,包括密钥管理及密钥的密码学操作等功能。 管理的密钥可以由应用导入或者由应用调用HUKS接口生成。


@syscap SystemCapability.Security.Huks


起始版本:


9

汇总

文件

名称

描述

​native_huks_api.h​

声明用于访问HUKS的API。

引用文件:<huks/native_huks_api.h>

函数

名称

描述

​OH_Huks_GetSdkVersion​​​ (struct ​​OH_Huks_Blob​​ *sdkVersion)

获取当前Huks sdk版本号。

​OH_Huks_GenerateKeyItem​​​ (const struct ​​OH_Huks_Blob​​​ *keyAlias, const struct ​​OH_Huks_ParamSet​​​ *paramSetIn, struct ​​OH_Huks_ParamSet​​ *paramSetOut)

生成密钥。

​OH_Huks_ImportKeyItem​​​ (const struct ​​OH_Huks_Blob​​​ *keyAlias, const struct ​​OH_Huks_ParamSet​​​ *paramSet, const struct ​​OH_Huks_Blob​​ *key)

导入明文密钥。

​OH_Huks_ImportWrappedKeyItem​​​ (const struct ​​OH_Huks_Blob​​​ *keyAlias, const struct ​​OH_Huks_Blob​​​ *wrappingKeyAlias, const struct ​​OH_Huks_ParamSet​​​ *paramSet, const struct ​​OH_Huks_Blob​​ *wrappedKeyData)

导入密文密钥。

​OH_Huks_ExportPublicKeyItem​​​ (const struct ​​OH_Huks_Blob​​​ *keyAlias, const struct ​​OH_Huks_ParamSet​​​ *paramSet, struct ​​OH_Huks_Blob​​ *key)

导出公钥。

​OH_Huks_DeleteKeyItem​​​ (const struct ​​OH_Huks_Blob​​​ *keyAlias, const struct ​​OH_Huks_ParamSet​​ *paramSet)

删除密钥。

​OH_Huks_GetKeyItemParamSet​​​ (const struct ​​OH_Huks_Blob​​​ *keyAlias, const struct ​​OH_Huks_ParamSet​​​ *paramSetIn, struct ​​OH_Huks_ParamSet​​ *paramSetOut)

获取密钥的属性集。

​OH_Huks_IsKeyItemExist​​​ (const struct ​​OH_Huks_Blob​​​ *keyAlias, const struct ​​OH_Huks_ParamSet​​ *paramSet)

判断密钥是否存在。

​OH_Huks_AttestKeyItem​​​ (const struct ​​OH_Huks_Blob​​​ *keyAlias, const struct ​​OH_Huks_ParamSet​​​ *paramSet, struct ​​OH_Huks_CertChain​​ *certChain)

获取密钥证书链。

​OH_Huks_InitSession​​​ (const struct ​​OH_Huks_Blob​​​ *keyAlias, const struct ​​OH_Huks_ParamSet​​​ *paramSet, struct ​​OH_Huks_Blob​​​ *handle, struct ​​OH_Huks_Blob​​ *token)

初始化密钥会话接口,并获取一个句柄(必选)和挑战值(可选)。

​OH_Huks_UpdateSession​​​ (const struct ​​OH_Huks_Blob​​​ *handle, const struct ​​OH_Huks_ParamSet​​​ *paramSet, const struct ​​OH_Huks_Blob​​​ *inData, struct ​​OH_Huks_Blob​​ *outData)

分段添加密钥操作的数据并进行相应的密钥操作,输出处理数据。

​OH_Huks_FinishSession​​​ (const struct ​​OH_Huks_Blob​​​ *handle, const struct ​​OH_Huks_ParamSet​​​ *paramSet, const struct ​​OH_Huks_Blob​​​ *inData, struct ​​OH_Huks_Blob​​ *outData)

结束密钥会话并进行相应的密钥操作,输出处理数据。

​OH_Huks_AbortSession​​​ (const struct ​​OH_Huks_Blob​​​ *handle, const struct ​​OH_Huks_ParamSet​​ *paramSet)

取消密钥会话。

函数说明

OH_Huks_AbortSession()

struct OH_Huks_Result OH_Huks_AbortSession (const struct OH_Huks_Blob * handle, const struct OH_Huks_ParamSet

描述:

取消密钥会话。

参数:

名称

描述

handle

密钥会话句柄,通过​​OH_Huks_InitSession​​接口生成的。

paramSet

取消密钥会话需要的输入参数集(默认传空)。

返回:

返回​​OH_Huks_ErrCode#OH_HUKS_SUCCESS​​时接口使用成功,其他时为错误。

参见:

​OH_Huks_InitSession​

​OH_Huks_UpdateSession​

​OH_Huks_FinishSession​

OH_Huks_AttestKeyItem()

struct OH_Huks_Result OH_Huks_AttestKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet, struct OH_Huks_CertChain

描述:

获取密钥证书链。

参数:

名称

描述

keyAlias

要获取证书的密钥的别名。

paramSet

获取密钥证书需要的参数。

certChain

存放输出的密钥证书链。

返回:

返回​​OH_Huks_ErrCode#OH_HUKS_SUCCESS​​时获取成功,其他时为错误。

OH_Huks_DeleteKeyItem()

struct OH_Huks_Result OH_Huks_DeleteKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet

描述:

删除密钥。

参数:

名称

描述

keyAlias

待删除密钥的别名,应与密钥生成时使用的别名相同。

paramSet

删除密钥需要属性参数(默认传空)。

返回:

返回​​OH_Huks_ErrCode#OH_HUKS_SUCCESS​​时接口使用成功,其他时为错误。

OH_Huks_ExportPublicKeyItem()

struct OH_Huks_Result OH_Huks_ExportPublicKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet, struct OH_Huks_Blob

描述:

导出公钥。

参数:

名称

描述

keyAlias

待导出公钥的密钥别名,应与所用密钥生成时使用的别名相同。

paramSet

导出公钥需要的属性参数。

key

存放导出的公钥。

返回:

返回​​OH_Huks_ErrCode#OH_HUKS_SUCCESS​​时接口使用成功,其他时为错误。

OH_Huks_FinishSession()

struct OH_Huks_Result OH_Huks_FinishSession (const struct OH_Huks_Blob * handle, const struct OH_Huks_ParamSet * paramSet, const struct OH_Huks_Blob * inData, struct OH_Huks_Blob

描述:

结束密钥会话并进行相应的密钥操作,输出处理数据。

参数:

名称

描述

handle

密钥会话句柄,通过​​OH_Huks_InitSession​​接口生成的。

paramSet

密钥操作对应的输入参数集。

inData

要处理的输入数据。

outData

经过对应的密钥操作后输出的数据。

返回:

返回​​OH_Huks_ErrCode#OH_HUKS_SUCCESS​​时接口使用成功,其他时为错误。

参见:

​OH_Huks_InitSession​

​OH_Huks_UpdateSession​

​OH_Huks_AbortSession​

OH_Huks_GenerateKeyItem()

struct OH_Huks_Result OH_Huks_GenerateKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSetIn, struct OH_Huks_ParamSet

描述:

生成密钥。

参数:

名称

描述

keyAlias

给要生成的密钥的别名,需要保证业务所在进程内唯一,否则会发生覆盖。

paramSetIn

生成密钥的属性信息的参数集。

paramSetOut

生成密钥为临时类型时,存放着密钥数据;非临时类型可为空。

返回:

返回​​OH_Huks_ErrCode#OH_HUKS_SUCCESS​​时接口使用成功,其他时为错误。

OH_Huks_GetKeyItemParamSet()

struct OH_Huks_Result OH_Huks_GetKeyItemParamSet (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSetIn, struct OH_Huks_ParamSet

描述:

获取密钥的属性集。

参数:

名称

描述

keyAlias

要获取参数集的密钥别名。

paramSetIn

要获取参数集需要的属性TAG(默认传空)。

paramSetOut

获取到的输出参数集。

返回:

返回​​OH_Huks_ErrCode#OH_HUKS_SUCCESS​​时获取成功,其他时为失败。

OH_Huks_GetSdkVersion()

struct OH_Huks_Result OH_Huks_GetSdkVersion (struct OH_Huks_Blob

描述:

获取当前Huks sdk版本号。

参数:

名称

描述

sdkVersion

用于存放获取到的版本信息(字符串格式)。

返回:

返回​​OH_Huks_ErrCode#OH_HUKS_SUCCESS​​时接口使用成功,其他时为错误。

OH_Huks_ImportKeyItem()

struct OH_Huks_Result OH_Huks_ImportKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet, const struct OH_Huks_Blob

描述:

导入明文密钥。

参数:

名称

描述

keyAlias

待导入密钥的别名,需要保证业务所在进程内唯一,否则会发生覆盖。

paramSet

待导入密钥的属性参数。

key

待导入密钥数据,需符合Huks的格式要求,具体见​​HuksTypeApi​​。

返回:

返回​​OH_Huks_ErrCode#OH_HUKS_SUCCESS​​时接口使用成功,其他时为错误。

OH_Huks_ImportWrappedKeyItem()

struct OH_Huks_Result OH_Huks_ImportWrappedKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_Blob * wrappingKeyAlias, const struct OH_Huks_ParamSet * paramSet, const struct OH_Huks_Blob

描述:

导入密文密钥。

参数:

名称

描述

keyAlias

待导入密钥的别名,需要保证业务所在进程内唯一,否则会发生覆盖。

wrappingKeyAlias

密钥别名,该对应密钥用于密钥协商出密钥解密待导入密钥。

paramSet

待导入加密密钥的属性参数。

wrappedKeyData

需要导入的加密的密钥数据,需要符合Huks定义的格式,具体见​​OH_Huks_AlgSuite​

返回:

返回​​OH_Huks_ErrCode#OH_HUKS_SUCCESS​​时接口使用成功,其他时为错误。

OH_Huks_InitSession()

struct OH_Huks_Result OH_Huks_InitSession (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet, struct OH_Huks_Blob * handle, struct OH_Huks_Blob

描述:

初始化密钥会话接口,并获取一个句柄(必选)和挑战值(可选)。

参数:

名称

描述

keyAlias

操作的密钥的别名。

paramSet

初始化操作的密钥参数集合。

handle

密钥会话的句柄,后续其他操作时传入该句柄,包括​​OH_Huks_UpdateSession​​​, ​​OH_Huks_FinishSession​​​, ​​OH_Huks_AbortSession​​。

token

存放安全访问控制时传回的token

返回:

返回​​OH_Huks_ErrCode#OH_HUKS_SUCCESS​​时接口使用成功,其他时为错误。

参见:

​OH_Huks_UpdateSession​

​OH_Huks_FinishSession​

​OH_Huks_AbortSession​

OH_Huks_IsKeyItemExist()

struct OH_Huks_Result OH_Huks_IsKeyItemExist (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet

描述:

判断密钥是否存在。

参数:

名称

描述

keyAlias

要查找的密钥的别名。

paramSet

查询密钥需要的属性TAG(默认传空)。

返回:

返回​​OH_Huks_ErrCode#OH_HUKS_SUCCESS​​​时密钥存在, 返回​​OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST​​不存在,其他时为错误。

OH_Huks_UpdateSession()

struct OH_Huks_Result OH_Huks_UpdateSession (const struct OH_Huks_Blob * handle, const struct OH_Huks_ParamSet * paramSet, const struct OH_Huks_Blob * inData, struct OH_Huks_Blob

描述:

分段添加密钥操作的数据并进行相应的密钥操作,输出处理数据。

参数:

名称

描述

handle

密钥会话句柄,通过​​OH_Huks_InitSession​​接口生成的。

paramSet

密钥操作对应的输入参数集。

inData

要处理的输入数据,如果数据过大,可分片多次调用。

outData

经过对应的密钥操作后输出的数据。

返回:

返回​​OH_Huks_ErrCode#OH_HUKS_SUCCESS​​时接口使用成功,其他时为错误。

参见:

​OH_Huks_InitSession​

​OH_Huks_FinishSession​

​OH_Huks_AbortSession​


文章转载自:​​https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/_huks_key_api-0000001447290376-V3?catalogVersion=V3​

已于2023-4-14 16:49:36修改
收藏
回复
举报
回复
    相关推荐