js-apis-huks.md 52.6 KB
Newer Older
V
Vincentchenhao 已提交
1 2
# 通用密钥库系统

S
shuyi 已提交
3 4 5
> **说明**
>
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
V
Vincentchenhao 已提交
6

S
shuyi 已提交
7
向应用提供密钥库能力,包括密钥管理及密钥的密码学操作等功能。
V
Vincentchenhao 已提交
8 9 10 11 12 13 14
HUKS所管理的密钥可以由应用导入或者由应用调用HUKS接口生成。

## 导入模块

```js
import huks from '@ohos.security.huks'
```
Z
zengyawen 已提交
15
## HuksErrorCode
V
Vincentchenhao 已提交
16 17 18

表示错误码的枚举。

S
shuyi 已提交
19 20
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

V
Vincentchenhao 已提交
21 22
| 名称                       | 值    | 说明 |
| -------------------------- | ----- | ---- |
Z
zengyawen 已提交
23
| HUKS_SUCCESS | 0     |表示成功。|
S
shuyi 已提交
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| HUKS_FAILURE | -1    |表示失败。|
| HUKS_ERROR_BAD_STATE | -2    |表示错误的状态。|
| HUKS_ERROR_INVALID_ARGUMENT | -3    |表示无效的数据。|
| HUKS_ERROR_NOT_SUPPORTED | -4    |表示不支持。|
| HUKS_ERROR_NO_PERMISSION | -5    |表示没有许可。|
| HUKS_ERROR_INSUFFICIENT_DATA | -6    |表示数据不足。|
| HUKS_ERROR_BUFFER_TOO_SMALL | -7    |表示缓冲区太小。|
| HUKS_ERROR_INSUFFICIENT_MEMORY | -8    |表示内存不足。|
| HUKS_ERROR_COMMUNICATION_FAILURE | -9    |表示通讯失败。|
| HUKS_ERROR_STORAGE_FAILURE | -10   |表示存储故障。|
| HUKS_ERROR_HARDWARE_FAILURE | -11   |表示硬件故障。|
| HUKS_ERROR_ALREADY_EXISTS | -12   |表示已经存在。|
| HUKS_ERROR_NOT_EXIST | -13   |表示不存在。|
| HUKS_ERROR_NULL_POINTER | -14   |表示空指针。|
| HUKS_ERROR_FILE_SIZE_FAIL | -15   |表示文件大小失败。|
| HUKS_ERROR_READ_FILE_FAIL | -16   |表示读取文件失败。|
| HUKS_ERROR_INVALID_PUBLIC_KEY | -17   |表示无效的公钥。|
| HUKS_ERROR_INVALID_PRIVATE_KEY | -18   |表示无效的私钥。|
| HUKS_ERROR_INVALID_KEY_INFO | -19   |表示无效的密钥信息。|
| HUKS_ERROR_HASH_NOT_EQUAL | -20   |表示哈希不相等。|
| HUKS_ERROR_MALLOC_FAIL | -21   |表示MALLOC 失败。|
| HUKS_ERROR_WRITE_FILE_FAIL | -22   |表示写文件失败。|
| HUKS_ERROR_REMOVE_FILE_FAIL | -23   |表示删除文件失败。|
| HUKS_ERROR_OPEN_FILE_FAIL | -24   |表示打开文件失败。|
| HUKS_ERROR_CLOSE_FILE_FAIL | -25   |表示关闭文件失败。|
| HUKS_ERROR_MAKE_DIR_FAIL | -26   |表示创建目录失败。|
| HUKS_ERROR_INVALID_KEY_FILE | -27   |表示无效的密钥文件。|
| HUKS_ERROR_IPC_MSG_FAIL | -28   |表示IPC 信息失败。|
| HUKS_ERROR_REQUEST_OVERFLOWS | -29   |表示请求溢出。|
| HUKS_ERROR_PARAM_NOT_EXIST | -30   |表示参数不存在。|
| HUKS_ERROR_CRYPTO_ENGINE_ERROR | -31   |表示CRYPTO ENGINE错误。|
| HUKS_ERROR_COMMUNICATION_TIMEOUT | -32   |表示通讯超时。|
| HUKS_ERROR_IPC_INIT_FAIL | -33   |表示IPC 初始化失败。|
| HUKS_ERROR_IPC_DLOPEN_FAIL | -34   |表示IPC DLOPEN 失败。|
| HUKS_ERROR_EFUSE_READ_FAIL | -35   |表示EFUSE 读取失败。|
| HUKS_ERROR_NEW_ROOT_KEY_MATERIAL_EXIST | -36   |表示存在新的根密钥材料。|
| HUKS_ERROR_UPDATE_ROOT_KEY_MATERIAL_FAIL | -37   |表示更新根密钥材料失败。|
| HUKS_ERROR_VERIFICATION_FAILED | -38   |表示验证证书链失败。|
| HUKS_ERROR_CHECK_GET_ALG_FAIL | -100  |表示检查获取 ALG 失败。|
| HUKS_ERROR_CHECK_GET_KEY_SIZE_FAIL | -101  |表示检查获取密钥大小失败。|
| HUKS_ERROR_CHECK_GET_PADDING_FAIL | -102  |表示检查获取填充失败。|
| HUKS_ERROR_CHECK_GET_PURPOSE_FAIL | -103  |表示检查获取目的失败。|
| HUKS_ERROR_CHECK_GET_DIGEST_FAIL | -104  |表示检查获取摘要失败。|
| HUKS_ERROR_CHECK_GET_MODE_FAIL | -105  |表示检查获取模式失败。|
| HUKS_ERROR_CHECK_GET_NONCE_FAIL | -106  |表示检查获取随机数失败。|
| HUKS_ERROR_CHECK_GET_AAD_FAIL | -107  |表示检查获取 AAD 失败。|
| HUKS_ERROR_CHECK_GET_IV_FAIL | -108  |表示检查 GET IV 失败。|
| HUKS_ERROR_CHECK_GET_AE_TAG_FAIL | -109  |表示检查获取 AE 标记失败。|
| HUKS_ERROR_CHECK_GET_SALT_FAIL | -110  |表示检查获取SALT失败。|
| HUKS_ERROR_CHECK_GET_ITERATION_FAIL | -111  |表示检查获取迭代失败。|
| HUKS_ERROR_INVALID_ALGORITHM | -112  |表示无效的算法。|
| HUKS_ERROR_INVALID_KEY_SIZE | -113  |表示无效的密钥大小。|
| HUKS_ERROR_INVALID_PADDING | -114  |表示无效的填充。|
| HUKS_ERROR_INVALID_PURPOSE | -115  |表示无效的目的。|
| HUKS_ERROR_INVALID_MODE | -116  |表示无效模式。|
| HUKS_ERROR_INVALID_DIGEST | -117  |表示无效的摘要。|
| HUKS_ERROR_INVALID_SIGNATURE_SIZE | -118  |表示签名大小无效。|
| HUKS_ERROR_INVALID_IV | -119  |表示无效的 IV。|
| HUKS_ERROR_INVALID_AAD | -120  |表示无效的 AAD。|
| HUKS_ERROR_INVALID_NONCE | -121  |表示无效的随机数。|
| HUKS_ERROR_INVALID_AE_TAG | -122  |表示无效的 AE 标签。|
| HUKS_ERROR_INVALID_SALT | -123  |表示无效SALT。|
| HUKS_ERROR_INVALID_ITERATION | -124  |表示无效的迭代。|
| HUKS_ERROR_INVALID_OPERATION | -125  |表示无效操作。|
| HUKS_ERROR_INTERNAL_ERROR | -999  |表示内部错误。|
| HUKS_ERROR_UNKNOWN_ERROR | -1000 |表示未知错误。|
V
Vincentchenhao 已提交
90 91


Z
zengyawen 已提交
92
## HuksKeyPurpose
V
Vincentchenhao 已提交
93

S
shuyi 已提交
94
表示密钥用途。
V
Vincentchenhao 已提交
95

S
shuyi 已提交
96 97
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

