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