IHuks

概述

定义了HUKS的驱动接口,用于进行密钥管理。

起始版本: 4.0

相关模块:HdfHuks

汇总

Public 成员函数

名称 描述
ModuleInit () HUKS驱动初始化。
GenerateKey ([in] struct HuksBlob keyAlias,[in] struct HuksParamSet paramSet,[in] struct HuksBlob keyIn, [out] struct HuksBlob encKeyOut) 根据待生成密钥的属性生成对应的密钥材料,并返回加密后的密钥材料密文。
ImportKey ([in] struct HuksBlob keyAlias, [in] struct HuksBlob key, [in] struct HuksParamSet paramSet, [out] struct HuksBlob encKeyOut) 导入明文密钥。
ImportWrappedKey ([in] struct HuksBlob wrappingKeyAlias, [in] struct HuksBlob wrappingEncKey, [in] struct HuksBlob wrappedKeyData, [in] struct HuksParamSet paramSet, [out] struct HuksBlob encKeyOut) 导入加密密钥。
ExportPublicKey ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [out] struct HuksBlob keyOut) 导出密钥对的公钥。
Init ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [out]struct HuksBlob handle, [out] struct HuksBlob token) 初始化密钥会话,解密密钥材料到内存中,并返回一个句柄和令牌。
Update ([in] struct HuksBlob handle, [in] struct HuksParamSet paramSet, [in] struct HuksBlob inData, [out] struct HuksBlob outData) 分段操作数据或分段传参,根据密码算法的本身的要求需要对数据进行分段操作或传参(密钥协商场景)。
Finish ([in] struct HuksBlob handle, [in] struct HuksParamSet paramSet, [in] struct HuksBlob inData, [out] struct HuksBlob outData) 结束密钥会话和操作数据。
Abort ([in] struct HuksBlob handle, [in] struct HuksParamSet paramSet) 中止密钥会话,并释放会话内部的数据,中止后不能操作会话。
CheckKeyValidity ([in] struct HuksParamSet paramSet, [in] struct HuksBlob encKey) 校验密钥材料的有效性(密钥和属性的完整性)。
AttestKey ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [out] struct HuksBlob certChain) 获取密钥证书链。
GenerateRandom ([in] struct HuksParamSet paramSet, [out]struct HuksBlob random) 生成随机数。
Sign ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [in] struct HuksBlob srcData, [out]struct HuksBlob signature) 使用密钥对数据进行签名。
Verify ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [in] struct HuksBlob srcData, [in] struct HuksBlob signature) 校验数据的签名。
Encrypt ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [in] struct HuksBlob plainText, [out] struct HuksBlob cipherText) 使用密钥对数据进行加密。
Decrypt ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [in] struct HuksBlob cipherText, [out] struct HuksBlob plainText) 使用密钥对数据的密文进行解密。
AgreeKey ([in] struct HuksParamSet paramSet, [in] struct HuksBlob encPrivateKey, [in] struct HuksBlob peerPublicKey, [out] struct HuksBlob agreedKey) 使用HUKS存储的私钥和业务的公钥进行密钥协商。
DeriveKey ([in] struct HuksParamSet paramSet, [in] struct HuksBlob encKdfKey, [out] struct HuksBlob derivedKey) 使用HUKS存储的密钥进行派生。
Mac ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [in] struct HuksBlob srcData, [out] struct HuksBlob mac) 使用HUKS存储的密钥做数据的消息认证码。
UpgradeKey ([in] struct HuksBlob encOldKey, [in] struct HuksParamSet paramSet, [out] struct HuksBlob encNewKey) 升级密钥,包括升级加密方式和加密材料。当密钥文件版本号小于最新版本号时,HUKS Service触发该升级能力。
ExportChipsetPlatformPublicKey ([in] struct HuksBlob salt, [in] enum HuksChipsetPlatformDecryptScene scene, [out] struct HuksBlob publicKey) 导出芯片平台级密钥对的公钥。

成员函数说明

Abort()

IHuks::Abort ([in] struct HuksBlob handle, [in] struct HuksParamSet paramSet )

描述 中止密钥会话,并释放会话内部的数据,中止后不能操作会话。

起始版本: 4.0

参数:

名称 描述
handle 密钥会话句柄HuksBlob
paramSet 操作密钥的参数集HuksParamSet,属性集结构参见《HUKS设备开发指南》。

参见:

Init | Update | Finish

返回:

0 表示操作成功

非0表示操作失败

AgreeKey()

IHuks::AgreeKey ([in] struct HuksParamSet paramSet, [in] struct HuksBlob encPrivateKey, [in] struct HuksBlob peerPublicKey, [out] struct HuksBlob agreedKey )

描述 使用HUKS存储的私钥和业务的公钥进行密钥协商。

起始版本: 4.0

参数:

名称 描述
paramSet 用于协商的参数HuksParamSet
encPrivateKey HUKS存储的密钥对材料密文HuksBlob,密钥材料结构参见《HUKS设备开发指南》。
peerPublicKey 待协商的公钥HuksBlob
agreedKey 协商出的密钥明文HuksBlob

返回:

0 表示成功

非0表示失败

AttestKey()

IHuks::AttestKey ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [out] struct HuksBlob certChain )

描述 获取密钥证书链。

起始版本: 4.0

参数:

名称 描述
encKey 密钥材料密文HuksBlob,密钥材料结构参见《HUKS设备开发指南》。
paramSet 用于获取密钥证书链的参数HuksParamSet,属性集结构参见《HUKS设备开发指南》。
certChain 密钥证书链HuksBlob,证书链结构参见《HUKS设备开发指南》。

返回:

0 表示操作成功

非0表示操作失败

CheckKeyValidity()

IHuks::CheckKeyValidity ([in] struct HuksParamSet paramSet, [in] struct HuksBlob encKey )

描述 校验密钥材料的有效性(密钥和属性的完整性)。

起始版本: 4.0

参数:

名称 描述
paramSet 校验密钥有效性的参数集HuksParamSet,属性集结构参见《HUKS设备开发指南》。
encKey 密钥材料密文HuksBlob,密钥材料结构参见《HUKS设备开发指南》。

返回:

0 表示密钥材料有效

非0表示密钥材料无效

Decrypt()

IHuks::Decrypt ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [in] struct HuksBlob cipherText, [out] struct HuksBlob plainText )

描述 使用密钥对数据的密文进行解密。

起始版本: 4.0

参数:

名称 描述
encKey 密钥材料密文HuksBlob,密钥材料结构参见《HUKS设备开发指南》。
paramSet 用于加密的参数HuksParamSet,属性集结构参见《HUKS设备开发指南》。
cipherText 数据的密文HuksBlob
plainText 数据的明文HuksBlob

返回:

0 表示成功

非0表示失败

DeriveKey()

IHuks::DeriveKey ([in] struct HuksParamSet paramSet, [in] struct HuksBlob encKdfKey, [out] struct HuksBlob derivedKey )

描述 使用HUKS存储的密钥进行派生。

起始版本: 4.0

参数:

名称 描述
paramSet 用于派生的参数HuksParamSet,属性集结构参见《HUKS设备开发指南》。
encKdfKey HUKS存储的密钥材料密文HuksBlob,密钥材料结构参见《HUKS设备开发指南》。
derivedKey 派生出的密钥明文HuksBlob

返回:

0 表示成功

非0表示失败

Encrypt()

IHuks::Encrypt ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [in] struct HuksBlob plainText, [out] struct HuksBlob cipherText )

描述 使用密钥对数据进行加密。

起始版本: 4.0

参数:

名称 描述
encKey 密钥材料密文HuksBlob,密钥材料结构参见《HUKS设备开发指南》。
paramSet 用于加密的参数HuksParamSet,属性集结构参见《HUKS设备开发指南》。
plainText 待加密的数据HuksBlob
cipherText 数据的密文HuksBlob

返回:

0 表示成功

非0表示失败

ExportChipsetPlatformPublicKey()

IHuks::ExportChipsetPlatformPublicKey ([in] struct HuksBlob salt, [in] enum HuksChipsetPlatformDecryptScene scene, [out] struct HuksBlob publicKey )

描述 导出芯片平台级密钥对的公钥。

起始版本: 4.0

参数:

名称 描述
salt 用来派生芯片平台密钥对时的派生因子HuksBlob
scene 业务预期进行芯片平台解密的场景HuksParamSet,属性集结构参见《HUKS设备开发指南》。
publicKey 公钥材料,如出参为ECC-P256的x、y轴值裸数据,各32字节HuksBlob