S
shuyi 已提交
98 99 100 101 102 103 104 105 106 107 108
| 名称                     | 值   | 说明                             |
| ------------------------ | ---- | -------------------------------- |
| HUKS_KEY_PURPOSE_ENCRYPT | 1    | 表示密钥用于对明文进行加密操作。 |
| HUKS_KEY_PURPOSE_DECRYPT | 2    | 表示密钥用于对密文进行解密操作。 |
| HUKS_KEY_PURPOSE_SIGN    | 4    | 表示密钥用于对数据进行签名。     |
| HUKS_KEY_PURPOSE_VERIFY  | 8    | 表示密钥用于验证签名后的数据。   |
| HUKS_KEY_PURPOSE_DERIVE  | 16   | 表示密钥用于派生密钥。           |
| HUKS_KEY_PURPOSE_WRAP    | 32   | 表示密钥用于加密导入。           |
| HUKS_KEY_PURPOSE_UNWRAP  | 64   | 表示密钥加密导出。               |
| HUKS_KEY_PURPOSE_MAC     | 128  | 表示密钥用于生成mac消息验证码。  |
| HUKS_KEY_PURPOSE_AGREE   | 256  | 表示密钥用于进行密钥协商。       |
V
Vincentchenhao 已提交
109

Z
zengyawen 已提交
110
## HuksKeyDigest
V
Vincentchenhao 已提交
111 112 113

表示摘要算法。

S
shuyi 已提交
114 115
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

V
Vincentchenhao 已提交
116 117
| 名称                   | 值   | 说明                                     |
| ---------------------- | ---- | ---------------------------------------- |
S
shuyi 已提交
118 119 120 121 122 123 124
| HUKS_DIGEST_NONE       | 0   | 表示无摘要算法。 |
| HUKS_DIGEST_MD5        | 1    | 表示MD5摘要算法。 |
| HUKS_DIGEST_SHA1       | 10   | 表示SHA1摘要算法。 |
| HUKS_DIGEST_SHA224 | 11   | 表示SHA224摘要算法。 |
| HUKS_DIGEST_SHA256 | 12  | 表示SHA256摘要算法。 |
| HUKS_DIGEST_SHA384  | 13  | 表示SHA384摘要算法。 |
| HUKS_DIGEST_SHA512 | 14  | 表示SHA512摘要算法。 |
V
Vincentchenhao 已提交
125

Z
zengyawen 已提交
126
## HuksKeyPadding
V
Vincentchenhao 已提交
127 128 129

表示补齐算法。

S
shuyi 已提交
130 131
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

V
Vincentchenhao 已提交
132 133
| 名称                   | 值   | 说明                                     |
| ---------------------- | ---- | ---------------------------------------- |
S
shuyi 已提交
134 135 136 137 138 139
| HUKS_PADDING_NONE | 0    | 表示不使用补齐算法。 |
| HUKS_PADDING_OAEP | 1    | 表示使用OAEP补齐算法。 |
| HUKS_PADDING_PSS | 2    | 表示使用PSS补齐算法。 |
| HUKS_PADDING_PKCS1_V1_5 | 3    | 表示使用PKCS1_V1_5补齐算法。 |
| HUKS_PADDING_PKCS5 | 4   | 表示使用PKCS5补齐算法。 |
| HUKS_PADDING_PKCS7 | 5   | 表示使用PKCS7补齐算法。 |
V
Vincentchenhao 已提交
140

Z
zengyawen 已提交
141
## HuksCipherMode
V
Vincentchenhao 已提交
142 143 144

表示加密模式。

S
shuyi 已提交
145 146 147 148 149 150 151 152 153 154
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

| 名称          | 值   | 说明                  |
| ------------- | ---- | --------------------- |
| HUKS_MODE_ECB | 1    | 表示使用ECB加密模式。 |
| HUKS_MODE_CBC | 2    | 表示使用CBC加密模式。 |
| HUKS_MODE_CTR | 3    | 表示使用CTR加密模式。 |
| HUKS_MODE_OFB | 4    | 表示使用OFB加密模式。 |
| HUKS_MODE_CCM | 31   | 表示使用CCM加密模式。 |
| HUKS_MODE_GCM | 32   | 表示使用GCM加密模式。 |
V
Vincentchenhao 已提交
155

Z
zengyawen 已提交
156
## HuksKeySize
V
Vincentchenhao 已提交
157

S
shuyi 已提交
158
表示密钥长度。
V
Vincentchenhao 已提交
159

S
shuyi 已提交
160 161
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

S
shuyi 已提交
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
| 名称                         | 值   | 说明                                       |
| ---------------------------- | ---- | ------------------------------------------ |
| HUKS_RSA_KEY_SIZE_512        | 512  | 表示使用RSA算法的密钥长度为512bit。        |
| HUKS_RSA_KEY_SIZE_768        | 768  | 表示使用RSA算法的密钥长度为768bit。        |
| HUKS_RSA_KEY_SIZE_1024       | 1024 | 表示使用RSA算法的密钥长度为1024bit。       |
| HUKS_RSA_KEY_SIZE_2048       | 2048 | 表示使用RSA算法的密钥长度为2048bit。       |
| HUKS_RSA_KEY_SIZE_3072       | 3072 | 表示使用RSA算法的密钥长度为3072bit。       |
| HUKS_RSA_KEY_SIZE_4096       | 4096 | 表示使用RSA算法的密钥长度为4096bit。       |
| HUKS_ECC_KEY_SIZE_224        | 224  | 表示使用ECC算法的密钥长度为224bit。        |
| HUKS_ECC_KEY_SIZE_256        | 256  | 表示使用ECC算法的密钥长度为256bit。        |
| HUKS_ECC_KEY_SIZE_384        | 384  | 表示使用ECC算法的密钥长度为384bit。        |
| HUKS_ECC_KEY_SIZE_521        | 521  | 表示使用ECC算法的密钥长度为521bit。        |
| HUKS_AES_KEY_SIZE_128        | 128  | 表示使用AES算法的密钥长度为128bit。        |
| HUKS_AES_KEY_SIZE_192        | 196  | 表示使用AES算法的密钥长度为196bit。        |
| HUKS_AES_KEY_SIZE_256        | 256  | 表示使用AES算法的密钥长度为256bit。        |
| HUKS_AES_KEY_SIZE_512        | 512  | 表示使用AES算法的密钥长度为512bit。        |
| HUKS_CURVE25519_KEY_SIZE_256 | 256  | 表示使用CURVE25519算法的密钥长度为256bit。 |
| HUKS_DH_KEY_SIZE_2048        | 2048 | 表示使用DH算法的密钥长度为2048bit。        |
| HUKS_DH_KEY_SIZE_3072        | 3072 | 表示使用DH算法的密钥长度为3072bit。        |
| HUKS_DH_KEY_SIZE_4096        | 4096 | 表示使用DH算法的密钥长度为4096bit。        |
V
Vincentchenhao 已提交
182

Z
zengyawen 已提交
183
## HuksKeyAlg
V
Vincentchenhao 已提交
184 185 186

表示密钥使用的算法。

S
shuyi 已提交
187 188 189 190 191 192 193 194 195 196 197 198 199 200 201
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

| 名称             | 值   | 说明                  |
| ---------------- | ---- | --------------------- |
| HUKS_ALG_RSA     | 1    | 表示使用RSA算法。     |
| HUKS_ALG_ECC     | 2    | 表示使用ECC算法。     |
| HUKS_ALG_DSA     | 3    | 表示使用DSA算法。     |
| HUKS_ALG_AES     | 20   | 表示使用AES算法。     |
| HUKS_ALG_HMAC    | 50   | 表示使用HMAC算法。    |
| HUKS_ALG_HKDF    | 51   | 表示使用HKDF算法。    |
| HUKS_ALG_PBKDF2  | 52   | 表示使用PBKDF2算法。  |
| HUKS_ALG_ECDH    | 100  | 表示使用ECDH算法。    |
| HUKS_ALG_X25519  | 101  | 表示使用X25519算法。  |
| HUKS_ALG_ED25519 | 102  | 表示使用ED25519算法。 |
| HUKS_ALG_DH      | 103  | 表示使用DH算法。      |
V
Vincentchenhao 已提交
202

Z
zengyawen 已提交
203
## HuksKeyGenerateType
V
Vincentchenhao 已提交
204 205 206

表示生成密钥的类型。

S
shuyi 已提交
207 208 209 210 211 212 213
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

| 名称                           | 值   | 说明             |
| ------------------------------ | ---- | ---------------- |
| HUKS_KEY_GENERATE_TYPE_DEFAULT | 0    | 默认生成的密钥。 |
| HUKS_KEY_GENERATE_TYPE_DERIVE  | 1    | 派生生成的密钥。 |
| HUKS_KEY_GENERATE_TYPE_AGREE   | 2    | 协商生成的密钥。 |
V
Vincentchenhao 已提交
214

Z
zengyawen 已提交
215
## HuksKeyFlag
V
Vincentchenhao 已提交
216 217 218

