# IHuks ## 概述 定义了HUKS的驱动接å£ï¼Œç”¨äºŽè¿›è¡Œå¯†é’¥ç®¡ç†ã€‚ **起始版本:** 4.0 **相关模å—:**[HdfHuks](_hdf_huks.md) ## 汇总 ### Public æˆå‘˜å‡½æ•° | åç§° | æè¿° | | -------- | -------- | | [ModuleInit](#moduleinit) () | HUKS驱动åˆå§‹åŒ–。 | | [GenerateKey](#generatekey) ([in] struct [HuksBlob](_huks_blob.md) keyAlias,[in] struct [HuksParamSet](_huks_param_set.md) paramSet,[in] struct [HuksBlob](_huks_blob.md) keyIn, [out] struct [HuksBlob](_huks_blob.md) encKeyOut) | æ ¹æ®å¾…生æˆå¯†é’¥çš„属性生æˆå¯¹åº”çš„å¯†é’¥ææ–™ï¼Œå¹¶è¿”å›žåŠ å¯†åŽçš„å¯†é’¥ææ–™å¯†æ–‡ã€‚ | | [ImportKey](#importkey) ([in] struct [HuksBlob](_huks_blob.md) keyAlias, [in] struct [HuksBlob](_huks_blob.md) key, [in] struct [HuksParamSet](_huks_param_set.md) paramSet, [out] struct [HuksBlob](_huks_blob.md) encKeyOut) | 导入明文密钥。 | | [ImportWrappedKey](#importwrappedkey) ([in] struct [HuksBlob](_huks_blob.md) wrappingKeyAlias, [in] struct [HuksBlob](_huks_blob.md) wrappingEncKey, [in] struct [HuksBlob](_huks_blob.md) wrappedKeyData, [in] struct [HuksParamSet](_huks_param_set.md) paramSet, [out] struct [HuksBlob](_huks_blob.md) encKeyOut) | å¯¼å…¥åŠ å¯†å¯†é’¥ã€‚ | | [ExportPublicKey](#exportpublickey) ([in] struct [HuksBlob](_huks_blob.md) encKey, [in] struct [HuksParamSet](_huks_param_set.md) paramSet, [out] struct [HuksBlob](_huks_blob.md) keyOut) | 导出密钥对的公钥。 | | [Init](#init) ([in] struct [HuksBlob](_huks_blob.md) encKey, [in] struct [HuksParamSet](_huks_param_set.md) paramSet, [out]struct [HuksBlob](_huks_blob.md) handle, [out] struct [HuksBlob](_huks_blob.md) token) | åˆå§‹åŒ–密钥会è¯ï¼Œè§£å¯†å¯†é’¥ææ–™åˆ°å†…å˜ä¸ï¼Œå¹¶è¿”å›žä¸€ä¸ªå¥æŸ„和令牌。 | | [Update](#update) ([in] struct [HuksBlob](_huks_blob.md) handle, [in] struct [HuksParamSet](_huks_param_set.md) paramSet, [in] struct [HuksBlob](_huks_blob.md) inData, [out] struct [HuksBlob](_huks_blob.md) outData) | 分段æ“ä½œæ•°æ®æˆ–åˆ†æ®µä¼ å‚ï¼Œæ ¹æ®å¯†ç ç®—æ³•çš„æœ¬èº«çš„è¦æ±‚需è¦å¯¹æ•°æ®è¿›è¡Œåˆ†æ®µæ“ä½œæˆ–ä¼ å‚(密钥å商场景)。 | | [Finish](#finish) ([in] struct [HuksBlob](_huks_blob.md) handle, [in] struct [HuksParamSet](_huks_param_set.md) paramSet, [in] struct [HuksBlob](_huks_blob.md) inData, [out] struct [HuksBlob](_huks_blob.md) outData) | 结æŸå¯†é’¥ä¼šè¯å’Œæ“作数æ®ã€‚ | | [Abort](#abort) ([in] struct [HuksBlob](_huks_blob.md) handle, [in] struct [HuksParamSet](_huks_param_set.md) paramSet) | 䏿¢å¯†é’¥ä¼šè¯ï¼Œå¹¶é‡Šæ”¾ä¼šè¯å†…部的数æ®ï¼Œä¸æ¢åŽä¸èƒ½æ“作会è¯ã€‚ | | [CheckKeyValidity](#checkkeyvalidity) ([in] struct [HuksParamSet](_huks_param_set.md) paramSet, [in] struct [HuksBlob](_huks_blob.md) encKey) | æ ¡éªŒå¯†é’¥ææ–™çš„æœ‰æ•ˆæ€§ï¼ˆå¯†é’¥å’Œå±žæ€§çš„完整性)。 | | [AttestKey](#attestkey) ([in] struct [HuksBlob](_huks_blob.md) encKey, [in] struct [HuksParamSet](_huks_param_set.md) paramSet, [out] struct [HuksBlob](_huks_blob.md) certChain) | 获å–密钥è¯ä¹¦é“¾ã€‚ | | [GenerateRandom](#generaterandom) ([in] struct [HuksParamSet](_huks_param_set.md) paramSet, [out]struct [HuksBlob](_huks_blob.md) random) | 生æˆéšæœºæ•°ã€‚ | | [Sign](#sign) ([in] struct [HuksBlob](_huks_blob.md) encKey, [in] struct [HuksParamSet](_huks_param_set.md) paramSet, [in] struct [HuksBlob](_huks_blob.md) srcData, [out]struct [HuksBlob](_huks_blob.md) signature) | 使用密钥对数æ®è¿›è¡Œç¾å。 | | [Verify](#verify) ([in] struct [HuksBlob](_huks_blob.md) encKey, [in] struct [HuksParamSet](_huks_param_set.md) paramSet, [in] struct [HuksBlob](_huks_blob.md) srcData, [in] struct [HuksBlob](_huks_blob.md) signature) | æ ¡éªŒæ•°æ®çš„ç¾å。 | | [Encrypt](#encrypt) ([in] struct [HuksBlob](_huks_blob.md) encKey, [in] struct [HuksParamSet](_huks_param_set.md) paramSet, [in] struct [HuksBlob](_huks_blob.md) plainText, [out] struct [HuksBlob](_huks_blob.md) cipherText) | 使用密钥对数æ®è¿›è¡ŒåŠ å¯†ã€‚ | | [Decrypt](#decrypt) ([in] struct [HuksBlob](_huks_blob.md) encKey, [in] struct [HuksParamSet](_huks_param_set.md) paramSet, [in] struct [HuksBlob](_huks_blob.md) cipherText, [out] struct [HuksBlob](_huks_blob.md) plainText) | 使用密钥对数æ®çš„密文进行解密。 | | [AgreeKey](#agreekey) ([in] struct [HuksParamSet](_huks_param_set.md) paramSet, [in] struct [HuksBlob](_huks_blob.md) encPrivateKey, [in] struct [HuksBlob](_huks_blob.md) peerPublicKey, [out] struct [HuksBlob](_huks_blob.md) agreedKey) | 使用HUKSå˜å‚¨çš„ç§é’¥å’Œä¸šåŠ¡çš„å…¬é’¥è¿›è¡Œå¯†é’¥å商。 | | [DeriveKey](#derivekey) ([in] struct [HuksParamSet](_huks_param_set.md) paramSet, [in] struct [HuksBlob](_huks_blob.md) encKdfKey, [out] struct [HuksBlob](_huks_blob.md) derivedKey) | 使用HUKSå˜å‚¨çš„密钥进行派生。 | | [Mac](#mac) ([in] struct [HuksBlob](_huks_blob.md) encKey, [in] struct [HuksParamSet](_huks_param_set.md) paramSet, [in] struct [HuksBlob](_huks_blob.md) srcData, [out] struct [HuksBlob](_huks_blob.md) mac) | 使用HUKSå˜å‚¨çš„å¯†é’¥åšæ•°æ®çš„æ¶ˆæ¯è®¤è¯ç 。 | | [UpgradeKey](#upgradekey) ([in] struct [HuksBlob](_huks_blob.md) encOldKey, [in] struct [HuksParamSet](_huks_param_set.md) paramSet, [out] struct [HuksBlob](_huks_blob.md) encNewKey) | å‡çº§å¯†é’¥ï¼ŒåŒ…括å‡çº§åŠ å¯†æ–¹å¼å’ŒåŠ å¯†ææ–™ã€‚当密钥文件版本å·å°äºŽæœ€æ–°ç‰ˆæœ¬å·æ—¶ï¼ŒHUKS Service触å‘该å‡çº§èƒ½åŠ›ã€‚ | | [ExportChipsetPlatformPublicKey](#exportchipsetplatformpublickey) ([in] struct [HuksBlob](_huks_blob.md) salt, [in] enum [HuksChipsetPlatformDecryptScene](_hdf_huks.md#hukschipsetplatformdecryptscene) scene, [out] struct [HuksBlob](_huks_blob.md) publicKey) | 导出芯片平å°çº§å¯†é’¥å¯¹çš„公钥。 | ## æˆå‘˜å‡½æ•°è¯´æ˜Ž ### Abort() ``` IHuks::Abort ([in] struct HuksBlob handle, [in] struct HuksParamSet paramSet ) ``` **æè¿°** 䏿¢å¯†é’¥ä¼šè¯ï¼Œå¹¶é‡Šæ”¾ä¼šè¯å†…部的数æ®ï¼Œä¸æ¢åŽä¸èƒ½æ“作会è¯ã€‚ **起始版本:** 4.0 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | handle | 密钥会è¯å¥æŸ„[HuksBlob](_huks_blob.md) | | paramSet | æ“ä½œå¯†é’¥çš„å‚æ•°é›†[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | **å‚è§ï¼š** [Init](#init) | [Update](#update) | [Finish](#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](_huks_param_set.md) | | encPrivateKey | HUKSå˜å‚¨çš„å¯†é’¥å¯¹ææ–™å¯†æ–‡[HuksBlob](_huks_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | peerPublicKey | å¾…å商的公钥[HuksBlob](_huks_blob.md)。 | | agreedKey | å商出的密钥明文[HuksBlob](_huks_blob.md)。 | **返回:** 0 表示æˆåŠŸ éž0表示失败 ### AttestKey() ``` IHuks::AttestKey ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [out] struct HuksBlob certChain ) ``` **æè¿°** 获å–密钥è¯ä¹¦é“¾ã€‚ **起始版本:** 4.0 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | encKey | å¯†é’¥ææ–™å¯†æ–‡[HuksBlob](_huks_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | paramSet | 用于获å–密钥è¯ä¹¦é“¾çš„傿•°[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | certChain | 密钥è¯ä¹¦é“¾[HuksBlob](_huks_blob.md),è¯ä¹¦é“¾ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | **返回:** 0 表示æ“作æˆåŠŸ éž0表示æ“作失败 ### CheckKeyValidity() ``` IHuks::CheckKeyValidity ([in] struct HuksParamSet paramSet, [in] struct HuksBlob encKey ) ``` **æè¿°** æ ¡éªŒå¯†é’¥ææ–™çš„æœ‰æ•ˆæ€§ï¼ˆå¯†é’¥å’Œå±žæ€§çš„完整性)。 **起始版本:** 4.0 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | paramSet | æ ¡éªŒå¯†é’¥æœ‰æ•ˆæ€§çš„å‚æ•°é›†[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | encKey | å¯†é’¥ææ–™å¯†æ–‡[HuksBlob](_huks_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€Š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_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | paramSet | ç”¨äºŽåŠ å¯†çš„å‚æ•°[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | cipherText | æ•°æ®çš„密文[HuksBlob](_huks_blob.md)。 | | plainText | æ•°æ®çš„æ˜Žæ–‡[HuksBlob](_huks_blob.md)。 | **返回:** 0 表示æˆåŠŸ éž0表示失败 ### DeriveKey() ``` IHuks::DeriveKey ([in] struct HuksParamSet paramSet, [in] struct HuksBlob encKdfKey, [out] struct HuksBlob derivedKey ) ``` **æè¿°** 使用HUKSå˜å‚¨çš„密钥进行派生。 **起始版本:** 4.0 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | paramSet | ç”¨äºŽæ´¾ç”Ÿçš„å‚æ•°[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | encKdfKey | HUKSå˜å‚¨çš„å¯†é’¥ææ–™å¯†æ–‡[HuksBlob](_huks_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | derivedKey | 派生出的密钥明文[HuksBlob](_huks_blob.md)。 | **返回:** 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_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | paramSet | ç”¨äºŽåŠ å¯†çš„å‚æ•°[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | plainText | å¾…åŠ å¯†çš„æ•°æ®[HuksBlob](_huks_blob.md)。 | | cipherText | æ•°æ®çš„密文[HuksBlob](_huks_blob.md)。 | **返回:** 0 表示æˆåŠŸ éž0表示失败 ### ExportChipsetPlatformPublicKey() ``` IHuks::ExportChipsetPlatformPublicKey ([in] struct HuksBlob salt, [in] enum HuksChipsetPlatformDecryptScene scene, [out] struct HuksBlob publicKey ) ``` **æè¿°** 导出芯片平å°çº§å¯†é’¥å¯¹çš„公钥。 **起始版本:** 4.0 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | salt | ç”¨æ¥æ´¾ç”ŸèŠ¯ç‰‡å¹³å°å¯†é’¥å¯¹æ—¶çš„æ´¾ç”Ÿå› å[HuksBlob](_huks_blob.md)。 | | scene | 业务预期进行芯片平å°è§£å¯†çš„场景[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | publicKey | å…¬é’¥ææ–™ï¼Œå¦‚出å‚为ECC-P256çš„xã€y轴值裸数æ®ï¼Œå„32å—节[HuksBlob](_huks_blob.md)。 | **返回:** 0 表示æˆåŠŸ éž0表示失败 ### ExportPublicKey() ``` IHuks::ExportPublicKey ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [out] struct HuksBlob keyOut ) ``` **æè¿°** 导出密钥对的公钥。 **起始版本:** 4.0 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | encKey | åŠ å¯†çš„å¯†é’¥å¯¹ææ–™[HuksBlob](_huks_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | paramSet | 导出密钥密钥属性集[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | keyOut | å…¬é’¥ææ–™[HuksBlob](_huks_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€Š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](_huks_blob.md) | | paramSet | æ“ä½œå¯†é’¥çš„å‚æ•°é›†[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | inData | åˆ†æ®µæ•°æ®æˆ–è€…å‚æ•°[HuksBlob](_huks_blob.md)。 | | outData | æ“作完æˆçš„æ•°æ®[HuksBlob](_huks_blob.md)。 | **å‚è§ï¼š** [Init](#init) | [Update](#update) | [Abort](#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](_huks_blob.md)。 | | paramSet | 待生æˆå¯†é’¥çš„å¯†é’¥å±žæ€§å‚æ•°[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | keyIn | 待生æˆå¯†é’¥çš„å¯†é’¥ææ–™[HuksBlob](_huks_blob.md),å¯é€‰ã€‚ | | encKeyOut | 生æˆå¯†é’¥çš„å¯†æ–‡ææ–™[HuksBlob](_huks_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | **返回:** 0 表示生æˆå¯†é’¥æˆåŠŸ éž0表示生æˆå¯†é’¥å¤±è´¥ ### GenerateRandom() ``` IHuks::GenerateRandom ([in] struct HuksParamSet paramSet, [out] struct HuksBlob random ) ``` **æè¿°** 生æˆéšæœºæ•°ã€‚ **起始版本:** 4.0 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | paramSet | 用于生æˆéšæœºæ•°çš„å‚æ•°[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | random | 生æˆçš„éšæœºæ•°[HuksBlob](_huks_blob.md)。 | **返回:** 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](_huks_blob.md)。 | | key | å¾…å¯¼å…¥å¯†é’¥çš„æ˜Žæ–‡å¯†é’¥ææ–™[HuksBlob](_huks_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | paramSet | 待导入密钥的密钥属性集[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | encKeyOut | å¯¼å…¥å¯†é’¥çš„å¯†æ–‡ææ–™[HuksBlob](_huks_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€Š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](_huks_blob.md)。 | | wrappingEncKey | 用于åšåŠ å¯†å¯¼å…¥çš„ä¸é—´å¯†é’¥å¯†æ–‡[HuksBlob](_huks_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | wrappedKeyData | å¾…å¯¼å…¥å¯†é’¥çš„å¯†æ–‡å¯†é’¥ææ–™[HuksBlob](_huks_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | paramSet | 待导入密钥的密钥属性集[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | encKeyOut | å¯¼å…¥å¯†é’¥çš„å¯†æ–‡ææ–™[HuksBlob](_huks_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€Š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_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | paramSet | æ“ä½œå¯†é’¥çš„å‚æ•°é›†[HuksParamSet](_huks_param_set.md),用于指定该次密钥æ“ä½œçš„å‚æ•°ã€‚ | | handle | 密钥会è¯å¥æŸ„[HuksBlob](_huks_blob.md),用于åŽç»æ“作密钥会è¯ã€‚ | | token | 密钥会è¯ä»¤ç‰Œ[HuksBlob](_huks_blob.md),用于密钥访问控制使用。 | **å‚è§ï¼š** [Init](#init) | Update| [Finish](#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_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | paramSet | 用于åšMACçš„å‚æ•°[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | srcData | 用于åšMAC的数æ®[HuksBlob](_huks_blob.md)。 | | mac | 消æ¯è®¤è¯ç [HuksBlob](_huks_blob.md)。 | **返回:** 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_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | paramSet | 用于ç¾åçš„å‚æ•°[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | srcData | å¾…ç¾å的数æ®[HuksBlob](_huks_blob.md)。 | | signature | æ•°æ®çš„ç¾å[HuksBlob](_huks_blob.md)。 | **返回:** 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](_huks_blob.md),通过åˆå§‹åŒ–å¯†é’¥ä¼šè¯æŽ¥å£èŽ·å–。 | | paramSet | æ“ä½œå¯†é’¥çš„å‚æ•°é›†[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | inData | åˆ†æ®µæ•°æ®æˆ–è€…å‚æ•°[HuksBlob](_huks_blob.md)。 | | outData | æ“作完æˆçš„æ•°æ®[HuksBlob](_huks_blob.md)。 | **å‚è§ï¼š** [Init](#init) | [Finish](#finish) | [Abort](#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_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | paramSet | å‡çº§å¯†é’¥çš„傿•°[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | encNewKey | å‡çº§åŽçš„å¯†é’¥ææ–™å¯†æ–‡[HuksBlob](_huks_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€Š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_blob.md)ï¼Œå¯†é’¥ææ–™ç»“æž„å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | paramSet | ç”¨äºŽæ ¡éªŒç¾åçš„å‚æ•°[HuksParamSet](_huks_param_set.md),属性集结构å‚è§ã€ŠHUKSè®¾å¤‡å¼€å‘æŒ‡å—》。 | | srcData | 待验ç¾çš„æ•°æ®[HuksBlob](_huks_blob.md)。 | | signature | å¾…æ ¡éªŒæ•°æ®çš„ç¾å[HuksBlob](_huks_blob.md)。 | **返回:** 0 表示æˆåŠŸ éž0表示失败