• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# AssetApi
2
3
4## 概述
5
6提供用户短敏感数据的安全存储及管理能力,包括新增、删除、更新、查询等。
7其中,短敏感数据可以是密码类(账号/密码)、Token类(应用凭据)、其他关键明文(如银行卡号)等长度较短的用户敏感数据。
8
9**系统能力:** SystemCapability.Security.Asset
10
11**起始版本:** 11
12
13
14## 汇总
15
16
17### 文件
18
19| 名称 | 描述 |
20| -------- | -------- |
21| [asset_api.h](asset__api_8h.md) | 声明用于访问关键资产的接口。  |
22
23
24### 函数
25
26| 名称 | 描述 |
27| -------- | -------- |
28| int32_t [OH_Asset_Add](#oh_asset_add) (const [Asset_Attr](_asset___attr.md) \*attributes, uint32_t attrCnt) | 新增一条关键资产。 |
29| int32_t [OH_Asset_Remove](#oh_asset_remove) (const [Asset_Attr](_asset___attr.md) \*query, uint32_t queryCnt) | 删除符合条件的一条或多条关键资产。  |
30| int32_t [OH_Asset_Update](#oh_asset_update) (const [Asset_Attr](_asset___attr.md) \*query, uint32_t queryCnt, const [Asset_Attr](_asset___attr.md) \*attributesToUpdate, uint32_t updateCnt) | 更新符合条件的一条关键资产。  |
31| int32_t [OH_Asset_PreQuery](#oh_asset_prequery) (const [Asset_Attr](_asset___attr.md) \*query, uint32_t queryCnt, [Asset_Blob](_asset___blob.md) \*challenge) | 查询的预处理,用于需要用户认证的关键资产。  |
32| int32_t [OH_Asset_Query](#oh_asset_query) (const [Asset_Attr](_asset___attr.md) \*query, uint32_t queryCnt, [Asset_ResultSet](_asset___result_set.md) \*resultSet) | 查询一条或多条符合条件的关键资产。  |
33| int32_t [OH_Asset_PostQuery](#oh_asset_postquery) (const [Asset_Attr](_asset___attr.md) \*handle, uint32_t handleCnt) | 查询的后置处理,用于需要用户认证的关键资产。  |
34| [Asset_Attr](_asset___attr.md) \* [OH_Asset_ParseAttr](#oh_asset_parseattr) (const [Asset_Result](_asset___result.md) \*result, [Asset_Tag](_asset_type.md#asset_tag) tag) | 解析查询结果,并获取指定的属性值。  |
35| void [OH_Asset_FreeBlob](#oh_asset_freeblob) ([Asset_Blob](_asset___blob.md) \*blob) | 释放挑战值所占用的内存。  |
36| void [OH_Asset_FreeResultSet](#oh_asset_freeresultset) ([Asset_ResultSet](_asset___result_set.md) \*resultSet) | 释放查询结果所占用的内存。  |
37
38
39## 函数说明
40
41
42### OH_Asset_Add()
43
44```
45int32_t OH_Asset_Add (const Asset_Attr * attributes, uint32_t attrCnt )
46```
47**描述**
48新增一条关键资产。
49
50如果要设置[ASSET_TAG_IS_PERSISTENT](_asset_type.md#asset_tag)属性,需要申请ohos.permission.STORE_PERSISTENT_DATA权限。
51
52**起始版本:** 11
53
54**参数:**
55
56| 名称 | 描述 |
57| -------- | -------- |
58| attributes | 待新增关键资产的属性集合。  |
59| attrCnt | 待新增关键资产的属性数量。  |
60
61**返回:**
62
63如果操作成功,则返回[ASSET_SUCCESS](_asset_type.md#asset_resultcode);否则返回错误码。
64
650 - 表示操作成功。
66
67201 - 表示调用者没有权限。
68
69401 - 表示参数错误。
70
7124000001 - 表示关键资产服务不可用。
72
7324000003 - 表示关键资产已存在。
74
7524000005 - 表示锁屏状态不匹配。
76
7724000006 - 表示系统内存不足。
78
7924000007 - 表示关键资产损坏。
80
8124000008 - 表示数据库操作失败。
82
8324000009 - 表示算法库操作失败。
84
8524000010 - 表示进程通信错误。
86
8724000011 - 表示包管理服务异常。
88
8924000012 - 表示账号系统异常。
90
9124000013 - 表示访问控制服务异常。
92
9324000014 - 表示文件操作失败。
94
9524000015 - 表示获取系统时间失败。
96
97
98### OH_Asset_FreeBlob()
99
100```
101void OH_Asset_FreeBlob (Asset_Blob * blob)
102```
103**描述**
104释放挑战值所占用的内存。
105
106**起始版本:** 11
107
108**参数:**
109
110| 名称 | 描述 |
111| -------- | -------- |
112| blob | 从OH_Asset_PreQuery获取的挑战值。  |
113
114
115### OH_Asset_FreeResultSet()
116
117```
118void OH_Asset_FreeResultSet (Asset_ResultSet * resultSet)
119```
120**描述**
121释放查询结果所占用的内存。
122
123**起始版本:** 11
124
125**参数:**
126
127| 名称 | 描述 |
128| -------- | -------- |
129| resultSet | 从OH_Asset_Query得到的查询结果列表。  |
130
131
132### OH_Asset_ParseAttr()
133
134```
135Asset_Attr* OH_Asset_ParseAttr (const Asset_Result * result, Asset_Tag tag )
136```
137**描述**
138解析查询结果,并获取指定的属性值。
139
140**起始版本:** 11
141
142**参数:**
143
144| 名称 | 描述 |
145| -------- | -------- |
146| result | 从OH_Asset_Query中获取的查询结果。  |
147| tag | 待获取的属性标签。  |
148
149**返回:**
150
151如果操作成功,则以Asset_Attr的形式返回属性,该属性不需要业务进行释放;否则返回NULL。
152
153
154### OH_Asset_PostQuery()
155
156```
157int32_t OH_Asset_PostQuery (const Asset_Attr * handle, uint32_t handleCnt )
158```
159**描述**
160查询的后置处理,用于需要用户认证的关键资产。
161
162**起始版本:** 11
163
164**参数:**
165
166| 名称 | 描述 |
167| -------- | -------- |
168| handle | 待处理的查询句柄,当前包含OH_Asset_PreQuery执行成功返回的挑战值。  |
169| handleCnt | 句柄属性集合中元素的个数。  |
170
171**返回:**
172
173如果操作成功,则返回[ASSET_SUCCESS](_asset_type.md#asset_resultcode);否则返回错误码。
174
1750 - 表示操作成功。
176
177401 - 表示参数错误。
178
17924000001 - 表示关键资产服务不可用。
180
18124000006 - 表示系统内存不足。
182
18324000010 - 表示进程通信错误。
184
18524000011 - 表示包管理服务异常。
186
18724000012 - 表示账号系统异常。
188
18924000013 - 表示访问控制服务异常。
190
191### OH_Asset_PreQuery()
192
193```
194int32_t OH_Asset_PreQuery (const Asset_Attr * query, uint32_t queryCnt, Asset_Blob * challenge )
195```
196**描述**
197查询的预处理,用于需要用户认证的关键资产。
198
199**起始版本:** 11
200
201**参数:**
202
203| 名称 | 描述 |
204| -------- | -------- |
205| query | 关键资产的查询条件。  |
206| queryCnt | 关键资产查询条件的个数。  |
207| challenge | 挑战值,在后续调用OH_Asset_Query时使用。  |
208
209**返回:**
210
211如果操作成功,则返回[ASSET_SUCCESS](_asset_type.md#asset_resultcode);否则返回错误码。
212
2130 - 表示操作成功。
214
215401 - 表示参数错误。
216
21724000001 - 表示关键资产服务不可用。
218
21924000002 - 表示未找到关键资产。
220
22124000005 - 表示锁屏状态不匹配。
222
22324000006 - 表示系统内存不足。
224
22524000007 - 表示关键资产损坏。
226
22724000008 - 表示数据库操作失败。
228
22924000009 - 表示算法库操作失败。
230
23124000010 - 表示进程通信错误。
232
23324000011 - 表示包管理服务异常。
234
23524000012 - 表示账号系统异常。
236
23724000013 - 表示访问控制服务异常。
238
23924000016 - 表示缓存数量超限。
240
24124000017 - 表示该子功能不支持。
242
243### OH_Asset_Query()
244
245```
246int32_t OH_Asset_Query (const Asset_Attr * query, uint32_t queryCnt, Asset_ResultSet * resultSet )
247```
248**描述**
249查询一条或多条符合条件的关键资产。
250
251**起始版本:** 11
252
253**参数:**
254
255| 名称 | 描述 |
256| -------- | -------- |
257| query | 关键资产的查询条件。  |
258| queryCnt | 关键资产查询条件的个数。  |
259| resultSet | 查询结果列表。  |
260
261**返回:**
262
263如果操作成功,则返回[ASSET_SUCCESS](_asset_type.md#asset_resultcode);否则返回错误码。
264
2650 - 表示操作成功。
266
267401 - 表示参数错误。
268
26924000001 - 表示关键资产服务不可用。
270
27124000002 - 表示未找到关键资产。
272
27324000004 - 表示拒绝访问关键资产。
274
27524000005 - 表示锁屏状态不匹配。
276
27724000006 - 表示系统内存不足。
278
27924000007 - 表示关键资产损坏。
280
28124000008 - 表示数据库操作失败。
282
28324000009 - 表示算法库操作失败。
284
28524000010 - 表示进程通信错误。
286
28724000011 - 表示包管理服务异常。
288
28924000012 - 表示账号系统异常。
290
29124000013 - 表示访问控制服务异常。
292
29324000017 - 表示该子功能不支持。
294
295### OH_Asset_Remove()
296
297```
298int32_t OH_Asset_Remove (const Asset_Attr * query, uint32_t queryCnt )
299```
300**描述**
301删除符合条件的一条或多条关键资产。
302
303**起始版本:** 11
304
305**参数:**
306
307| 名称 | 描述 |
308| -------- | -------- |
309| query | 待删除关键资产的搜索条件。  |
310| queryCnt | 待删除关键资产搜索条件的个数。  |
311
312**返回:**
313
314如果操作成功,则返回[ASSET_SUCCESS](_asset_type.md#asset_resultcode);否则返回错误码。
315
3160 - 表示操作成功。
317
318401 - 表示参数错误。
319
32024000001 - 表示关键资产服务不可用。
321
32224000002 - 表示未找到关键资产。
323
32424000006 - 表示系统内存不足。
325
32624000007 - 表示关键资产损坏。
327
32824000008 - 表示数据库操作失败。
329
33024000010 - 表示进程通信错误。
331
33224000011 - 表示包管理服务异常。
333
33424000012 - 表示账号系统异常。
335
33624000013 - 表示访问控制服务异常。
337
33824000015 - 表示获取系统时间失败。
339
340### OH_Asset_Update()
341
342```
343int32_t OH_Asset_Update (const Asset_Attr * query, uint32_t queryCnt, const Asset_Attr * attributesToUpdate, uint32_t updateCnt )
344```
345**描述**
346更新符合条件的一条关键资产。
347
348**起始版本:** 11
349
350**参数:**
351
352| 名称 | 描述 |
353| -------- | -------- |
354| query | 待更新关键资产的搜索条件。  |
355| queryCnt | 待更新关键资产搜索条件的个数。  |
356| attributesToUpdate | 待更新关键资产的属性集合。  |
357| updateCnt | 待更新关键资产的属性数量。  |
358
359**返回:**
360
361如果操作成功,则返回[ASSET_SUCCESS](_asset_type.md#asset_resultcode);否则返回错误码。
362
3630 - 表示操作成功。
364
365401 - 表示参数错误。
366
36724000001 - 表示关键资产服务不可用。
368
36924000002 - 表示未找到关键资产。
370
37124000005 - 表示锁屏状态不匹配。
372
37324000006 - 表示系统内存不足。
374
37524000007 - 表示关键资产损坏。
376
37724000008 - 表示数据库操作失败。
378
37924000009 - 表示算法库操作失败。
380
38124000010 - 表示进程通信错误。
382
38324000011 - 表示包管理服务异常。
384
38524000012 - 表示账号系统异常。
386
38724000013 - 表示访问控制服务异常。
388
38924000015 - 表示获取系统时间失败。
390