表示密钥的产生方式。

S
shuyi 已提交
219 220 221 222 223 224 225 226
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

| 名称                       | 值   | 说明                                 |
| -------------------------- | ---- | ------------------------------------ |
| HUKS_KEY_FLAG_IMPORT_KEY   | 1    | 表示通过导入公钥接口导入的密钥。     |
| HUKS_KEY_FLAG_GENERATE_KEY | 2    | 表示通过生成密钥接口生成的密钥。     |
| HUKS_KEY_FLAG_AGREE_KEY    | 3    | 表示通过生成密钥协商接口生成的密钥。 |
| HUKS_KEY_FLAG_DERIVE_KEY   | 4    | 表示通过生成密钥派生接口生成的密钥。 |
V
Vincentchenhao 已提交
227

Z
zengyawen 已提交
228
## HuksKeyStorageType
V
Vincentchenhao 已提交
229 230 231

表示密钥存储方式。

S
shuyi 已提交
232 233 234 235 236 237
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

| 名称                    | 值   | 说明                           |
| ----------------------- | ---- | ------------------------------ |
| HUKS_STORAGE_TEMP       | 0    | 表示通过本地直接管理密钥。     |
| HUKS_STORAGE_PERSISTENT | 1    | 表示通过HUKS service管理密钥。 |
V
Vincentchenhao 已提交
238

Z
zengyawen 已提交
239
## HuksSendType
V
Vincentchenhao 已提交
240

S
shuyi 已提交
241 242 243 244 245 246 247 248
表示发送Tag的方式。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

| 名称                 | 值   | 说明              |
| -------------------- | ---- | ----------------- |
| HUKS_SEND_TYPE_ASYNC | 0    | 表示异步发送TAG。 |
| HUKS_SEND_TYPE_SYNC  | 1    | 表示同步发送TAG。 |
V
Vincentchenhao 已提交
249

Z
zengyawen 已提交
250
## HuksTagType
V
Vincentchenhao 已提交
251 252 253

表示Tag的数据类型。

S
shuyi 已提交
254 255 256
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。


S
shuyi 已提交
257 258 259 260 261 262 263 264
| 名称                  | 值      | 说明                                    |
| --------------------- | ------- | --------------------------------------- |
| HUKS_TAG_TYPE_INVALID | 0 << 28 | 表示非法的Tag类型。                     |
| HUKS_TAG_TYPE_INT     | 1 << 28 | 表示该Tag的数据类型为int类型的number。  |
| HUKS_TAG_TYPE_UINT    | 2 << 28 | 表示该Tag的数据类型为uint类型的number。 |
| HUKS_TAG_TYPE_ULONG   | 3 << 28 | 表示该Tag的数据类型为bigint。           |
| HUKS_TAG_TYPE_BOOL    | 4 << 28 | 表示该Tag的数据类型为boolean。          |
| HUKS_TAG_TYPE_BYTES   | 5 << 28 | 表示该Tag的数据类型为Uint8Array。       |
V
Vincentchenhao 已提交
265

Z
zengyawen 已提交
266
## HuksTag
V
Vincentchenhao 已提交
267 268 269

表示调用参数的Tag。

S
shuyi 已提交
270 271 272 273 274 275
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