返回:

0 表示成功

非0表示失败

ExportPublicKey()

IHuks::ExportPublicKey ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [out] struct HuksBlob keyOut )

描述 导出密钥对的公钥。

起始版本: 4.0

参数:

名称 描述
encKey 加密的密钥对材料HuksBlob,密钥材料结构参见《HUKS设备开发指南》。
paramSet 导出密钥密钥属性集HuksParamSet,属性集结构参见《HUKS设备开发指南》。
keyOut 公钥材料HuksBlob,密钥材料结构参见《HUKS设备开发指南》。

返回:

0 表示导出密钥成功

非0表示导出密钥失败

Finish()

IHuks::Finish ([in] struct HuksBlob handle, [in] struct HuksParamSet paramSet, [in] struct HuksBlob inData, [out] struct HuksBlob outData )

描述 结束密钥会话和操作数据。

起始版本: 4.0

参数:

名称 描述
handle 密钥会话句柄HuksBlob
paramSet 操作密钥的参数集HuksParamSet,属性集结构参见《HUKS设备开发指南》。
inData 分段数据或者参数HuksBlob
outData 操作完成的数据HuksBlob

参见:

Init | Update | Abort

返回:

0 表示操作成功

非0表示操作失败

GenerateKey()

IHuks::GenerateKey ([in] struct HuksBlob keyAlias, [in] struct HuksParamSet paramSet, [in] struct HuksBlob keyIn, [out] struct HuksBlob encKeyOut )

描述 根据待生成密钥的属性生成对应的密钥材料,并返回加密后的密钥材料密文。

起始版本: 4.0

参数:

名称 描述
keyAlias 待生成密钥的别名HuksBlob
paramSet 待生成密钥的密钥属性参数HuksParamSet,属性集结构参见《HUKS设备开发指南》。
keyIn 待生成密钥的密钥材料HuksBlob,可选。
encKeyOut 生成密钥的密文材料HuksBlob,密钥材料结构参见《HUKS设备开发指南》。

返回:

0 表示生成密钥成功

非0表示生成密钥失败

GenerateRandom()

IHuks::GenerateRandom ([in] struct HuksParamSet paramSet, [out] struct HuksBlob random )

描述 生成随机数。

起始版本: 4.0

参数:

名称 描述
paramSet 用于生成随机数的参数HuksParamSet,属性集结构参见《HUKS设备开发指南》。
random 生成的随机数HuksBlob

返回:

0 表示生成成功

非0表示生成失败

ImportKey()

IHuks::ImportKey ([in] struct HuksBlob keyAlias, [in] struct HuksBlob key, [in] struct HuksParamSet paramSet, [out] struct HuksBlob encKeyOut )

描述 导入明文密钥。

起始版本: 4.0

参数:

名称 描述
keyAlias 待导入密钥的别名HuksBlob
key 待导入密钥的明文密钥材料HuksBlob,密钥材料结构参见《HUKS设备开发指南》。
paramSet 待导入密钥的密钥属性集HuksParamSet,属性集结构参见《HUKS设备开发指南》。
encKeyOut 导入密钥的密文材料HuksBlob,密钥材料结构参见《HUKS设备开发指南》。

返回:

0 表示导入密钥成功

非0表示导入密钥失败

ImportWrappedKey()

IHuks::ImportWrappedKey ([in] struct HuksBlob wrappingKeyAlias, [in] struct HuksBlob wrappingEncKey, [in] struct HuksBlob wrappedKeyData, [in] struct HuksParamSet paramSet, [out] struct HuksBlob encKeyOut )

描述 导入加密密钥。

起始版本: 4.0

参数:

名称 描述
wrappingKeyAlias 用于做加密导入的中间密钥别名HuksBlob
wrappingEncKey 用于做加密导入的中间密钥密文HuksBlob,密钥材料结构参见《HUKS设备开发指南》。
wrappedKeyData 待导入密钥的密文密钥材料HuksBlob,密钥材料结构参见《HUKS设备开发指南》。
paramSet 待导入密钥的密钥属性集HuksParamSet,属性集结构参见《HUKS设备开发指南》。
encKeyOut 导入密钥的密文材料HuksBlob,密钥材料结构参见《HUKS设备开发指南》。

