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