| 名称                                   | 值                                       | 说明                                   |
| -------------------------------------- | ---------------------------------------- | -------------------------------------- |
| HUKS_TAG_INVALID                       | HuksTagType.HUKS_TAG_TYPE_INVALID \| 0   | 表示非法的Tag。                        |
| HUKS_TAG_ALGORITHM                     | HUKS_TAG_TYPE_UINT \| 1                  | 表示算法的Tag。                        |
S
shuyi 已提交
276 277
| HUKS_TAG_PURPOSE                       | HuksTagType.HUKS_TAG_TYPE_UINT \| 2      | 表示密钥用途的Tag。                    |
| HUKS_TAG_KEY_SIZE                      | HuksTagType.HUKS_TAG_TYPE_UINT \| 3      | 表示密钥长度的Tag。                    |
S
shuyi 已提交
278 279 280 281
| HUKS_TAG_DIGEST                        | HuksTagType.HUKS_TAG_TYPE_UINT \| 4      | 表示摘要算法的Tag。                    |
| HUKS_TAG_PADDING                       | HuksTagType.HUKS_TAG_TYPE_UINT \| 5      | 表示补齐算法的Tag。                    |
| HUKS_TAG_BLOCK_MODE                    | HuksTagType.HUKS_TAG_TYPE_UINT \| 6      | 表示加密模式的Tag。                    |
| HUKS_TAG_KEY_TYPE                      | HuksTagType.HUKS_TAG_TYPE_UINT \| 7      | 表示密钥类型的Tag。                    |
S
shuyi 已提交
282 283 284
| HUKS_TAG_ASSOCIATED_DATA               | HuksTagType.HUKS_TAG_TYPE_BYTES \| 8     | 表示附加身份验证数据的Tag。            |
| HUKS_TAG_NONCE                         | HuksTagType.HUKS_TAG_TYPE_BYTES \| 9     | 表示密钥加解密的字段。                 |
| HUKS_TAG_IV                            | HuksTagType.HUKS_TAG_TYPE_BYTES \| 10    | 表示密钥初始化的向量。                 |
S
shuyi 已提交
285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349
| HUKS_TAG_INFO                          | HuksTagType.HUKS_TAG_TYPE_BYTES \| 11    | 表示密钥派生时的info。                 |
| HUKS_TAG_SALT                          | HuksTagType.HUKS_TAG_TYPE_BYTES \| 12    | 表示密钥派生时的盐值。                 |
| HUKS_TAG_PWD                           | HuksTagType.HUKS_TAG_TYPE_BYTES \| 13    | 表示密钥派生时的password。             |
| HUKS_TAG_ITERATION                     | HuksTagType.HUKS_TAG_TYPE_UINT \| 14     | 表示密钥派生时的迭代次数。             |
| HUKS_TAG_KEY_GENERATE_TYPE             | HuksTagType.HUKS_TAG_TYPE_UINT \| 15     | 表示生成密钥类型的Tag。                |
| HUKS_TAG_DERIVE_MAIN_KEY               | HuksTagType.HUKS_TAG_TYPE_BYTES \| 16    | 表示密钥派生时的主密钥。               |
| HUKS_TAG_DERIVE_FACTOR                 | HuksTagType.HUKS_TAG_TYPE_BYTES \| 17    | 表示密钥派生时的派生因子。             |
| HUKS_TAG_DERIVE_ALG                    | HuksTagType.HUKS_TAG_TYPE_UINT \| 18     | 表示密钥派生时的算法类型。             |
| HUKS_TAG_AGREE_ALG                     | HuksTagType.HUKS_TAG_TYPE_UINT \| 19     | 表示密钥协商时的算法类型。             |
| HUKS_TAG_AGREE_PUBLIC_KEY_IS_KEY_ALIAS | HuksTagType.HUKS_TAG_TYPE_BOOL \| 20     | 表示密钥协商时的公钥别名。             |
| HUKS_TAG_AGREE_PRIVATE_KEY_ALIAS       | HuksTagType.HUKS_TAG_TYPE_BYTES \| 21    | 表示密钥协商时的私钥别名。             |
| HUKS_TAG_AGREE_PUBLIC_KEY              | HuksTagType.HUKS_TAG_TYPE_BYTES \| 22    | 表示密钥协商时的公钥。                 |
| HUKS_TAG_KEY_ALIAS                     | HuksTagType.HUKS_TAG_TYPE_BYTES \| 23    | 表示密钥别名。                         |
| HUKS_TAG_DERIVE_KEY_SIZE               | HuksTagType.HUKS_TAG_TYPE_UINT \| 24     | 表示派生密钥的大小。                   |
| HUKS_TAG_ACTIVE_DATETIME               | HuksTagType.HUKS_TAG_TYPE_ULONG \| 201   | 预留。                                 |
| HUKS_TAG_ORIGINATION_EXPIRE_DATETIME   | HuksTagType.HUKS_TAG_TYPE_ULONG \| 202   | 预留。                                 |
| HUKS_TAG_USAGE_EXPIRE_DATETIME         | HuksTagType.HUKS_TAG_TYPE_ULONG \| 203   | 预留。                                 |
| HUKS_TAG_CREATION_DATETIME             | HuksTagType.HUKS_TAG_TYPE_ULONG \| 204   | 预留。                                 |
| HUKS_TAG_ALL_USERS                     | ksTagType.HUKS_TAG_TYPE_BOOL \| 301      | 预留。                                 |
| HUKS_TAG_USER_ID                       | HuksTagType.HUKS_TAG_TYPE_UINT \| 302    | 预留。                                 |
| HUKS_TAG_NO_AUTH_REQUIRED              | HuksTagType.HUKS_TAG_TYPE_BOOL \| 303    | 预留。                                 |
| HUKS_TAG_USER_AUTH_TYPE                | HuksTagType.HUKS_TAG_TYPE_UINT \| 304    | 预留。                                 |
| HUKS_TAG_AUTH_TIMEOUT                  | HuksTagType.HUKS_TAG_TYPE_UINT \| 305    | 预留。                                 |
| HUKS_TAG_AUTH_TOKEN                    | HuksTagType.HUKS_TAG_TYPE_BYTES \| 306   | 预留。                                 |
| HUKS_TAG_ATTESTATION_CHALLENGE         | HuksTagType.HUKS_TAG_TYPE_BYTES \| 501   | 表示attestation时的挑战值。            |
| HUKS_TAG_ATTESTATION_APPLICATION_ID    | HuksTagType.HUKS_TAG_TYPE_BYTES \| 502   | 表示attestation时的application Id。    |
| HUKS_TAG_ATTESTATION_ID_BRAND          | HuksTagType.HUKS_TAG_TYPE_BYTES \| 503   | 表示设备的brand。                      |
| HUKS_TAG_ATTESTATION_ID_DEVICE         | HuksTagType.HUKS_TAG_TYPE_BYTES \| 504   | 表示设备的device。                     |
| HUKS_TAG_ATTESTATION_ID_PRODUCT        | HuksTagType.HUKS_TAG_TYPE_BYTES \| 505   | 表示设备的product。                    |
| HUKS_TAG_ATTESTATION_ID_SERIAL         | HuksTagType.HUKS_TAG_TYPE_BYTES \| 506   | 表示设备的SN号。                       |
| HUKS_TAG_ATTESTATION_ID_IMEI           | HuksTagType.HUKS_TAG_TYPE_BYTES \| 507   | 表示设备的IMEI号。                     |
| HUKS_TAG_ATTESTATION_ID_MEID           | HuksTagType.HUKS_TAG_TYPE_BYTES \| 508   | 表示设备的MEID号。                     |
| HUKS_TAG_ATTESTATION_ID_MANUFACTURER   | HuksTagType.HUKS_TAG_TYPE_BYTES \| 509   | 表示设备的制造商。                     |
| HUKS_TAG_ATTESTATION_ID_MODEL          | HuksTagType.HUKS_TAG_TYPE_BYTES \| 510   | 表示设备的型号。                       |
| HUKS_TAG_ATTESTATION_ID_ALIAS          | HuksTagType.HUKS_TAG_TYPE_BYTES \| 511   | 表示attestation时的密钥别名。          |
| HUKS_TAG_ATTESTATION_ID_SOCID          | HuksTagType.HUKS_TAG_TYPE_BYTES \| 512   | 表示设备的SOCID。                      |
| HUKS_TAG_ATTESTATION_ID_UDID           | HuksTagType.HUKS_TAG_TYPE_BYTES \| 513   | 表示设备的UDID。                       |
| HUKS_TAG_ATTESTATION_ID_SEC_LEVEL_INFO | HuksTagType.HUKS_TAG_TYPE_BYTES \| 514   | 表示attestation时的安全凭据。          |
| HUKS_TAG_ATTESTATION_ID_VERSION_INFO   | HuksTagType.HUKS_TAG_TYPE_BYTES \| 515   | 表示attestation时的版本号。            |
| HUKS_TAG_IS_KEY_ALIAS                  | HuksTagType.HUKS_TAG_TYPE_BOOL \| 1001   | 表示是否使用生成key时传入的别名的Tag。 |
| HUKS_TAG_KEY_STORAGE_FLAG              | HuksTagType.HUKS_TAG_TYPE_UINT \| 1002   | 表示密钥存储方式的Tag。                |
| HUKS_TAG_IS_ALLOWED_WRAP               | HuksTagType.HUKS_TAG_TYPE_BOOL \| 1003   | 预留。                                 |
| HUKS_TAG_KEY_WRAP_TYPE                 | HuksTagType.HUKS_TAG_TYPE_UINT \| 1004   | 预留。                                 |
| HUKS_TAG_KEY_AUTH_ID                   | HuksTagType.HUKS_TAG_TYPE_BYTES \| 1005  | 预留。                                 |
| HUKS_TAG_KEY_ROLE                      | HuksTagType.HUKS_TAG_TYPE_UINT \| 1006   | 预留。                                 |
| HUKS_TAG_KEY_FLAG                      | HuksTagType.HUKS_TAG_TYPE_UINT \| 1007   | 表示密钥标志的Tag。                    |
| HUKS_TAG_IS_ASYNCHRONIZED              | HuksTagType.HUKS_TAG_TYPE_UINT \| 1008   | 预留。                                 |
| HUKS_TAG_SECURE_KEY_ALIAS              | HuksTagType.HUKS_TAG_TYPE_BOOL \| 1009   | 预留。                                 |
| HUKS_TAG_SECURE_KEY_UUID               | HuksTagType.HUKS_TAG_TYPE_BYTES \| 1010  | 预留。                                 |
| HUKS_TAG_KEY_DOMAIN                    | HuksTagType.HUKS_TAG_TYPE_UINT \| 1011   | 预留。                                 |
| HUKS_TAG_PROCESS_NAME                  | HuksTagType.HUKS_TAG_TYPE_BYTES \| 10001 | 表示进程名称的Tag。                    |
| HUKS_TAG_PACKAGE_NAME                  | HuksTagType.HUKS_TAG_TYPE_BYTES \| 10002 | 预留。                                 |
| HUKS_TAG_ACCESS_TIME                   | HuksTagType.HUKS_TAG_TYPE_UINT \| 10003  | 预留。                                 |
| HUKS_TAG_USES_TIME                     | HuksTagType.HUKS_TAG_TYPE_UINT \| 10004  | 预留。                                 |
| HUKS_TAG_CRYPTO_CTX                    | HuksTagType.HUKS_TAG_TYPE_ULONG \| 10005 | 预留。                                 |
| HUKS_TAG_KEY                           | HuksTagType.HUKS_TAG_TYPE_BYTES \| 10006 | 预留。                                 |
| HUKS_TAG_KEY_VERSION                   | HuksTagType.HUKS_TAG_TYPE_UINT \| 10007  | 表示密钥版本的Tag。                    |
| HUKS_TAG_PAYLOAD_LEN                   | HuksTagType.HUKS_TAG_TYPE_UINT \| 10008  | 预留。                                 |
| HUKS_TAG_AE_TAG                        | HuksTagType.HUKS_TAG_TYPE_BYTES \| 10009 | 预留。                                 |
| HUKS_TAG_IS_KEY_HANDLE                 | HuksTagType.HUKS_TAG_TYPE_ULONG \| 10010 | 预留。                                 |
| HUKS_TAG_OS_VERSION                    | HuksTagType.HUKS_TAG_TYPE_UINT \| 10101  | 表示操作系统版本的Tag。                |
| HUKS_TAG_OS_PATCHLEVEL                 | HuksTagType.HUKS_TAG_TYPE_UINT \| 10102  | 表示操作系统补丁级别的Tag。            |
| HUKS_TAG_SYMMETRIC_KEY_DATA            | HuksTagType.HUKS_TAG_TYPE_BYTES \| 20001 | 预留。                                 |
| HUKS_TAG_ASYMMETRIC_PUBLIC_KEY_DATA    | HuksTagType.HUKS_TAG_TYPE_BYTES \| 20002 | 预留。                                 |
| HUKS_TAG_ASYMMETRIC_PRIVATE_KEY_DATA   | HuksTagType.HUKS_TAG_TYPE_BYTES \| 20003 | 预留。                                 |
V
Vincentchenhao 已提交
350 351 352

## huks.generateKey

Z
zengyawen 已提交
353
generateKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback\<HuksResult>) : void
V
Vincentchenhao 已提交
354

S
shuyi 已提交
355
生成密钥,使用Callback回调异步返回结果。
S
shuyi 已提交
356 357

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
358 359 360 361 362

**参数:** 

