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
65
66### OH_Asset_FreeBlob()
67
68```
69void OH_Asset_FreeBlob (Asset_Blob * blob)
70```
71**描述**
72释放挑战值所占用的内存。
73
74**起始版本:** 11
75
76**参数:**
77
78| 名称 | 描述 |
79| -------- | -------- |
80| blob | 从OH_Asset_PreQuery获取的挑战值。  |
81
82
83### OH_Asset_FreeResultSet()
84
85```
86void OH_Asset_FreeResultSet (Asset_ResultSet * resultSet)
87```
88**描述**
89释放查询结果所占用的内存。
90
91**起始版本:** 11
92
93**参数:**
94
95| 名称 | 描述 |
96| -------- | -------- |
97| resultSet | 从OH_Asset_Query得到的查询结果列表。  |
98
99
100### OH_Asset_ParseAttr()
101
102```
103Asset_Attr* OH_Asset_ParseAttr (const Asset_Result * result, Asset_Tag tag )
104```
105**描述**
106解析查询结果,并获取指定的属性值。
107
108**起始版本:** 11
109
110**参数:**
111
112| 名称 | 描述 |
113| -------- | -------- |
114| result | 从OH_Asset_Query中获取的查询结果。  |
115| tag | 待获取的属性标签。  |
116
117**返回:**
118
119如果操作成功,则以Asset_Attr的形式返回属性,该属性不需要业务进行释放;否则返回NULL。
120
121
122### OH_Asset_PostQuery()
123
124```
125int32_t OH_Asset_PostQuery (const Asset_Attr * handle, uint32_t handleCnt )
126```
127**描述**
128查询的后置处理,用于需要用户认证的关键资产。
129
130**起始版本:** 11
131
132**参数:**
133
134| 名称 | 描述 |
135| -------- | -------- |
136| handle | 待处理的查询句柄,当前包含OH_Asset_PreQuery执行成功返回的挑战值。  |
137| handleCnt | 句柄属性集合中元素的个数。  |
138
139**返回:**
140
141如果操作成功,则返回[ASSET_SUCCESS](_asset_type.md#asset_resultcode);否则返回错误码。
142
143
144### OH_Asset_PreQuery()
145
146```
147int32_t OH_Asset_PreQuery (const Asset_Attr * query, uint32_t queryCnt, Asset_Blob * challenge )
148```
149**描述**
150查询的预处理,用于需要用户认证的关键资产。
151
152**起始版本:** 11
153
154**参数:**
155
156| 名称 | 描述 |
157| -------- | -------- |
158| query | 关键资产的查询条件。  |
159| queryCnt | 关键资产查询条件的个数。  |
160| challenge | 挑战值,在后续调用OH_Asset_Query时使用。  |
161
162**返回:**
163
164如果操作成功,则返回[ASSET_SUCCESS](_asset_type.md#asset_resultcode);否则返回错误码。
165
166
167### OH_Asset_Query()
168
169```
170int32_t OH_Asset_Query (const Asset_Attr * query, uint32_t queryCnt, Asset_ResultSet * resultSet )
171```
172**描述**
173查询一条或多条符合条件的关键资产。
174
175**起始版本:** 11
176
177**参数:**
178
179| 名称 | 描述 |
180| -------- | -------- |
181| query | 关键资产的查询条件。  |
182| queryCnt | 关键资产查询条件的个数。  |
183| resultSet | 查询结果列表。  |
184
185**返回:**
186
187如果操作成功,则返回[ASSET_SUCCESS](_asset_type.md#asset_resultcode);否则返回错误码。
188
189### OH_Asset_Remove()
190
191```
192int32_t OH_Asset_Remove (const Asset_Attr * query, uint32_t queryCnt )
193```
194**描述**
195删除符合条件的一条或多条关键资产。
196
197**起始版本:** 11
198
199**参数:**
200
201| 名称 | 描述 |
202| -------- | -------- |
203| query | 待删除关键资产的搜索条件。  |
204| queryCnt | 待删除关键资产搜索条件的个数。  |
205
206**返回:**
207
208如果操作成功,则返回[ASSET_SUCCESS](_asset_type.md#asset_resultcode);否则返回错误码。
209
210
211### OH_Asset_Update()
212
213```
214int32_t OH_Asset_Update (const Asset_Attr * query, uint32_t queryCnt, const Asset_Attr * attributesToUpdate, uint32_t updateCnt )
215```
216**描述**
217更新符合条件的一条关键资产。
218
219**起始版本:** 11
220
221**参数:**
222
223| 名称 | 描述 |
224| -------- | -------- |
225| query | 待更新关键资产的搜索条件。  |
226| queryCnt | 待更新关键资产搜索条件的个数。  |
227| attributesToUpdate | 待更新关键资产的属性集合。  |
228| updateCnt | 待更新关键资产的属性数量。  |
229
230**返回:**
231
232如果操作成功,则返回[ASSET_SUCCESS](_asset_type.md#asset_resultcode);否则返回错误码。
233