Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
65763c0e
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
65763c0e
编写于
6月 06, 2022
作者:
H
haixiangw
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
huks import wrapped key
Signed-off-by:
N
haixiangw
<
wanghaixiang@huawei.com
>
上级
607bdf7c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
370 addition
and
113 deletion
+370
-113
zh-cn/application-dev/reference/apis/js-apis-huks.md
zh-cn/application-dev/reference/apis/js-apis-huks.md
+370
-113
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-huks.md
浏览文件 @
65763c0e
...
...
@@ -85,6 +85,8 @@ import huks from '@ohos.security.huks'
| HUKS_ERROR_INVALID_SALT | -123 |表示无效SALT。|
| HUKS_ERROR_INVALID_ITERATION | -124 |表示无效的迭代。|
| HUKS_ERROR_INVALID_OPERATION | -125 |表示无效操作。|
| HUKS_ERROR_INVALID_WRAPPED_FORMAT
<sup>
9+
</sup>
| -126 |表示导入加密密钥时,密钥格式错误。|
| HUKS_ERROR_INVALID_USAGE_OF_KEY
<sup>
9+
</sup>
| -127 |表示导入加密密钥时,密钥用途错误。|
| HUKS_ERROR_INTERNAL_ERROR | -999 |表示内部错误。|
| HUKS_ERROR_UNKNOWN_ERROR | -1000 |表示未知错误。|
...
...
@@ -117,6 +119,7 @@ import huks from '@ohos.security.huks'
| ---------------------- | ---- | ---------------------------------------- |
| HUKS_DIGEST_NONE | 0 | 表示无摘要算法。 |
| HUKS_DIGEST_MD5 | 1 | 表示MD5摘要算法。 |
| HUKS_DIGEST_SM3
<sup>
9+
</sup>
| 2 | 表示SM3摘要算法。 |
| HUKS_DIGEST_SHA1 | 10 | 表示SHA1摘要算法。 |
| HUKS_DIGEST_SHA224 | 11 | 表示SHA224摘要算法。 |
| HUKS_DIGEST_SHA256 | 12 | 表示SHA256摘要算法。 |
...
...
@@ -159,26 +162,28 @@ import huks from '@ohos.security.huks'
**系统能力**
:以下各项对应的系统能力均为SystemCapability.Security.Huks。
| 名称 | 值 | 说明 |
| ---------------------------- | ---- | ------------------------------------------ |
| 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。 |
| 名称 | 值 | 说明 |
| ---------------------------------- | ---- | ------------------------------------------ |
| 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。 |
| HUKS_SM2_KEY_SIZE_256
<sup>
9+
</sup>
| 256 | 表示SM2算法的密钥长度为256bit。 |
| HUKS_SM4_KEY_SIZE_128
<sup>
9+
</sup>
| 128 | 表示SM4算法的密钥长度为128bit。 |
## HuksKeyAlg
...
...
@@ -186,19 +191,22 @@ import huks from '@ohos.security.huks'
**系统能力**
:以下各项对应的系统能力均为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算法。 |
| 名称 | 值 | 说明 |
| ------------------------- | ---- | --------------------- |
| 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算法。 |
| HUKS_ALG_SM2
<sup>
9+
</sup>
| 150 | 表示使用SM2算法。 |
| HUKS_ALG_SM3
<sup>
9+
</sup>
| 151 | 表示使用SM3算法。 |
| HUKS_ALG_SM4
<sup>
9+
</sup>
| 152 | 表示使用SM4算法。 |
## HuksKeyGenerateType
...
...
@@ -247,6 +255,29 @@ import huks from '@ohos.security.huks'
| HUKS_SEND_TYPE_ASYNC | 0 | 表示异步发送TAG。 |
| HUKS_SEND_TYPE_SYNC | 1 | 表示同步发送TAG。 |
## HuksUnwrapSuite<sup>9+</sup>
表示导入加密密钥的算法套件。
**系统能力**
:以下各项对应的系统能力均为SystemCapability.Security.Huks。
| 名称 | 值 | 说明 |
| ---------------------------------------------- | ---- | ----------------------------------------------------- |
| HUKS_UNWRAP_SUITE_X25519_AES_256_GCM_NOPADDING | 1 | 导入加密密钥时,X25519密钥协商后使用AES-256 GCM加密。 |
| HUKS_UNWRAP_SUITE_ECDH_AES_256_GCM_NOPADDING | 2 | 导入加密密钥时,ECDH密钥协商后使用AES-256 GCM加密。 |
## HuksImportKeyType<sup>9+</sup>
表示导入密钥的密钥类型,默认为导入公钥,导入对称密钥时不需要该字段。
**系统能力**
:以下各项对应的系统能力均为SystemCapability.Security.Huks。
| 名称 | 值 | 说明 |
| ------------------------- | ---- | ------------------------------ |
| HUKS_KEY_TYPE_PUBLIC_KEY | 0 | 表示导入的密钥类型为公钥。 |
| HUKS_KEY_TYPE_PRIVATE_KEY | 1 | 表示导入的密钥类型为私钥。 |
| HUKS_KEY_TYPE_KEY_PAIR | 2 | 表示导入的密钥类型为公私钥对。 |
## HuksTagType
表示Tag的数据类型。
...
...
@@ -269,84 +300,86 @@ import huks from '@ohos.security.huks'
**系统能力**
:以下各项对应的系统能力均为SystemCapability.Security.Huks。
| 名称 | 值 | 说明 |
| -------------------------------------- | ---------------------------------------- | -------------------------------------- |
| HUKS_TAG_INVALID | HuksTagType.HUKS_TAG_TYPE_INVALID
\|
0 | 表示非法的Tag。 |
| HUKS_TAG_ALGORITHM | HUKS_TAG_TYPE_UINT
\|
1 | 表示算法的Tag。 |
| HUKS_TAG_PURPOSE | HuksTagType.HUKS_TAG_TYPE_UINT
\|
2 | 表示密钥用途的Tag。 |
| HUKS_TAG_KEY_SIZE | HuksTagType.HUKS_TAG_TYPE_UINT
\|
3 | 表示密钥长度的Tag。 |
| 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。 |
| 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 | 表示密钥初始化的向量。 |
| 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 | 预留。 |
| 名称 | 值 | 说明 |
| -------------------------------------------- | ---------------------------------------- | -------------------------------------- |
| HUKS_TAG_INVALID | HuksTagType.HUKS_TAG_TYPE_INVALID
\|
0 | 表示非法的Tag。 |
| HUKS_TAG_ALGORITHM | HUKS_TAG_TYPE_UINT
\|
1 | 表示算法的Tag。 |
| HUKS_TAG_PURPOSE | HuksTagType.HUKS_TAG_TYPE_UINT
\|
2 | 表示密钥用途的Tag。 |
| HUKS_TAG_KEY_SIZE | HuksTagType.HUKS_TAG_TYPE_UINT
\|
3 | 表示密钥长度的Tag。 |
| 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。 |
| 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 | 表示密钥初始化的向量。 |
| 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_IMPORT_KEY_TYPE
<sup>
9+
</sup>
| HuksTagType.HUKS_TAG_TYPE_UINT
\|
25 | 表示导入的密钥类型 |
| HUKS_TAG_UNWRAP_ALGORITHM_SUITE
<sup>
9+
</sup>
| HuksTagType.HUKS_TAG_TYPE_UINT
\|
26 | 表示导入加密密钥的套件 |
| 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 | 预留。 |
## huks.generateKey
...
...
@@ -542,7 +575,7 @@ var result = huks.getSdkVersion(emptyOptions);
importKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback
\<
HuksResult>) : void
导入密钥,使用Callback方式回调异步返回结果 。
导入
明文
密钥,使用Callback方式回调异步返回结果 。
**系统能力**
:以下各项对应的系统能力均为SystemCapability.Security.Huks。
...
...
@@ -600,7 +633,7 @@ huks.importKey(keyAlias, options, function (err, data){});
importKey(keyAlias: string, options: HuksOptions) : Promise
\<
HuksResult>
导入密钥,使用Promise方式异步返回结果。
导入
明文
密钥,使用Promise方式异步返回结果。
**系统能力**
:以下各项对应的系统能力均为SystemCapability.Security.Huks。
...
...
@@ -661,6 +694,230 @@ var huksoptions = {
var
result
=
huks
.
importKey
(
keyAlias
,
huksoptions
);
```
## huks.importWrappedKey<sup>9+</sup>
importWrappedKey(keyAlias: string, wrappingKeyAlias: string, options: HuksOptions, callback: AsyncCallback
\<
HuksResult>) : void
导入加密密钥,使用Callback方式回调异步返回结果 。
**系统能力**
:以下各项对应的系统能力均为SystemCapability.Security.Huks。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------------- | ----------------------------------------- | ---- | -------------------------------------------------- |
| keyAlias | string | 是 | 密钥别名,存放待导入密钥的别名。 |
| wrappingKeyAlias | string | 是 | 密钥别名,对应密钥用于解密加密的密钥数据。 |
| options |
[
HuksOptions
](
#huksoptions
)
| 是 | 用于导入时所需TAG和需要导入的加密的密钥数据。 |
| callback | AsyncCallback
\<
[
HuksResult
](
#huksresult
)
> | 是 | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。 |
**示例:**
```
js
var
exportWrappingKey
;
var
alias1
=
"
importAlias
"
;
var
alias2
=
"
wrappingKeyAlias
"
;
async
function
TestGenFunc
(
alias
,
options
)
{
await
genKey
(
alias
,
options
)
.
then
((
data
)
=>
{
console
.
log
(
`test genKey data:
${
JSON
.
stringify
(
data
)}
`
);
})
.
catch
((
err
)
=>
{
console
.
log
(
'
test genKey err information:
'
+
JSON
.
stringify
(
err
));
});
}
function
genKey
(
alias
,
options
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
huks
.
generateKey
(
alias
,
options
,
function
(
err
,
data
)
{
console
.
log
(
`test genKey data:
${
JSON
.
stringify
(
data
)}
`
);
if
(
err
.
code
!==
0
)
{
console
.
log
(
'
test genKey err information:
'
+
JSON
.
stringify
(
err
));
reject
(
err
);
}
else
{
resolve
(
data
);
}
});
});
}
async
function
TestExportFunc
(
alias
,
options
)
{
await
exportKey
(
alias
,
options
)
.
then
((
data
)
=>
{
console
.
log
(
`test exportKey data:
${
JSON
.
stringify
(
data
)}
`
);
})
.
catch
((
err
)
=>
{
console
.
log
(
'
test exportKey err information:
'
+
JSON
.
stringify
(
err
));
});
}
function
exportKey
(
alias
,
options
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
huks
.
exportKey
(
alias
,
options
,
function
(
err
,
data
)
{
console
.
log
(
`test exportKey data:
${
JSON
.
stringify
(
data
)}
`
);
if
(
err
.
code
!==
0
)
{
console
.
log
(
'
test exportKey err information:
'
+
JSON
.
stringify
(
err
));
reject
(
err
);
}
else
{
exportWrappingKey
=
data
.
outData
;
resolve
(
data
);
}
});
});
}
async
function
TestImportWrappedFunc
(
alias
,
wrappingAlias
,
options
)
{
await
importWrappedKey
(
alias
,
wrappingAlias
,
options
)
.
then
((
data
)
=>
{
console
.
log
(
`TestImportWrappedFunc data:
${
JSON
.
stringify
(
data
)}
`
);
})
.
catch
((
err
)
=>
{
console
.
log
(
'
test importWrappedKey err information:
'
+
JSON
.
stringify
(
err
));
});
}
function
importWrappedKey
(
alias
,
wrappingAlias
,
options
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
huks
.
importWrappedKey
(
alias
,
wrappingAlias
,
options
,
function
(
err
,
data
)
{
console
.
log
(
`importWrappedKey data:
${
JSON
.
stringify
(
data
)}
`
);
if
(
err
.
code
!==
0
)
{
console
.
log
(
'
importWrappedKey err information:
'
+
JSON
.
stringify
(
err
));
reject
(
err
);
}
else
{
resolve
(
data
);
}
});
});
}
async
function
TestImportWrappedKeyFunc
(
alias
,
wrappingAlias
,
genOptions
,
importOptions
)
{
await
TestGenFunc
(
wrappingAlias
,
genOptions
);
await
TestExportFunc
(
wrappingAlias
,
genOptions
);
/* 以下操作不需要调用HUKS接口,此处不给出具体实现。
* 假设待导入的密钥为keyA
* 1.生成ECC公私钥keyB,公钥为keyB_pub, 私钥为keyB_pri
* 2.使用keyB_pri和wrappingAlias密钥中获取的公钥进行密钥协商,协商出共享密钥share_key
* 3.随机生成密钥kek,用于加密keyA,采用AES-GCM加密,加密过程中需要记录:nonce1/aad1/加密后的密文keyA_enc/加密后的tag1。
* 4.使用share_key加密kek,采用AES-GCM加密,加密过程中需要记录:nonce2/aad2/加密后的密文kek_enc/加密后的tag2。
* 5.拼接importOptions.inData字段,满足以下格式:
* keyB_pub的长度(4字节) + keyB_pub的数据 + aad2的长度(4字节) + aad2的数据 +
* nonce2的长度(4字节) + nonce2的数据 + tag2的长度(4字节) + tag2的数据 +
* kek_enc的长度(4字节) + kek_enc的数据 + aad1的长度(4字节) + aad1的数据 +
* nonce1的长度(4字节) + nonce1的数据 + tag1的长度(4字节) + tag1的数据 +
* keyA长度占用的内存长度(4字节) + keyA的长度 + keyA_enc的长度(4字节) + keyA_enc的数据
*/
var
inputKey
=
new
Uint8Array
([
0x02
,
0x00
,
0x00
,
0x00
]);
importOptions
.
inData
=
inputKey
;
await
TestImportWrappedFunc
(
alias
,
wrappingAlias
,
importOptions
);
}
function
makeGenerateOptions
()
{
var
properties
=
new
Array
();
properties
[
0
]
=
{
tag
:
huks
.
HuksTag
.
HUKS_TAG_ALGORITHM
,
value
:
huks
.
HuksKeyAlg
.
HUKS_ALG_ECC
};
properties
[
1
]
=
{
tag
:
huks
.
HuksTag
.
HUKS_TAG_KEY_SIZE
,
value
:
huks
.
HuksKeySize
.
HUKS_ECC_KEY_SIZE_256
};
properties
[
2
]
=
{
tag
:
huks
.
HuksTag
.
HUKS_TAG_PURPOSE
,
value
:
huks
.
HuksKeyPurpose
.
HUKS_KEY_PURPOSE_UNWRAP
};
properties
[
3
]
=
{
tag
:
huks
.
HuksTag
.
HUKS_TAG_DIGEST
,
value
:
huks
.
HuksKeyDigest
.
HUKS_DIGEST_SHA256
};
var
options
=
{
properties
:
properties
};
return
options
;
};
function
makeImportOptions
()
{
var
properties
=
new
Array
();
properties
[
0
]
=
{
tag
:
huks
.
HuksTag
.
HUKS_TAG_ALGORITHM
,
value
:
huks
.
HuksKeyAlg
.
HUKS_ALG_AES
};
properties
[
1
]
=
{
tag
:
huks
.
HuksTag
.
HUKS_TAG_KEY_SIZE
,
value
:
huks
.
HuksKeySize
.
HUKS_AES_KEY_SIZE_256
};
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_BLOCK_MODE
,
value
:
huks
.
HuksCipherMode
.
HUKS_MODE_CBC
};
properties
[
4
]
=
{
tag
:
huks
.
HuksTag
.
HUKS_TAG_UNWRAP_ALGORITHM_SUITE
,
value
:
huks
.
HuksUnwrapSuite
.
HUKS_UNWRAP_SUITE_ECDH_AES_256_GCM_NOPADDING
};
var
options
=
{
properties
:
properties
};
return
options
;
};
function
huksImportWrappedKey
()
{
var
genOptions
=
makeGenerateOptions
();
var
importOptions
=
makeImportOptions
();
TestImportWrappedKeyFunc
(
alias1
,
alias2
,
genOptions
,
importOptions
);
}
```
## huks.importWrappedKey<sup>9+</sup>
importWrappedKey(keyAlias: string, wrappingKeyAlias: string, options: HuksOptions) : Promise
\<
HuksResult>
导入加密密钥,使用Promise方式异步返回结果。
**系统能力**
:以下各项对应的系统能力均为SystemCapability.Security.Huks。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------------- | --------------------------- | ---- | --------------------------------------------- |
| keyAlias | string | 是 | 密钥别名,存放待导入密钥的别名。 |
| wrappingKeyAlias | string | 是 | 密钥别名,对应密钥用于解密加密的密钥数据。 |
| options |
[
HuksOptions
](
#huksoptions
)
| 是 | 用于导入时所需TAG和需要导入的加密的密钥数据。 |
**返回值:**
| 类型 | 说明 |
| ----------------------------------- | -------------------------------------------------- |
| Promise
\<
[
HuksResult
](
#huksresult
)
> | 返回HUKS_SUCCESS时表示接口使用成功,其他时为错误。 |
**示例:**
```
js
/* 处理流程与callback类似,主要差异点为如下函数: */
async
function
TestImportWrappedFunc
(
alias
,
wrappingAlias
,
options
)
{
var
result
=
await
huks
.
importWrappedKey
(
alias
,
wrappingAlias
,
options
);
if
(
result
.
errorCode
===
0
)
{
console
.
log
(
'
test importWrappedKey success
'
);
}
else
{
console
.
log
(
'
test importWrappedKey fail
'
);
}
}
```
## huks.exportKey
exportKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback
\<
HuksResult>) : void
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录