| 参数名   | 类型                                      | 必填 | 说明                                                         |
| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
S
shuyi 已提交
363 364 365
| keyAlias | string                                    | 是   | 别名。                                                       |
| options  | [HuksOptions](#huksoptions)               | 是   | 用于存放生成key所需TAG。                                     |
| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是   | 返回HUKS_SUCCESS时表示接口使用成功,其余结果请参考HuksResult进行错误码查询。 |
V
Vincentchenhao 已提交
366 367 368 369

**示例:**

```js
S
shuyi 已提交
370
var alias = 'alias';
V
Vincentchenhao 已提交
371 372 373
var properties = new Array();
properties[0] = {
  tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
S
shuyi 已提交
374
  value: huksHuksKeyAlg.HUKS_ALG_RSA
V
Vincentchenhao 已提交
375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401
};
properties[1] = {
  tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,
  value: huks.HuksKeySize.HUKS_RSA_KEY_SIZE_512
};
properties[2] = {
  tag: huks.HuksTag.HUKS_TAG_PURPOSE,
  value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_ENCRYPT | huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_DECRYPT
};
properties[3] = {
  tag: huks.HuksTag.HUKS_TAG_PADDING,
  value: huks.HuksKeyPadding.HUKS_PADDING_NONE
};
properties[4] = {
  tag: huks.HuksTag.HUKS_TAG_BLOCK_MODE,
  value: huks.HuksCipherMode.HUKS_MODE_ECB
};
properties[5] = {
  tag: huks.HuksTag.HUKS_TAG_DIGEST,
  value: huks.HuksKeyDigest.HUKS_DIGEST_NONE
};
var options = {
  properties: properties
};
huks.generateKey(alias, options, function (err, data){}); 
```

Z
zengyawen 已提交
402
## huks.generateKey
V
Vincentchenhao 已提交
403

Z
zengyawen 已提交
404
generateKey(keyAlias: string, options: HuksOptions) : Promise\<HuksResult>
V
Vincentchenhao 已提交
405

S
shuyi 已提交
406
生成密钥,使用Promise方式异步返回结果。
S
shuyi 已提交
407 408

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
409 410 411

**参数:** 

S
shuyi 已提交
412 413 414 415
| 参数名   | 类型                        | 必填 | 说明                     |
| -------- | --------------------------- | ---- | ------------------------ |
| keyAlias | string                      | 是   | 密钥别名。               |
| options  | [HuksOptions](#huksoptions) | 是   | 用于存放生成key所需TAG。 |
V
Vincentchenhao 已提交
416 417 418

**返回值**:(可选,如不涉及可删除)

S
shuyi 已提交
419 420 421
| 类型                                | 说明                                               |
| ----------------------------------- | -------------------------------------------------- |
| Promise\<[HuksResult](#huksresult)> | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。 |
V
Vincentchenhao 已提交
422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454

**示例:**

```js
var alias = 'alias';
var properties = new Array();
properties[0] = {
  tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
  value: huksHuksKeyAlg.HUKS_ALG_RSA
};
properties[1] = {
  tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,
  value: huks.HuksKeySize.HUKS_RSA_KEY_SIZE_512
};
properties[2] = {
  tag: huks.HuksTag.HUKS_TAG_PURPOSE,
  value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_ENCRYPT | huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_DECRYPT
};
properties[3] = {
  tag: huks.HuksTag.HUKS_TAG_PADDING,
  value: huks.HuksKeyPadding.HUKS_PADDING_NONE
};
properties[4] = {
  tag: huks.HuksTag.HUKS_TAG_BLOCK_MODE,
  value: huks.HuksCipherMode.HUKS_MODE_ECB
};
properties[5] = {
  tag: huks.HuksTag.HUKS_TAG_DIGEST,
  value: huks.HuksKeyDigest.HUKS_DIGEST_NONE
};
var options = {
  properties: properties
};
S
shuyi 已提交
455
var result = huks.generateKey(alias, options);
V
Vincentchenhao 已提交
456 457 458 459
```

## huks.deleteKey

Z
zengyawen 已提交
460
deleteKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback\<HuksResult>) : void
V
Vincentchenhao 已提交
461

S
shuyi 已提交
462 463 464
删除密钥,使用Callback回调异步返回结果。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
465 466 467

**参数:**

S
shuyi 已提交
468 469 470 471 472
| 参数名   | 类型                                      | 必填 | 说明                                               |
| -------- | ----------------------------------------- | ---- | -------------------------------------------------- |
| keyAlias | string                                    | 是   | 密钥别名,应为生成key时传入的别名。                |
| options  | [HuksOptions](#huksoptions)               | 是   | 空对象(此处传空即可)。                           |
| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是   | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。 |
V
Vincentchenhao 已提交
473 474 475 476 477 478 479 480 481 482 483

**示例:**

```js
var alias = 'alias';
var emptyOptions = {
  properties: []
};
huks.deleteKey(alias, emptyOptions, function (err, data) {});
```

Z
zengyawen 已提交
484
## huks.deleteKey
V
Vincentchenhao 已提交
485

Z
zengyawen 已提交
486
deleteKey(keyAlias: string, options: HuksOptions) : Promise\<HuksResult>
V
Vincentchenhao 已提交
487

S
shuyi 已提交
488 489 490
删除密钥,使用Promise方式异步返回结果。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
491 492 493 494 495

**参数:**

| 参数名   | 类型        | 必填 | 说明                                                  |
| -------- | ----------- | ---- | ----------------------------------------------------- |
S
shuyi 已提交
496 497
| keyAlias | string      | 是   | 密钥别名,应为生成key时传入的别名。 |
| options  | [HuksOptions](#huksoptions) | 是   | 空对象(此处传空即可)。 |
V
Vincentchenhao 已提交
498 499 500

**返回值:**

S
shuyi 已提交
501 502 503
| 类型                                | 说明                                               |
| ----------------------------------- | -------------------------------------------------- |
| Promise\<[HuksResult](#huksresult)> | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。 |
V
Vincentchenhao 已提交
504 505 506 507 508 509 510 511

**示例:**

```js
var alias = 'alias';
var emptyOptions = {
  properties: []
};
S
shuyi 已提交
512
var result = huks.deleteKey(alias, emptyOptions);
V
Vincentchenhao 已提交
513 514 515 516 517 518 519 520
```

## huks.getSdkVersion

getSdkVersion(options: HuksOptions) : string

获取当前系统sdk版本。

S
shuyi 已提交
521 522
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

V
Vincentchenhao 已提交
523 524 525 526
**参数:**

| 参数名  | 类型       | 必填 | 说明                      |
| ------- | ---------- | ---- | ------------------------- |
S
shuyi 已提交
527
| options | [HuksOptions](#huksoptions) | 是   | 空对象,用于存放sdk版本。 |
V
Vincentchenhao 已提交
528 529 530

**返回值:**

S
shuyi 已提交
531 532 533
| 类型   | 说明          |
| ------ | ------------- |
| string | 返回sdk版本。 |
V
Vincentchenhao 已提交
534 535 536 537 538 539 540

**示例:**

```js
var emptyOptions = {
  properties: []
};
S
shuyi 已提交
541
var result = huks.getSdkVersion(emptyOptions);
V
Vincentchenhao 已提交
542 543 544 545
```

## huks.importKey

Z
zengyawen 已提交
546
importKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback\<HuksResult>) : void
V
Vincentchenhao 已提交
547

S
shuyi 已提交
548
导入密钥,使用Callback方式回调异步返回结果 。
S
shuyi 已提交
549 550

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
551 552 553 554 555

**参数:**

| 参数名   | 类型                     | 必填 | 说明                                              |
| -------- | ------------------------ | ---- | ------------------------------------------------- |
S
shuyi 已提交
556 557 558
| keyAlias | string                   | 是   | 密钥别名,用于存放所需密钥。 |
| options  | [HuksOptions](#huksoptions) | 是   | 用于导入时所需TAG和需要导入的密钥。 |
| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是   | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。 |
V
Vincentchenhao 已提交
559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591

**示例:**

```js
var keyAlias = 'keyAlias';
var properties = new Array();
properties[0] = {
  tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
  value: huks.HuksKeyAlg.HUKS_ALG_DSA
};
properties[1] = {
  tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,
  value: 1024
};
properties[2] = {
  tag: huks.HuksTag.HUKS_TAG_PURPOSE,
  value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_VERIFY
};
properties[3] = {
  tag: huks.HuksTag.HUKS_TAG_PADDING,
  value: huks.HuksKeyPadding.HUKS_PADDING_NONE
};
properties[4] = {
  tag: huks.HuksTag.HUKS_TAG_DIGEST,
  value: HUKS_DIGEST_SHA1
};
var options = {
  properties: properties,
  inData: importText
};
huks.importKey(keyAlias, options, function (err, data){});
```

Z
zengyawen 已提交
592
## huks.importKey
V
Vincentchenhao 已提交
593

Z
zengyawen 已提交
594
importKey(keyAlias: string, options: HuksOptions) : Promise\<HuksResult>
V
Vincentchenhao 已提交
595

S
shuyi 已提交
596
导入密钥,使用Promise方式异步返回结果。
S
shuyi 已提交
597 598

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
599 600 601 602 603

**参数:**

| 参数名   | 类型        | 必填 | 说明                                 |
| -------- | ----------- | ---- | ------------------------------------ |
S
shuyi 已提交
604 605
| keyAlias | string      | 是   | 密钥别名,用于存放所需密钥。 |
| options  | [HuksOptions](#huksoptions) | 是   | 用于导入时所需TAG和需要导入的密钥。 |
V
Vincentchenhao 已提交
606 607 608

**返回值:**

S
shuyi 已提交
609 610 611
| 类型                                | 说明                                               |
| ----------------------------------- | -------------------------------------------------- |
| Promise\<[HuksResult](#huksresult)> | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。 |
V
Vincentchenhao 已提交
612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641

**示例:**

```js
var keyAlias = 'keyAlias';
var properties = new Array();
properties[0] = {
  tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
  value: huks.HuksKeyAlg.HUKS_ALG_DSA
};
properties[1] = {
  tag: huks.HuksTag.HUKS_TAG_KEY_SIZE,
  value: 1024
};
properties[2] = {
  tag: huks.HuksTag.HUKS_TAG_PURPOSE,
  value: huks.HuksKeyPurpose.HUKS_KEY_PURPOSE_VERIFY
};
properties[3] = {
  tag: huks.HuksTag.HUKS_TAG_PADDING,
  value: huks.HuksKeyPadding.HUKS_PADDING_NONE
};
properties[4] = {
  tag: huks.HuksTag.HUKS_TAG_DIGEST,
  value: HUKS_DIGEST_SHA1
};
var options = {
  properties: properties,
  inData: importText
};
S
shuyi 已提交
642
var result = huks.importKey(keyAlias, options);
V
Vincentchenhao 已提交
643 644 645 646
```

## huks.exportKey

Z
zengyawen 已提交
647
exportKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback\<HuksResult>) : void
V
Vincentchenhao 已提交
648

S
shuyi 已提交
649
导出密钥,使用Callback方式回调异步返回的结果。
S
shuyi 已提交
650 651

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
652 653 654

**参数:**

Z
zengyawen 已提交
655 656
| 参数名   | 类型                                      | 必填 | 说明                                                         |
| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
S
shuyi 已提交
657 658 659
| keyAlias | string                                    | 是   | 密钥别名,应与所用密钥生成时使用的别名相同。                 |
| options  | [HuksOptions](#huksoptions)               | 是   | 空对象(此处传空即可)。                                     |
| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是   | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。outData:返回从密钥中导出的公钥。 |
V
Vincentchenhao 已提交
660 661 662 663 664 665 666 667 668 669 670

**示例:**

```js
var keyAlias = 'keyAlias';
var emptyOptions = {
  properties: []
};
huks.exportKey(keyAlias, emptyOptions, function (err, data){});
```

Z
zengyawen 已提交
671
## huks.exportKey
V
Vincentchenhao 已提交
672

Z
zengyawen 已提交
673
exportKey(keyAlias: string, options: HuksOptions) : Promise\<HuksResult>
V
Vincentchenhao 已提交
674

S
shuyi 已提交
675
导出密钥,使用Promise方式回调异步返回的结果。
S
shuyi 已提交
676 677

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
678 679 680 681 682

**参数:**

| 参数名   | 类型        | 必填 | 说明                                                         |
| -------- | ----------- | ---- | ------------------------------------------------------------ |
S
shuyi 已提交
683 684
| keyAlias | string      | 是   | 密钥别名,应与所用密钥生成时使用的别名相同。 |
| options  | [HuksOptions](#huksoptions) | 是   | 空对象(此处传空即可)。 |
V
Vincentchenhao 已提交
685 686 687 688 689

**返回值:**

| 类型                                | 说明                                                         |
| ----------------------------------- | ------------------------------------------------------------ |
S
shuyi 已提交
690
| Promise\<[HuksResult](#huksresult)> | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。outData:返回从密钥中导出的公钥。 |
V
Vincentchenhao 已提交
691 692 693 694 695 696 697 698

**示例:**

```js
var keyAlias = 'keyAlias';
var emptyOptions = {
  properties: []
};
S
shuyi 已提交
699
var result = huks.exportKey(keyAlias, emptyOptions);
V
Vincentchenhao 已提交
700 701 702 703
```

## huks.getKeyProperties

Z
zengyawen 已提交
704
getKeyProperties(keyAlias: string, options: HuksOptions, callback: AsyncCallback\<HuksResult>) : void
V
Vincentchenhao 已提交
705

S
shuyi 已提交
706 707 708
获取密钥属性,使用Callback回调异步返回结果。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
709 710 711 712 713

**参数:**

| 参数名   | 类型                                      | 必填 | 说明                                                         |
| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
S
shuyi 已提交
714 715
| keyAlias | string                                    | 是   | 密钥别名,应与所用密钥生成时使用的别名相同。                 |
| options  | [HuksOptions](#huksoptions)               | 是   | 空对象(此处传空即可)。                                     |
S
shuyi 已提交
716
| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是   | errorCode:返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。 |
V
Vincentchenhao 已提交
717 718 719 720 721 722 723 724 725 726 727

**示例:**

```js
var keyAlias = 'keyAlias';
var emptyOptions = {
  properties: []
};
huks.getKeyProperties(keyAlias, emptyOptions, function (err, data){});
```

Z
zengyawen 已提交
728
## huks.getKeyProperties
V
Vincentchenhao 已提交
729

Z
zengyawen 已提交
730
getKeyProperties(keyAlias: string, options: HuksOptions) : Promise\<HuksResult>
V
Vincentchenhao 已提交
731

S
shuyi 已提交
732 733 734
获取密钥属性,使用Promise回调异步返回结果。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
735 736 737 738 739

**参数:**

| 参数名   | 类型        | 必填 | 说明                                                         |
| -------- | ----------- | ---- | ------------------------------------------------------------ |
S
shuyi 已提交
740 741
| keyAlias | string      | 是   | 密钥别名,应与所用密钥生成时使用的别名相同。 |
| options  | [HuksOptions](#huksoptions) | 是   | 空对象(此处传空即可)。 |
V
Vincentchenhao 已提交
742 743 744 745 746

**返回值:**

| 类型               | 说明                                                         |
| ------------------ | ------------------------------------------------------------ |
S
shuyi 已提交
747
| Promise\<[HuksResult](#huksoptions)> | errorCode:返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。properties:返回值为从生成key时传入的别名。中导出的生成密钥时所需参数。 |
V
Vincentchenhao 已提交
748 749 750 751 752 753 754 755

**示例:**

```js
var keyAlias = 'keyAlias';
var emptyOptions = {
  properties: []
};
S
shuyi 已提交
756
var result = huks.getKeyProperties(keyAlias, emptyOptions);
V
Vincentchenhao 已提交
757 758 759 760
```

## huks.isKeyExist

Z
zengyawen 已提交
761
isKeyExist(keyAlias: string, options: HuksOptions, callback: AsyncCallback\<boolean>) : void
V
Vincentchenhao 已提交
762

S
shuyi 已提交
763 764 765
判断密钥是否存在,使用Callback回调异步返回结果 。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
766 767 768 769 770

**参数:**

| 参数名   | 类型                   | 必填 | 说明                                  |
| -------- | ---------------------- | ---- | ------------------------------------- |
S
shuyi 已提交
771 772 773
| keyAlias | string                 | 是   | 所需查找的密钥的别名。 |
| options  | [HuksOptions](#huksoptions) | 是   | 空对象(此处传空即可)。 |
| callback | AsyncCallback\<boolean> | 是   | FALSE代表密钥不存在,TRUE代表密钥存在。 |
V
Vincentchenhao 已提交
774 775 776 777 778 779 780 781 782 783 784

**示例:**

```js
var keyAlias = 'keyAlias';
var emptyOptions = {
  properties: []
};
huks.isKeyExist(keyAlias, emptyOptions, function (err, data){});
```

Z
zengyawen 已提交
785
## huks.isKeyExist
V
Vincentchenhao 已提交
786

Z
zengyawen 已提交
787
isKeyExist(keyAlias: string, options: HuksOptions) : Promise\<boolean>
V
Vincentchenhao 已提交
788

S
shuyi 已提交
789 790 791
判断密钥是否存在,使用Promise回调异步返回结果 。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
792 793 794 795 796

**参数:**

| 参数名   | 类型        | 必填 | 说明                             |
| -------- | ----------- | ---- | -------------------------------- |
S
shuyi 已提交
797 798
| keyAlias | string      | 是   | 所需查找的密钥的别名。 |
| options  | [HuksOptions](#huksoptions) | 是   | 空对象(此处传空即可)。 |
V
Vincentchenhao 已提交
799 800 801

**返回值:**

S
shuyi 已提交
802 803 804
| 类型              | 说明                                    |
| ----------------- | --------------------------------------- |
| Promise\<boolean> | FALSE代表密钥不存在,TRUE代表密钥存在。 |
V
Vincentchenhao 已提交
805 806 807 808 809 810 811 812

**示例:**

```js
var keyAlias = 'keyAlias';
var emptyOptions = {
  properties: []
};
S
shuyi 已提交
813
var result = huks.isKeyExist(keyAlias, emptyOptions);
V
Vincentchenhao 已提交
814 815 816 817 818
```


## huks.init

Z
zengyawen 已提交
819
init(keyAlias: string, options: HuksOptions, callback: AsyncCallback\<HuksHandle>) : void
V
Vincentchenhao 已提交
820

S
shuyi 已提交
821
init操作密钥接口,使用Callback回调异步返回结果 。
S
shuyi 已提交
822 823

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
824 825 826 827 828

**参数:**

| 参数名   | 类型                   | 必填 | 说明                                  |
| -------- | ---------------------- | ---- | ------------------------------------- |
S
shuyi 已提交
829 830 831
| keyAlias | string                 | 是   | Init操作密钥的别名。 |
| options  | [HuksOptions](#huksoptions) | 是   | Init操作的参数集合。 |
| callback | AsyncCallback\<[HuksHandle](#hukshandle)> | 是   | 将Init操作操作返回的handle添加到密钥管理系统的回调。 |
V
Vincentchenhao 已提交
832 833 834 835 836 837 838 839 840 841 842 843 844 845 846

**示例:**

```js
var alias = 'test001'
var properties = new Array();
properties[0] = {
  tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
  value: huks.HksKeyAlg.HKS_ALG_DH
};
properties[1] = {
  tag: huks.HksTag.HKS_TAG_PURPOSE,
  value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
};
properties[2] = {
S
shuyi 已提交
847
  tag: huks.HksTag.HKS_TAG_KEY_SIZE,
V
Vincentchenhao 已提交
848 849 850 851 852 853 854 855 856 857 858 859 860 861
  value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
};
var options = {
  properties: properties
};
huks.init(alias, options, function(err, data) {
    if (err.code !== 0) {
        console.log("test init err information: " + JSON.stringify(err));
    } else {
        console.log(`test init data: ${JSON.stringify(data)}`);
    }
})
```

Z
zengyawen 已提交
862 863 864
## huks.init

init(keyAlias: string, options: HuksOptions) : Promise\<HuksHandle>
V
Vincentchenhao 已提交
865

S
shuyi 已提交
866
init操作密钥接口,使用Promise方式异步返回结果。
V
Vincentchenhao 已提交
867

S
shuyi 已提交
868 869
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

V
Vincentchenhao 已提交
870 871 872 873
**参数:**

| 参数名   | 类型                   | 必填 | 说明                                  |
| -------- | ---------------------- | ---- | ------------------------------------- |
S
shuyi 已提交
874 875 876
| keyAlias | string                 | 是   | Init操作密钥的别名。 |
| options  | [HuksOptions](#huksoptions) | 是   | Init参数集合。 |
| promise | Promise\<[HuksHandle](#hukshandle)> | 是   | 将Init操作返回的handle添加到密钥管理系统的回调。 |
V
Vincentchenhao 已提交
877 878 879 880 881 882 883 884 885 886 887 888 889 890 891

**示例:**

```js
var alias = 'test001'
var properties = new Array();
properties[0] = {
  tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
  value: huks.HksKeyAlg.HKS_ALG_DH
};
properties[1] = {
  tag: huks.HksTag.HKS_TAG_PURPOSE,
  value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
};
properties[2] = {
S
shuyi 已提交
892
  tag: huks.HksTag.HKS_TAG_KEY_SIZE,
V
Vincentchenhao 已提交
893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913
  value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
};
var options = {
  properties: properties
};
huks.init(alias, options).then((data) => {
    console.log(`test init data: ${JSON.stringify(data)}`);
    handle1 = data.handle1;
    handle2 = data.handle2;
    handle = {
        "handle1": handle1,
        "handle2": handle2
    };
}).catch((err) => {
    console.log("test init err information: " + JSON.stringify(err))
}) 
```


## huks.update

Z
zengyawen 已提交
914
update(handle: number, token?: Uint8Array, options: HuksOptions, callback: AsyncCallback\<HuksResult>) : void
V
Vincentchenhao 已提交
915

S
shuyi 已提交
916
update操作密钥接口,使用Callback回调异步返回结果 。
S
shuyi 已提交
917 918

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
919 920 921 922 923

**参数:**

| 参数名   | 类型                   | 必填 | 说明                                  |
| -------- | ---------------------- | ---- | ------------------------------------- |
S
shuyi 已提交
924 925 926 927
| handle | number           | 是   | Update操作的handle。 |
| token | Uint8Array | 否 | Update操作的token。 |
| options  | [HuksOptions](#huksoptions) | 是   | Update的参数集合。 |
| callback | AsyncCallback\<[HksResult](#hksresult)> | 是 | 将Update操作的结果添加到密钥管理系统的回调。 |
V
Vincentchenhao 已提交
928 929 930 931 932 933 934 935 936 937 938 939 940 941

**示例:**

```js
var properties = new Array();
properties[0] = {
  tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
  value: huks.HksKeyAlg.HKS_ALG_DH
};
properties[1] = {
  tag: huks.HksTag.HKS_TAG_PURPOSE,
  value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
};
properties[2] = {
S
shuyi 已提交
942
  tag: huks.HksTag.HKS_TAG_KEY_SIZE,
V
Vincentchenhao 已提交
943 944 945 946 947 948 949 950
  value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
};
var options = {
  properties: properties
};
huks.update(handle, options, function (err, data){}); 
```

Z
zengyawen 已提交
951 952
## huks.update

Z
zengyawen 已提交
953
update(handle: number, token?: Uint8Array, options: HuksOptions) : Promise\<HuksResult>
V
Vincentchenhao 已提交
954

S
shuyi 已提交
955
update操作密钥接口,使用Promise方式异步返回结果。
V
Vincentchenhao 已提交
956

S
shuyi 已提交
957 958
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

V
Vincentchenhao 已提交
959 960 961 962
**参数:**

| 参数名   | 类型                   | 必填 | 说明                                  |
| -------- | ---------------------- | ---- | ------------------------------------- |
S
shuyi 已提交
963 964 965 966
| handle | number           | 是   | Update操作的handle。 |
| token | Uint8Array | 否 | Update操作的token。 |
| options  | [HuksOptions](#huksoptions) | 是   | Update操作的参数集合。 |
| promise | Promise\<[HuksResult](#huksresult)> | 是 | 将Update操作的结果添加到密钥管理系统的回调。 |
V
Vincentchenhao 已提交
967 968 969 970 971 972 973 974 975 976 977 978 979 980

**示例:**

```js
var properties = new Array();
properties[0] = {
  tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
  value: huks.HksKeyAlg.HKS_ALG_DH
};
properties[1] = {
  tag: huks.HksTag.HKS_TAG_PURPOSE,
  value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
};
properties[2] = {
S
shuyi 已提交
981
  tag: huks.HksTag.HKS_TAG_KEY_SIZE,
V
Vincentchenhao 已提交
982 983 984 985 986 987 988 989 990 991
  value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
};
var options = {
  properties: properties
};
var result = huks.update(handle, options)
```

## huks.finish

Z
zengyawen 已提交
992
finish(handle: number, options: HuksOptions, callback: AsyncCallback\<HuksResult>) : void
V
Vincentchenhao 已提交
993

S
shuyi 已提交
994
finish操作密钥接口,使用Callback回调异步返回结果 。
S
shuyi 已提交
995 996

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
997 998 999 1000 1001

**参数:**

| 参数名   | 类型                   | 必填 | 说明                                  |
| -------- | ---------------------- | ---- | ------------------------------------- |
S
shuyi 已提交
1002 1003
| handle | number           | 是   | Finish操作的handle。 |
| options  | [HuksOptions](#huksoptions) | 是   | Finish的参数集合。 |
Z
zengyawen 已提交
1004
| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是 | 将Finish操作的结果添加到密钥管理系统的回调。 |
V
Vincentchenhao 已提交
1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018

**示例:**

```js
var properties = new Array();
properties[0] = {
  tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
  value: huks.HksKeyAlg.HKS_ALG_DH
};
properties[1] = {
  tag: huks.HksTag.HKS_TAG_PURPOSE,
  value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
};
properties[2] = {
S
shuyi 已提交
1019
  tag: huks.HksTag.HKS_TAG_KEY_SIZE,
V
Vincentchenhao 已提交
1020 1021 1022 1023 1024 1025 1026 1027
  value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
};
var options = {
  properties: properties
};
huks.finish(handle, options, function (err, data){}); 
```

Z
zengyawen 已提交
1028 1029 1030
## huks.finish

finish(handle: number, options: HuksOptions) : Promise\<HuksResult>
V
Vincentchenhao 已提交
1031

S
shuyi 已提交
1032
finish操作密钥接口,使用Promise方式异步返回结果。
V
Vincentchenhao 已提交
1033

S
shuyi 已提交
1034 1035
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

V
Vincentchenhao 已提交
1036 1037 1038 1039
**参数:**

| 参数名   | 类型                   | 必填 | 说明                                  |
| -------- | ---------------------- | ---- | ------------------------------------- |
S
shuyi 已提交
1040 1041 1042
| handle | number           | 是   | Finish操作的handle。 |
| options  | [HuksOptions](#huksoptions) | 是   | Finish操作的参数集合。 |
| promise | Promise\<[HuksResult](#HuksResult)> | 是 | promise实例,用于获取异步返回结果。 |
V
Vincentchenhao 已提交
1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056

**示例:**

```js
var properties = new Array();
properties[0] = {
  tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
  value: huks.HksKeyAlg.HKS_ALG_DH
};
properties[1] = {
  tag: huks.HksTag.HKS_TAG_PURPOSE,
  value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
};
properties[2] = {
S
shuyi 已提交
1057
  tag: huks.HksTag.HKS_TAG_KEY_SIZE,
V
Vincentchenhao 已提交
1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068
  value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
};
var options = {
  properties: properties
};
var result = huks.finish(handle, options)
```


## huks.abort

Z
zengyawen 已提交
1069
abort(handle: number, options: HuksOptions, callback: AsyncCallback\<HuksResult>) : void
V
Vincentchenhao 已提交
1070

S
shuyi 已提交
1071
abort操作密钥接口,使用Callback回调异步返回结果 。
S
shuyi 已提交
1072 1073

**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。
V
Vincentchenhao 已提交
1074 1075 1076 1077 1078

**参数:**

| 参数名   | 类型                   | 必填 | 说明                                  |
| -------- | ---------------------- | ---- | ------------------------------------- |
S
shuyi 已提交
1079 1080
| handle | number           | 是   | Abort操作的handle。 |
| options  | [HuksOptions](#huksoptions) | 是   | Abort操作的参数集合。 |
Z
zengyawen 已提交
1081
| callback | AsyncCallback\<[HuksResult](#huksresult)> | 是 | 将Abort操作的结果添加到密钥管理系统的回调。 |
V
Vincentchenhao 已提交
1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095

**示例:**

```js
var properties = new Array();
properties[0] = {
  tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
  value: huks.HksKeyAlg.HKS_ALG_DH
};
properties[1] = {
  tag: huks.HksTag.HKS_TAG_PURPOSE,
  value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
};
properties[2] = {
S
shuyi 已提交
1096
  tag: huks.HksTag.HKS_TAG_KEY_SIZE,
V
Vincentchenhao 已提交
1097 1098 1099 1100 1101 1102 1103 1104
  value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
};
var options = {
  properties: properties
};
huks.abort(handle, options, function (err, data){}); 
```

Z
zengyawen 已提交
1105 1106 1107
## huks.abort

abort(handle: number, options: HuksOptions) : Promise\<HuksResult>;
V
Vincentchenhao 已提交
1108

S
shuyi 已提交
1109
abort操作密钥接口,使用Promise方式异步返回结果。
V
Vincentchenhao 已提交
1110

S
shuyi 已提交
1111 1112
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

V
Vincentchenhao 已提交
1113 1114 1115 1116
**参数:**

| 参数名   | 类型                   | 必填 | 说明                                  |
| -------- | ---------------------- | ---- | ------------------------------------- |
S
shuyi 已提交
1117 1118 1119
| handle | number           | 是   | Abort操作的handle。 |
| options  | [HuksOptions](#huksoptions) | 是   | Abort操作的参数集合。 |
| promise | Promise\<[HuksResult](#huksresult)> | 是 | 将Abort操作的结果添加到密钥管理系统的回调。 |
V
Vincentchenhao 已提交
1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133

**示例:**

```js
var properties = new Array();
properties[0] = {
  tag: huks.HuksTag.HUKS_TAG_ALGORITHM,
  value: huks.HksKeyAlg.HKS_ALG_DH
};
properties[1] = {
  tag: huks.HksTag.HKS_TAG_PURPOSE,
  value: huks.HksKeyPurpose.HKS_KEY_PURPOSE_AGREE
};
properties[2] = {
S
shuyi 已提交
1134
  tag: huks.HksTag.HKS_TAG_KEY_SIZE,
V
Vincentchenhao 已提交
1135 1136 1137 1138 1139 1140 1141 1142
  value: huks.HksKeySize.HKS_DH_KEY_SIZE_4096
};
var options = {
  properties: properties
};
var result = huks.abort(handle, options);
```

Z
zengyawen 已提交
1143
## HuksParam
V
Vincentchenhao 已提交
1144 1145 1146

调用接口使用的options中的properties数组中的param。

S
shuyi 已提交
1147 1148 1149 1150 1151 1152
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

| 参数名 | 类型                                | 必填 | 说明       |
| ------ | ----------------------------------- | ---- | ---------- |
| tag    | HuksTag                             | 是   | 标签       |
| value  | boolean\|number\|bigint\|Uint8Array | 是   | 标签对应值 |
V
Vincentchenhao 已提交
1153

Z
zengyawen 已提交
1154
## HuksOptions
V
Vincentchenhao 已提交
1155 1156 1157

调用接口使用的options。

S
shuyi 已提交
1158 1159 1160 1161 1162 1163
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

| 参数名     | 类型              | 必填 | 说明                     |
| ---------- | ----------------- | ---- | ------------------------ |
| properties | Array\<HuksParam> | 否   | 属性,存HuksParam的数组。 |
| inData     | Uint8Array        | 否   | 输入数据。               |
V
Vincentchenhao 已提交
1164

Z
zengyawen 已提交
1165
## HuksHandle
V
Vincentchenhao 已提交
1166 1167 1168

huks Handle结构体。

S
shuyi 已提交
1169 1170
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。

V
Vincentchenhao 已提交
1171 1172
| 参数名     | 类型             | 必填 | 说明     |
| ---------- | ---------------- | ---- | -------- |
S
shuyi 已提交
1173 1174 1175
| errorCode  | number           | 是   | 错误码 |
| handle    | number       | 是 | handle值 |
| token | Uint8Array | 否 | 预留字段 |
V
Vincentchenhao 已提交
1176 1177


Z
zengyawen 已提交
1178
## HuksResult
V
Vincentchenhao 已提交
1179 1180 1181

调用接口返回的result。

S
shuyi 已提交
1182 1183 1184 1185 1186 1187 1188 1189 1190 1191
**系统能力**:以下各项对应的系统能力均为SystemCapability.Security.Huks。



| 参数名     | 类型              | 必填 | 说明     |
| ---------- | ----------------- | ---- | -------- |
| errorCode  | number            | 是   | 错误码   |
| outData    | Uint8Array        | 否   | 输出数据 |
| properties | Array\<HuksParam> | 否   | 属性     |
| certChains | Array\<string>    | 否   | 证书链   |
V
Vincentchenhao 已提交
1192