• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# HuksKeyApi
2
3
4## 概述
5
6描述HUKS向应用提供密钥库能力,包括密钥管理及密钥的密码学操作等功能。 管理的密钥可以由应用导入或者由应用调用HUKS接口生成。
7
8\@syscap SystemCapability.Security.Huks
9
10 **起始版本:**
119
12
13## 汇总
14
15
16### 文件
17
18  | 名称 | 描述 |
19| -------- | -------- |
20| [native_huks_api.h](native__huks__api_8h.md) | 声明用于访问HUKS的API。<br>引用文件:<huks/native_huks/api.h>  |
21
22
23### 函数
24
25  | 名称 | 描述 |
26| -------- | -------- |
27| [OH_Huks_GetSdkVersion](#oh_huks_getsdkversion) (struct [OH_Huks_Blob](_o_h___huks___blob.md) \*sdkVersion) | 获取当前Huks sdk版本号。  |
28| [OH_Huks_GenerateKeyItem](#oh_huks_generatekeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSetIn, struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSetOut) | 生成密钥。  |
29| [OH_Huks_ImportKeyItem](#oh_huks_importkeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*key) | 导入明文密钥。  |
30| [OH_Huks_ImportWrappedKeyItem](#oh_huks_importwrappedkeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*wrappingKeyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*wrappedKeyData) | 导入密文密钥。  |
31| [OH_Huks_ExportPublicKeyItem](#oh_huks_exportpublickeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, struct [OH_Huks_Blob](_o_h___huks___blob.md) \*key) | 导出公钥。  |
32| [OH_Huks_DeleteKeyItem](#oh_huks_deletekeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet) | 删除密钥。  |
33| [OH_Huks_GetKeyItemParamSet](#oh_huks_getkeyitemparamset) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSetIn, struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSetOut) | 获取密钥的属性集。  |
34| [OH_Huks_IsKeyItemExist](#oh_huks_iskeyitemexist) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet) | 判断密钥是否存在。  |
35| [OH_Huks_AttestKeyItem](#oh_huks_attestkeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, struct [OH_Huks_CertChain](_o_h___huks___cert_chain.md) \*certChain) | 获取密钥证书链。  |
36| [OH_Huks_InitSession](#oh_huks_initsession) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, struct [OH_Huks_Blob](_o_h___huks___blob.md) \*handle, struct [OH_Huks_Blob](_o_h___huks___blob.md) \*token) | 初始化密钥会话接口,并获取一个句柄(必选)和挑战值(可选)。  |
37| [OH_Huks_UpdateSession](#oh_huks_updatesession) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*handle, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*inData, struct [OH_Huks_Blob](_o_h___huks___blob.md) \*outData) | 分段添加密钥操作的数据并进行相应的密钥操作,输出处理数据。  |
38| [OH_Huks_FinishSession](#oh_huks_finishsession) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*handle, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*inData, struct [OH_Huks_Blob](_o_h___huks___blob.md) \*outData) | 结束密钥会话并进行相应的密钥操作,输出处理数据。  |
39| [OH_Huks_AbortSession](#oh_huks_abortsession) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*handle, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet) | 取消密钥会话。  |
40
41
42## 函数说明
43
44
45### OH_Huks_AbortSession()
46
47
48```
49struct OH_Huks_Result OH_Huks_AbortSession (const struct OH_Huks_Blob * handle, const struct OH_Huks_ParamSet * paramSet )
50```
51**描述:**
52取消密钥会话。
53
54**参数:**
55
56  | 名称 | 描述 |
57| -------- | -------- |
58| handle | 密钥会话句柄,通过[OH_Huks_InitSession](#oh_huks_initsession)接口生成的。  |
59| paramSet | 取消密钥会话需要的输入参数集(默认传空)。  |
60
61**返回:**
62
63返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。
64
65**参见:**
66
67[OH_Huks_InitSession](#oh_huks_initsession)
68
69[OH_Huks_UpdateSession](#oh_huks_updatesession)
70
71[OH_Huks_FinishSession](#oh_huks_finishsession)
72
73
74### OH_Huks_AttestKeyItem()
75
76
77```
78struct OH_Huks_Result OH_Huks_AttestKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet, struct OH_Huks_CertChain * certChain )
79```
80**描述:**
81获取密钥证书链。
82
83**参数:**
84
85  | 名称 | 描述 |
86| -------- | -------- |
87| keyAlias | 要获取证书的密钥的别名。  |
88| paramSet | 获取密钥证书需要的参数。  |
89| certChain | 存放输出的密钥证书链。  |
90
91**返回:**
92
93返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时获取成功,其他时为错误。
94
95
96### OH_Huks_DeleteKeyItem()
97
98
99```
100struct OH_Huks_Result OH_Huks_DeleteKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet )
101```
102**描述:**
103删除密钥。
104
105**参数:**
106
107  | 名称 | 描述 |
108| -------- | -------- |
109| keyAlias | 待删除密钥的别名,应与密钥生成时使用的别名相同。  |
110| paramSet | 删除密钥需要属性参数(默认传空)。  |
111
112**返回:**
113
114返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。
115
116
117### OH_Huks_ExportPublicKeyItem()
118
119
120```
121struct OH_Huks_Result OH_Huks_ExportPublicKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet, struct OH_Huks_Blob * key )
122```
123**描述:**
124导出公钥。
125
126**参数:**
127
128  | 名称 | 描述 |
129| -------- | -------- |
130| keyAlias | 待导出公钥的密钥别名,应与所用密钥生成时使用的别名相同。  |
131| paramSet | 导出公钥需要的属性参数。  |
132| key | 存放导出的公钥。  |
133
134**返回:**
135
136返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。
137
138
139### OH_Huks_FinishSession()
140
141
142```
143struct OH_Huks_Result OH_Huks_FinishSession (const struct OH_Huks_Blob * handle, const struct OH_Huks_ParamSet * paramSet, const struct OH_Huks_Blob * inData, struct OH_Huks_Blob * outData )
144```
145**描述:**
146结束密钥会话并进行相应的密钥操作,输出处理数据。
147
148**参数:**
149
150  | 名称 | 描述 |
151| -------- | -------- |
152| handle | 密钥会话句柄,通过[OH_Huks_InitSession](#oh_huks_initsession)接口生成的。  |
153| paramSet | 密钥操作对应的输入参数集。  |
154| inData | 要处理的输入数据。  |
155| outData | 经过对应的密钥操作后输出的数据。  |
156
157**返回:**
158
159返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。
160
161**参见:**
162
163[OH_Huks_InitSession](#oh_huks_initsession)
164
165[OH_Huks_UpdateSession](#oh_huks_updatesession)
166
167[OH_Huks_AbortSession](#oh_huks_abortsession)
168
169
170### OH_Huks_GenerateKeyItem()
171
172
173```
174struct OH_Huks_Result OH_Huks_GenerateKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSetIn, struct OH_Huks_ParamSet * paramSetOut )
175```
176**描述:**
177生成密钥。
178
179**参数:**
180
181  | 名称 | 描述 |
182| -------- | -------- |
183| keyAlias | 给要生成的密钥的别名,需要保证业务所在进程内唯一,否则会发生覆盖。  |
184| paramSetIn | 生成密钥的属性信息的参数集。  |
185| paramSetOut | 生成密钥为临时类型时,存放着密钥数据;非临时类型可为空。  |
186
187**返回:**
188
189返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。
190
191
192### OH_Huks_GetKeyItemParamSet()
193
194
195```
196struct OH_Huks_Result OH_Huks_GetKeyItemParamSet (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSetIn, struct OH_Huks_ParamSet * paramSetOut )
197```
198**描述:**
199获取密钥的属性集。
200
201**参数:**
202
203  | 名称 | 描述 |
204| -------- | -------- |
205| keyAlias | 要获取参数集的密钥别名。  |
206| paramSetIn | 要获取参数集需要的属性TAG(默认传空)。  |
207| paramSetOut | 获取到的输出参数集。  |
208
209**返回:**
210
211返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时获取成功,其他时为失败。
212
213
214### OH_Huks_GetSdkVersion()
215
216
217```
218struct OH_Huks_Result OH_Huks_GetSdkVersion (struct OH_Huks_Blob * sdkVersion)
219```
220**描述:**
221获取当前Huks sdk版本号。
222
223**参数:**
224
225  | 名称 | 描述 |
226| -------- | -------- |
227| sdkVersion | 用于存放获取到的版本信息(字符串格式)。  |
228
229**返回:**
230
231返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。
232
233
234### OH_Huks_ImportKeyItem()
235
236
237```
238struct OH_Huks_Result OH_Huks_ImportKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet, const struct OH_Huks_Blob * key )
239```
240**描述:**
241导入明文密钥。
242
243**参数:**
244
245  | 名称 | 描述 |
246| -------- | -------- |
247| keyAlias | 待导入密钥的别名,需要保证业务所在进程内唯一,否则会发生覆盖。  |
248| paramSet | 待导入密钥的属性参数。  |
249| key | 待导入密钥数据,需符合Huks的格式要求,具体见[HuksTypeApi](_huks_type_api.md)。  |
250
251**返回:**
252
253返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。
254
255
256### OH_Huks_ImportWrappedKeyItem()
257
258
259```
260struct OH_Huks_Result OH_Huks_ImportWrappedKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_Blob * wrappingKeyAlias, const struct OH_Huks_ParamSet * paramSet, const struct OH_Huks_Blob * wrappedKeyData )
261```
262**描述:**
263导入密文密钥。
264
265**参数:**
266
267  | 名称 | 描述 |
268| -------- | -------- |
269| keyAlias | 待导入密钥的别名,需要保证业务所在进程内唯一,否则会发生覆盖。  |
270| wrappingKeyAlias | 密钥别名,该对应密钥用于密钥协商出密钥解密待导入密钥。  |
271| paramSet | 待导入加密密钥的属性参数。  |
272| wrappedKeyData | 需要导入的加密的密钥数据,需要符合Huks定义的格式,具体见[OH_Huks_AlgSuite](_huks_type_api.md#oh_huks_algsuite) |
273
274**返回:**
275
276返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。
277
278
279### OH_Huks_InitSession()
280
281
282```
283struct OH_Huks_Result OH_Huks_InitSession (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet, struct OH_Huks_Blob * handle, struct OH_Huks_Blob * token )
284```
285**描述:**
286初始化密钥会话接口,并获取一个句柄(必选)和挑战值(可选)。
287
288**参数:**
289
290  | 名称 | 描述 |
291| -------- | -------- |
292| keyAlias | 操作的密钥的别名。  |
293| paramSet | 初始化操作的密钥参数集合。  |
294| handle | 密钥会话的句柄,后续其他操作时传入该句柄,包括[OH_Huks_UpdateSession](#oh_huks_updatesession), [OH_Huks_FinishSession](#oh_huks_finishsession), [OH_Huks_AbortSession](#oh_huks_abortsession)。  |
295| token | 存放安全访问控制时传回的token  |
296
297**返回:**
298
299返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。
300
301**参见:**
302
303[OH_Huks_UpdateSession](#oh_huks_updatesession)
304
305[OH_Huks_FinishSession](#oh_huks_finishsession)
306
307[OH_Huks_AbortSession](#oh_huks_abortsession)
308
309
310### OH_Huks_IsKeyItemExist()
311
312
313```
314struct OH_Huks_Result OH_Huks_IsKeyItemExist (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet )
315```
316**描述:**
317判断密钥是否存在。
318
319**参数:**
320
321  | 名称 | 描述 |
322| -------- | -------- |
323| keyAlias | 要查找的密钥的别名。  |
324| paramSet | 查询密钥需要的属性TAG(默认传空)。  |
325
326**返回:**
327
328返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时密钥存在, 返回[OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST](_huks_type_api.md)不存在,其他时为错误。
329
330
331### OH_Huks_UpdateSession()
332
333
334```
335struct OH_Huks_Result OH_Huks_UpdateSession (const struct OH_Huks_Blob * handle, const struct OH_Huks_ParamSet * paramSet, const struct OH_Huks_Blob * inData, struct OH_Huks_Blob * outData )
336```
337**描述:**
338分段添加密钥操作的数据并进行相应的密钥操作,输出处理数据。
339
340**参数:**
341
342  | 名称 | 描述 |
343| -------- | -------- |
344| handle | 密钥会话句柄,通过[OH_Huks_InitSession](#oh_huks_initsession)接口生成的。  |
345| paramSet | 密钥操作对应的输入参数集。  |
346| inData | 要处理的输入数据,如果数据过大,可分片多次调用。  |
347| outData | 经过对应的密钥操作后输出的数据。  |
348
349**返回:**
350
351返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。
352
353**参见:**
354
355[OH_Huks_InitSession](#oh_huks_initsession)
356
357[OH_Huks_FinishSession](#oh_huks_finishsession)
358
359[OH_Huks_AbortSession](#oh_huks_abortsession)
360