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设备开发指南》。 |
参见:
返回:
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。 |
参见:
返回:
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,用于密钥访问控制使用。 |
参见:
返回:
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。 |
参见:
返回:
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表示失败