1# IHuks 2 3 4## 概述 5 6定义了HUKS的驱动接口,用于进行密钥管理。 7 8**起始版本:** 4.0 9 10**相关模块:**[HdfHuks](_hdf_huks.md) 11 12 13## 汇总 14 15 16### Public 成员函数 17 18| 名称 | 描述 | 19| -------- | -------- | 20| [ModuleInit](#moduleinit) () | HUKS驱动初始化。 | 21| [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) | 根据待生成密钥的属性生成对应的密钥材料,并返回加密后的密钥材料密文。 | 22| [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) | 导入明文密钥。 | 23| [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) | 导入加密密钥。 | 24| [ExportPublicKey](#exportpublickey) ([in] struct [HuksBlob](_huks_blob.md) encKey, [in] struct [HuksParamSet](_huks_param_set.md) paramSet, [out] struct [HuksBlob](_huks_blob.md) keyOut) | 导出密钥对的公钥。 | 25| [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) | 初始化密钥会话,解密密钥材料到内存中,并返回一个句柄和令牌。 | 26| [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) | 分段操作数据或分段传参,根据密码算法的本身的要求需要对数据进行分段操作或传参(密钥协商场景)。 | 27| [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) | 结束密钥会话和操作数据。 | 28| [Abort](#abort) ([in] struct [HuksBlob](_huks_blob.md) handle, [in] struct [HuksParamSet](_huks_param_set.md) paramSet) | 中止密钥会话,并释放会话内部的数据,中止后不能操作会话。 | 29| [CheckKeyValidity](#checkkeyvalidity) ([in] struct [HuksParamSet](_huks_param_set.md) paramSet, [in] struct [HuksBlob](_huks_blob.md) encKey) | 校验密钥材料的有效性(密钥和属性的完整性)。 | 30| [AttestKey](#attestkey) ([in] struct [HuksBlob](_huks_blob.md) encKey, [in] struct [HuksParamSet](_huks_param_set.md) paramSet, [out] struct [HuksBlob](_huks_blob.md) certChain) | 获取密钥证书链。 | 31| [GenerateRandom](#generaterandom) ([in] struct [HuksParamSet](_huks_param_set.md) paramSet, [out]struct [HuksBlob](_huks_blob.md) random) | 生成随机数。 | 32| [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) | 使用密钥对数据进行签名。 | 33| [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) | 校验数据的签名。 | 34| [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) | 使用密钥对数据进行加密。 | 35| [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) | 使用密钥对数据的密文进行解密。 | 36| [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存储的私钥和业务的公钥进行密钥协商。 | 37| [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存储的密钥进行派生。 | 38| [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存储的密钥做数据的消息认证码。 | 39| [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触发该升级能力。 | 40| [ExportChipsetPlatformPublicKey](#exportchipsetplatformpublickey) ([in] struct [HuksBlob](_huks_blob.md) salt, [in] enum [HuksChipsetPlatformDecryptScene](_hdf_huks.md#hukschipsetplatformdecryptscene) scene, [out] struct [HuksBlob](_huks_blob.md) publicKey) | 导出芯片平台级密钥对的公钥。 | 41 42 43## 成员函数说明 44 45 46### Abort() 47 48``` 49IHuks::Abort ([in] struct HuksBlob handle, [in] struct HuksParamSet paramSet ) 50``` 51**描述** 52 53中止密钥会话,并释放会话内部的数据,中止后不能操作会话。 54 55**起始版本:** 4.0 56 57**参数:** 58 59| 名称 | 描述 | 60| -------- | -------- | 61| handle | 密钥会话句柄[HuksBlob](_huks_blob.md) | 62| paramSet | 操作密钥的参数集[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 63 64**参见:** 65 66[Init](#init) | [Update](#update) | [Finish](#finish) 67 68**返回:** 69 700 表示操作成功 71 72非0表示操作失败 73 74 75### AgreeKey() 76 77``` 78IHuks::AgreeKey ([in] struct HuksParamSet paramSet, [in] struct HuksBlob encPrivateKey, [in] struct HuksBlob peerPublicKey, [out] struct HuksBlob agreedKey ) 79``` 80**描述** 81 82使用HUKS存储的私钥和业务的公钥进行密钥协商。 83 84**起始版本:** 4.0 85 86**参数:** 87 88| 名称 | 描述 | 89| -------- | -------- | 90| paramSet | 用于协商的参数[HuksParamSet](_huks_param_set.md) | 91| encPrivateKey | HUKS存储的密钥对材料密文[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 92| peerPublicKey | 待协商的公钥[HuksBlob](_huks_blob.md)。 | 93| agreedKey | 协商出的密钥明文[HuksBlob](_huks_blob.md)。 | 94 95**返回:** 96 970 表示成功 98 99非0表示失败 100 101 102### AttestKey() 103 104``` 105IHuks::AttestKey ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [out] struct HuksBlob certChain ) 106``` 107**描述** 108 109获取密钥证书链。 110 111**起始版本:** 4.0 112 113**参数:** 114 115| 名称 | 描述 | 116| -------- | -------- | 117| encKey | 密钥材料密文[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 118| paramSet | 用于获取密钥证书链的参数[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 119| certChain | 密钥证书链[HuksBlob](_huks_blob.md),证书链结构参见《HUKS设备开发指南》。 | 120 121**返回:** 122 1230 表示操作成功 124 125非0表示操作失败 126 127 128### CheckKeyValidity() 129 130``` 131IHuks::CheckKeyValidity ([in] struct HuksParamSet paramSet, [in] struct HuksBlob encKey ) 132``` 133**描述** 134 135校验密钥材料的有效性(密钥和属性的完整性)。 136 137**起始版本:** 4.0 138 139**参数:** 140 141| 名称 | 描述 | 142| -------- | -------- | 143| paramSet | 校验密钥有效性的参数集[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 144| encKey | 密钥材料密文[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 145 146**返回:** 147 1480 表示密钥材料有效 149 150非0表示密钥材料无效 151 152 153### Decrypt() 154 155``` 156IHuks::Decrypt ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [in] struct HuksBlob cipherText, [out] struct HuksBlob plainText ) 157``` 158**描述** 159 160使用密钥对数据的密文进行解密。 161 162**起始版本:** 4.0 163 164**参数:** 165 166| 名称 | 描述 | 167| -------- | -------- | 168| encKey | 密钥材料密文[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 169| paramSet | 用于加密的参数[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 170| cipherText | 数据的密文[HuksBlob](_huks_blob.md)。 | 171| plainText | 数据的明文[HuksBlob](_huks_blob.md)。 | 172 173**返回:** 174 1750 表示成功 176 177非0表示失败 178 179 180### DeriveKey() 181 182``` 183IHuks::DeriveKey ([in] struct HuksParamSet paramSet, [in] struct HuksBlob encKdfKey, [out] struct HuksBlob derivedKey ) 184``` 185**描述** 186 187使用HUKS存储的密钥进行派生。 188 189**起始版本:** 4.0 190 191**参数:** 192 193| 名称 | 描述 | 194| -------- | -------- | 195| paramSet | 用于派生的参数[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 196| encKdfKey | HUKS存储的密钥材料密文[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 197| derivedKey | 派生出的密钥明文[HuksBlob](_huks_blob.md)。 | 198 199**返回:** 200 2010 表示成功 202 203非0表示失败 204 205 206### Encrypt() 207 208``` 209IHuks::Encrypt ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [in] struct HuksBlob plainText, [out] struct HuksBlob cipherText ) 210``` 211**描述** 212 213使用密钥对数据进行加密。 214 215**起始版本:** 4.0 216 217**参数:** 218 219| 名称 | 描述 | 220| -------- | -------- | 221| encKey | 密钥材料密文[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 222| paramSet | 用于加密的参数[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 223| plainText | 待加密的数据[HuksBlob](_huks_blob.md)。 | 224| cipherText | 数据的密文[HuksBlob](_huks_blob.md)。 | 225 226**返回:** 227 2280 表示成功 229 230非0表示失败 231 232 233### ExportChipsetPlatformPublicKey() 234 235``` 236IHuks::ExportChipsetPlatformPublicKey ([in] struct HuksBlob salt, [in] enum HuksChipsetPlatformDecryptScene scene, [out] struct HuksBlob publicKey ) 237``` 238**描述** 239 240导出芯片平台级密钥对的公钥。 241 242**起始版本:** 4.0 243 244**参数:** 245 246| 名称 | 描述 | 247| -------- | -------- | 248| salt | 用来派生芯片平台密钥对时的派生因子[HuksBlob](_huks_blob.md)。 | 249| scene | 业务预期进行芯片平台解密的场景[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 250| publicKey | 公钥材料,如出参为ECC-P256的x、y轴值裸数据,各32字节[HuksBlob](_huks_blob.md)。 | 251 252**返回:** 253 2540 表示成功 255 256非0表示失败 257 258 259### ExportPublicKey() 260 261``` 262IHuks::ExportPublicKey ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [out] struct HuksBlob keyOut ) 263``` 264**描述** 265 266导出密钥对的公钥。 267 268**起始版本:** 4.0 269 270**参数:** 271 272| 名称 | 描述 | 273| -------- | -------- | 274| encKey | 加密的密钥对材料[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 275| paramSet | 导出密钥密钥属性集[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 276| keyOut | 公钥材料[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 277 278**返回:** 279 2800 表示导出密钥成功 281 282非0表示导出密钥失败 283 284 285### Finish() 286 287``` 288IHuks::Finish ([in] struct HuksBlob handle, [in] struct HuksParamSet paramSet, [in] struct HuksBlob inData, [out] struct HuksBlob outData ) 289``` 290**描述** 291 292结束密钥会话和操作数据。 293 294**起始版本:** 4.0 295 296**参数:** 297 298| 名称 | 描述 | 299| -------- | -------- | 300| handle | 密钥会话句柄[HuksBlob](_huks_blob.md) | 301| paramSet | 操作密钥的参数集[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 302| inData | 分段数据或者参数[HuksBlob](_huks_blob.md)。 | 303| outData | 操作完成的数据[HuksBlob](_huks_blob.md)。 | 304 305**参见:** 306 307[Init](#init) | [Update](#update) | [Abort](#abort) 308 309**返回:** 310 3110 表示操作成功 312 313非0表示操作失败 314 315 316### GenerateKey() 317 318``` 319IHuks::GenerateKey ([in] struct HuksBlob keyAlias, [in] struct HuksParamSet paramSet, [in] struct HuksBlob keyIn, [out] struct HuksBlob encKeyOut ) 320``` 321**描述** 322 323根据待生成密钥的属性生成对应的密钥材料,并返回加密后的密钥材料密文。 324 325**起始版本:** 4.0 326 327**参数:** 328 329| 名称 | 描述 | 330| -------- | -------- | 331| keyAlias | 待生成密钥的别名[HuksBlob](_huks_blob.md)。 | 332| paramSet | 待生成密钥的密钥属性参数[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 333| keyIn | 待生成密钥的密钥材料[HuksBlob](_huks_blob.md),可选。 | 334| encKeyOut | 生成密钥的密文材料[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 335 336**返回:** 337 3380 表示生成密钥成功 339 340非0表示生成密钥失败 341 342 343### GenerateRandom() 344 345``` 346IHuks::GenerateRandom ([in] struct HuksParamSet paramSet, [out] struct HuksBlob random ) 347``` 348**描述** 349 350生成随机数。 351 352**起始版本:** 4.0 353 354**参数:** 355 356| 名称 | 描述 | 357| -------- | -------- | 358| paramSet | 用于生成随机数的参数[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 359| random | 生成的随机数[HuksBlob](_huks_blob.md)。 | 360 361**返回:** 362 3630 表示生成成功 364 365非0表示生成失败 366 367 368### ImportKey() 369 370``` 371IHuks::ImportKey ([in] struct HuksBlob keyAlias, [in] struct HuksBlob key, [in] struct HuksParamSet paramSet, [out] struct HuksBlob encKeyOut ) 372``` 373**描述** 374 375导入明文密钥。 376 377**起始版本:** 4.0 378 379**参数:** 380 381| 名称 | 描述 | 382| -------- | -------- | 383| keyAlias | 待导入密钥的别名[HuksBlob](_huks_blob.md)。 | 384| key | 待导入密钥的明文密钥材料[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 385| paramSet | 待导入密钥的密钥属性集[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 386| encKeyOut | 导入密钥的密文材料[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 387 388**返回:** 389 3900 表示导入密钥成功 391 392非0表示导入密钥失败 393 394 395### ImportWrappedKey() 396 397``` 398IHuks::ImportWrappedKey ([in] struct HuksBlob wrappingKeyAlias, [in] struct HuksBlob wrappingEncKey, [in] struct HuksBlob wrappedKeyData, [in] struct HuksParamSet paramSet, [out] struct HuksBlob encKeyOut ) 399``` 400**描述** 401 402导入加密密钥。 403 404**起始版本:** 4.0 405 406**参数:** 407 408| 名称 | 描述 | 409| -------- | -------- | 410| wrappingKeyAlias | 用于做加密导入的中间密钥别名[HuksBlob](_huks_blob.md)。 | 411| wrappingEncKey | 用于做加密导入的中间密钥密文[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 412| wrappedKeyData | 待导入密钥的密文密钥材料[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 413| paramSet | 待导入密钥的密钥属性集[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 414| encKeyOut | 导入密钥的密文材料[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 415 416**返回:** 417 4180 表示导入密钥成功 419 420非0表示导入密钥失败 421 422 423### Init() 424 425``` 426IHuks::Init ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [out] struct HuksBlob handle, [out] struct HuksBlob token ) 427``` 428**描述** 429 430初始化密钥会话,解密密钥材料到内存中,并返回一个句柄和令牌。 431 432**起始版本:** 4.0 433 434**参数:** 435 436| 名称 | 描述 | 437| -------- | -------- | 438| encKey | 加密的密钥材料[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 439| paramSet | 操作密钥的参数集[HuksParamSet](_huks_param_set.md),用于指定该次密钥操作的参数。 | 440| handle | 密钥会话句柄[HuksBlob](_huks_blob.md),用于后续操作密钥会话。 | 441| token | 密钥会话令牌[HuksBlob](_huks_blob.md),用于密钥访问控制使用。 | 442 443**参见:** 444 445[Init](#init) | Update| [Finish](#finish) 446 447**返回:** 448 4490 表示初始化会话成功 450 451非0表示初始化失败 452 453 454### Mac() 455 456``` 457IHuks::Mac ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [in] struct HuksBlob srcData, [out] struct HuksBlob mac ) 458``` 459**描述** 460 461使用HUKS存储的密钥做数据的消息认证码。 462 463**起始版本:** 4.0 464 465**参数:** 466 467| 名称 | 描述 | 468| -------- | -------- | 469| encKey | 密钥材料密文[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 470| paramSet | 用于做MAC的参数[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 471| srcData | 用于做MAC的数据[HuksBlob](_huks_blob.md)。 | 472| mac | 消息认证码[HuksBlob](_huks_blob.md)。 | 473 474**返回:** 475 4760 表示成功 477 478非0表示失败 479 480 481### ModuleInit() 482 483``` 484IHuks::ModuleInit () 485``` 486**描述** 487 488HUKS驱动初始化。 489 490**起始版本:** 4.0 491 492**返回:** 493 4940 表示初始化成功 495 496非0表示初始化失败 497 498 499### Sign() 500 501``` 502IHuks::Sign ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [in] struct HuksBlob srcData, [out] struct HuksBlob signature ) 503``` 504**描述** 505 506使用密钥对数据进行签名。 507 508**起始版本:** 4.0 509 510**参数:** 511 512| 名称 | 描述 | 513| -------- | -------- | 514| encKey | 密钥材料密文[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 515| paramSet | 用于签名的参数[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 516| srcData | 待签名的数据[HuksBlob](_huks_blob.md)。 | 517| signature | 数据的签名[HuksBlob](_huks_blob.md)。 | 518 519**返回:** 520 5210 表示成功 522 523非0表示失败 524 525 526### Update() 527 528``` 529IHuks::Update ([in] struct HuksBlob handle, [in] struct HuksParamSet paramSet, [in] struct HuksBlob inData, [out] struct HuksBlob outData ) 530``` 531**描述** 532 533分段操作数据或分段传参,根据密码算法的本身的要求需要对数据进行分段操作或传参(密钥协商场景)。 534 535**起始版本:** 4.0 536 537**参数:** 538 539| 名称 | 描述 | 540| -------- | -------- | 541| handle | 密钥会话句柄[HuksBlob](_huks_blob.md),通过初始化密钥会话接口获取。 | 542| paramSet | 操作密钥的参数集[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 543| inData | 分段数据或者参数[HuksBlob](_huks_blob.md)。 | 544| outData | 操作完成的数据[HuksBlob](_huks_blob.md)。 | 545 546**参见:** 547 548[Init](#init) | [Finish](#finish) | [Abort](#abort) 549 550**返回:** 551 5520 表示操作成功 553 554非0表示操作失败 555 556 557### UpgradeKey() 558 559``` 560IHuks::UpgradeKey ([in] struct HuksBlob encOldKey, [in] struct HuksParamSet paramSet, [out] struct HuksBlob encNewKey ) 561``` 562**描述** 563 564升级密钥,包括升级加密方式和加密材料。当密钥文件版本号小于最新版本号时,HUKS Service触发该升级能力。 565 566**起始版本:** 4.0 567 568**参数:** 569 570| 名称 | 描述 | 571| -------- | -------- | 572| encOldKey | 待升级密钥材料密文[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 573| paramSet | 升级密钥的参数[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 574| encNewKey | 升级后的密钥材料密文[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 575 576**返回:** 577 5780 表示成功 579 580非0表示失败 581 582 583### Verify() 584 585``` 586IHuks::Verify ([in] struct HuksBlob encKey, [in] struct HuksParamSet paramSet, [in] struct HuksBlob srcData, [in] struct HuksBlob signature ) 587``` 588**描述** 589 590校验数据的签名。 591 592**起始版本:** 4.0 593 594**参数:** 595 596| 名称 | 描述 | 597| -------- | -------- | 598| encKey | 密钥材料密文[HuksBlob](_huks_blob.md),密钥材料结构参见《HUKS设备开发指南》。 | 599| paramSet | 用于校验签名的参数[HuksParamSet](_huks_param_set.md),属性集结构参见《HUKS设备开发指南》。 | 600| srcData | 待验签的数据[HuksBlob](_huks_blob.md)。 | 601| signature | 待校验数据的签名[HuksBlob](_huks_blob.md)。 | 602 603**返回:** 604 6050 表示成功 606 607非0表示失败 608