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