# HuksParamSetApi
## 概述
描述HUKS参数集的能力,支持HUKS密钥管理接口的使用,包括初始化参数集、添加参数、构造参数集、释放参数集等HUKS参数集生命周期管理函数, 还包括获取参数、复制参数集、查询参数集、检查是否有效等函数。
\@syscap SystemCapability.Security.Huks
**起始版本:**
9
## 汇总
### 文件
| 名称 | 描述 |
| -------- | -------- |
| [native_huks_param.h](native__huks__param_8h.md) | 提供参数集构造、使用和销毁的API。
**引用文件**:
**库**:libhuks_ndk.z.so |
### 函数
| 名称 | 描述 |
| -------- | -------- |
| [OH_Huks_InitParamSet](#oh_huks_initparamset) (struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*\*paramSet) | 初始化参数集。 |
| [OH_Huks_AddParams](#oh_huks_addparams) (struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, const struct [OH_Huks_Param](_o_h___huks___param.md) \*params, uint32_t paramCnt) | 添加参数到参数集里面。 |
| [OH_Huks_BuildParamSet](#oh_huks_buildparamset) (struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*\*paramSet) | 构造正式的参数集。 |
| [OH_Huks_FreeParamSet](#oh_huks_freeparamset) (struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*\*paramSet) | 销毁参数集。 |
| [OH_Huks_CopyParamSet](#oh_huks_copyparamset) (const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*fromParamSet, uint32_t fromParamSetSize, struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*\*paramSet) | 复制参数集(深拷贝)。 |
| [OH_Huks_GetParam](#oh_huks_getparam) (const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, uint32_t tag, struct [OH_Huks_Param](_o_h___huks___param.md) \*\*param) | 从参数集中获取参数。 |
| [OH_Huks_FreshParamSet](#oh_huks_freshparamset) (struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, bool isCopy) | 刷新(复制)参数集内Blob类型的数据到参数集内。 |
| [OH_Huks_isParamSetTagValid](#oh_huks_isparamsettagvalid) (const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet) | 检查参数集中的参数是否有效、是否有重复。 |
| [OH_Huks_isParamSetValid](#oh_huks_isparamsetvalid) (const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, uint32_t size) | 检查参数集大小是否有效。 |
| [OH_Huks_CheckParamMatch](#oh_huks_checkparammatch) (const struct [OH_Huks_Param](_o_h___huks___param.md) \*baseParam, const struct [OH_Huks_Param](_o_h___huks___param.md) \*param) | 比较两个参数是否相同 |
## 函数说明
### OH_Huks_AddParams()
```
int32_t OH_Huks_AddParams (struct OH_Huks_ParamSet * paramSet, const struct OH_Huks_Param * params, uint32_t paramCnt )
```
**描述:**
添加参数到参数集里面。
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| paramSet | 指向要被添加参数的参数集的指针。 |
| params | 指向要添加的参数数组的指针。 |
| paramCnt | 待添加参数数组的参数个数。 |
**返回:**
返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示添加成功,其他时为错误。
### OH_Huks_BuildParamSet()
```
int32_t OH_Huks_BuildParamSet (struct OH_Huks_ParamSet ** paramSet)
```
**描述:**
构造正式的参数集。
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| paramSet | 指向要被正式构造的参数集的指针地址。 |
**返回:**
返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示构建成功,其他时为错误。
### OH_Huks_CheckParamMatch()
```
int32_t OH_Huks_CheckParamMatch (const struct OH_Huks_Param * baseParam, const struct OH_Huks_Param * param )
```
**描述:**
比较两个参数是否相同
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| baseParam | 指向被比较的参数的指针。 |
| param | 指向比较的参数的指针。 |
**返回:**
返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示相同,其他时为不同或者错误。
### OH_Huks_CopyParamSet()
```
int32_t OH_Huks_CopyParamSet (const struct OH_Huks_ParamSet * fromParamSet, uint32_t fromParamSetSize, struct OH_Huks_ParamSet ** paramSet )
```
**描述:**
复制参数集(深拷贝)。
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| fromParamSet | 指向要被复制的参数集的指针。 |
| fromParamSetSize | 被复制的参数集占用内存的大小。 |
| paramSet | 指向生成新的参数集的指针地址。 |
**返回:**
返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示复制成功,其他时为错误。
### OH_Huks_FreeParamSet()
```
void OH_Huks_FreeParamSet (struct OH_Huks_ParamSet ** paramSet)
```
**描述:**
销毁参数集。
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| paramSet | 指向要被销毁的参数集的指针地址。 |
### OH_Huks_FreshParamSet()
```
int32_t OH_Huks_FreshParamSet (struct OH_Huks_ParamSet * paramSet, bool isCopy )
```
**描述:**
刷新(复制)参数集内Blob类型的数据到参数集内。
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| paramSet | 指向参数集的指针。 |
| isCopy | 是否要刷新参数集内存中的struct HksBlob型的参数数据。 |
**返回:**
返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示成功,其他时为错误。
### OH_Huks_GetParam()
```
int32_t OH_Huks_GetParam (const struct OH_Huks_ParamSet * paramSet, uint32_t tag, struct OH_Huks_Param ** param )
```
**描述:**
从参数集中获取参数。
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| paramSet | 指向参数集的指针。 |
| tag | 要获取的对应参数的值。 |
| param | 指向获取到的参数的指针地址。 |
**返回:**
返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示获取成功,其他时为错误。
### OH_Huks_InitParamSet()
```
int32_t OH_Huks_InitParamSet (struct OH_Huks_ParamSet ** paramSet)
```
**描述:**
初始化参数集。
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| paramSet | 指向要初始化的参数集的指针地址。 |
**返回:**
返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示初始化成功,其他时为错误。
### OH_Huks_isParamSetTagValid()
```
int32_t OH_Huks_isParamSetTagValid (const struct OH_Huks_ParamSet * paramSet)
```
**描述:**
检查参数集中的参数是否有效、是否有重复。
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| paramSet | 指向参数集的指针。 |
**返回:**
返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示有效,其他时为无效或者错误。
### OH_Huks_isParamSetValid()
```
int32_t OH_Huks_isParamSetValid (const struct OH_Huks_ParamSet * paramSet, uint32_t size )
```
**描述:**
检查参数集大小是否有效。
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| paramSet | 指向参数集的指针。 |
| size | 参数集占用的内存大小。 |
**返回:**
返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示有效,其他时为无效或者错误。