返回:

0 表示导入密钥成功

非0表示导入密钥失败

Init()

IHuks::Init ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [out] struct HuksBlob handle, [out] struct HuksBlob token )

描述 初始化密钥会话,解密密钥材料到内存中,并返回一个句柄和令牌。

起始版本: 4.0

参数:

名称 描述
encKey 加密的密钥材料HuksBlob,密钥材料结构参见《HUKS设备开发指南》。
paramSet 操作密钥的参数集HuksParamSet,用于指定该次密钥操作的参数。
handle 密钥会话句柄HuksBlob,用于后续操作密钥会话。
token 密钥会话令牌HuksBlob,用于密钥访问控制使用。

参见:

Init | Update| Finish

返回:

0 表示初始化会话成功

非0表示初始化失败

Mac()

IHuks::Mac ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [in] struct HuksBlob srcData, [out] struct HuksBlob mac )

描述 使用HUKS存储的密钥做数据的消息认证码。

起始版本: 4.0

参数:

名称 描述
encKey 密钥材料密文HuksBlob,密钥材料结构参见《HUKS设备开发指南》。
paramSet 用于做MAC的参数HuksParamSet,属性集结构参见《HUKS设备开发指南》。
srcData 用于做MAC的数据HuksBlob
mac 消息认证码HuksBlob

返回:

0 表示成功

非0表示失败

ModuleInit()

IHuks::ModuleInit ()

描述 HUKS驱动初始化。

起始版本: 4.0

返回:

0 表示初始化成功

非0表示初始化失败

Sign()

IHuks::Sign ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [in] struct HuksBlob srcData, [out] struct HuksBlob signature )

描述 使用密钥对数据进行签名。

起始版本: 4.0

参数:

名称 描述
encKey 密钥材料密文HuksBlob,密钥材料结构参见《HUKS设备开发指南》。
paramSet 用于签名的参数HuksParamSet,属性集结构参见《HUKS设备开发指南》。
srcData 待签名的数据HuksBlob
signature 数据的签名HuksBlob

返回:

0 表示成功

非0表示失败

Update()

IHuks::Update ([in] struct HuksBlob handle, [in] struct HuksParamSet paramSet, [in] struct HuksBlob inData, [out] struct HuksBlob outData )

描述 分段操作数据或分段传参,根据密码算法的本身的要求需要对数据进行分段操作或传参(密钥协商场景)。

起始版本: 4.0

参数:

名称 描述
handle 密钥会话句柄HuksBlob,通过初始化密钥会话接口获取。
paramSet 操作密钥的参数集HuksParamSet,属性集结构参见《HUKS设备开发指南》。
inData 分段数据或者参数HuksBlob
outData 操作完成的数据HuksBlob

参见:

Init | Finish | Abort

返回:

0 表示操作成功

非0表示操作失败

UpgradeKey()

IHuks::UpgradeKey ([in] struct HuksBlob encOldKey, [in] struct HuksParamSet paramSet, [out] struct HuksBlob encNewKey )

描述 升级密钥,包括升级加密方式和加密材料。当密钥文件版本号小于最新版本号时,HUKS Service触发该升级能力。

起始版本: 4.0

参数:

名称 描述
encOldKey 待升级密钥材料密文HuksBlob,密钥材料结构参见《HUKS设备开发指南》。
paramSet 升级密钥的参数HuksParamSet,属性集结构参见《HUKS设备开发指南》。
encNewKey 升级后的密钥材料密文HuksBlob,密钥材料结构参见《HUKS设备开发指南》。

返回:

0 表示成功

非0表示失败

Verify()

IHuks::Verify ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [in] struct HuksBlob srcData, [in] struct HuksBlob signature )

描述 校验数据的签名。

起始版本: 4.0

参数:

名称 描述
encKey 密钥材料密文HuksBlob,密钥材料结构参见《HUKS设备开发指南》。
paramSet 用于校验签名的参数HuksParamSet,属性集结构参见《HUKS设备开发指南》。
srcData 待验签的数据HuksBlob
signature 待校验数据的签名HuksBlob

返回:

0 表示成功

非0表示失败