Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
123e33ee
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,发现更多精彩内容 >>
未验证
提交
123e33ee
编写于
2月 28, 2022
作者:
O
openharmony_ci
提交者:
Gitee
2月 28, 2022
浏览文件
操作
浏览文件
下载
差异文件
!1644 新增HUKS JS API
Merge pull request !1644 from 陈浩/master
上级
1e5651cd
e9ae5d12
变更
7
展开全部
显示空白变更内容
内联
并排
Showing
7 changed file
with
1332 addition
and
1 deletion
+1332
-1
zh-cn/application-dev/reference/apis/js-apis-huks.md
zh-cn/application-dev/reference/apis/js-apis-huks.md
+1133
-0
zh-cn/application-dev/security/Readme-CN.md
zh-cn/application-dev/security/Readme-CN.md
+1
-1
zh-cn/application-dev/security/huks-guidelinest.md
zh-cn/application-dev/security/huks-guidelinest.md
+140
-0
zh-cn/application-dev/security/huks-overview.md
zh-cn/application-dev/security/huks-overview.md
+27
-0
zh-cn/device-dev/security/Readme-CN.md
zh-cn/device-dev/security/Readme-CN.md
+1
-0
zh-cn/device-dev/subsystems/subsys-security-huks.md
zh-cn/device-dev/subsystems/subsys-security-huks.md
+27
-0
zh-cn/device-dev/subsystems/subsys-security.md
zh-cn/device-dev/subsystems/subsys-security.md
+3
-0
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-huks.md
0 → 100755
浏览文件 @
123e33ee
此差异已折叠。
点击以展开。
zh-cn/application-dev/security/Readme-CN.md
浏览文件 @
123e33ee
zh-cn/application-dev/security/huks-guidelinest.md
0 → 100755
浏览文件 @
123e33ee
# HUKS开发指南
## 场景介绍
HUKS(OpenHarmony Universal KeyStore,OpenHarmony通用密钥库系统)向应用提供密钥库能力,包括密钥管理及密钥的密码学操作等功能。HUKS所管理的密钥可以由应用导入或者由应用调用HUKS接口生成。
## 接口说明
| 接口名 | 描述 |
| ------------------------------------------------------------ | ---------------- |
| function generateKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback
<HksResult>
) : void; | 生成密钥/密钥对 |
| function generateKey(keyAlias: string, options: HuksOptions) : Promise
<HuksResult>
; | 生成密钥/密钥对 |
| function exportKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback
<HuksResult>
) : void; | 导出公钥 |
| function exportKey(keyAlias: string, options: HuksOptions) : Promise
<HuksResult>
; | 导出公钥 |
| function isKeyExist(keyAlias: string, options: HuksOptions, callback: AsyncCallback
<boolean>
) : void; | 查询密钥是否存在 |
| function isKeyExist(keyAlias: string, options: HuksOptions) : Promise
<boolean>
; | 查询密钥是否存在 |
| function deleteKey(keyAlias: string, options: HuksOptions, callback: AsyncCallback
<HuksResult>
) : void; | 删除密钥 |
| function deleteKey(keyAlias: string, options: HuksOptions) : Promise
<HuksResult>
; | 删除密钥 |
## 开发步骤
1.
引入HUKS模块
```
js
import
huks
from
'
@ohos.security.huks
'
```
2.
使用generateKey接口生成密钥对。
keyAlias为生成的密钥别名,options为生成密钥时使用到的参数,需根据具体需要到的算法设定options中的参数。
generateKey接口会返回密钥的生成是否成功。
```
js
var
alias
=
'
testAlias
'
;
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_224
};
properties
[
2
]
=
{
tag
:
huks
.
HuksTag
.
HUKS_TAG_PURPOSE
,
value
:
huks
.
HuksKeyPurpose
.
HUKS_KEY_PURPOSE_AGREE
};
properties
[
3
]
=
{
tag
:
huks
.
HuksTag
.
HUKS_TAG_DIGEST
,
value
:
huks
.
HuksKeyDigest
.
HUKS_DIGEST_NONE
};
var
options
=
{
properties
:
properties
}
var
resultA
=
await
huks
.
generateKey
(
alias
,
options
);
```
3.
使用Init接口进行init操作。
Alias为初始化密钥的别名,options为初始化密钥用的参数集合,需根据具体需要到的算法设定options中的参数。
init接口会返回init操作是否成功。
```
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
]
=
{
tag
:
huks
.
HksTag
.
HKS_TAG_KEY_SIZE
value
:
huks
.
HksKeySize
.
HKS_DH_KEY_SIZE_4096
};
var
options
=
{
properties
:
properties
};
huks
.
init
(
alias
,
options
,
function
(
err
,
data
){});
```
4.
使用Update接口进行update操作。
handle为更新密钥的session id,options为更新密钥用的参数集合,需根据具体需要到的算法设定options中的参数。
update接口会返回update操作是否成功。
```
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
]
=
{
tag
:
huks
.
HksTag
.
HKS_TAG_KEY_SIZE
value
:
huks
.
HksKeySize
.
HKS_DH_KEY_SIZE_4096
};
var
options
=
{
properties
:
properties
};
huks
.
update
(
handle
,
options
,
function
(
err
,
data
){});
```
5.
使用Finish接口进行finish操作。
handle为 结束密钥的session id,options为结束密钥用的参数集合,需根据具体需要到的算法设定options中的参数。
finish接口会返回finish操作是否成功。
```
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
]
=
{
tag
:
huks
.
HksTag
.
HKS_TAG_KEY_SIZE
value
:
huks
.
HksKeySize
.
HKS_DH_KEY_SIZE_4096
};
var
options
=
{
properties
:
properties
};
huks
.
finish
(
handle
,
options
,
function
(
err
,
data
){});
```
zh-cn/application-dev/security/huks-overview.md
0 → 100755
浏览文件 @
123e33ee
# HUKS概述
### 功能简介
HUKS(OpenHarmony Universal KeyStore)向应用提供密钥库能力,包括密钥管理及密钥的密码学操作等功能。HUKS所管理的密钥可以由应用导入或者由应用调用HUKS接口生成。
### 基本概念
-
HUKS提供密钥管理功能,支持的主要操作包括:加密解密、签名验签、派生协商密钥、计算HMAC(Hash-based Message Authentication Code)。
-
HUKS涉及的算法主要有:AES加密解密、RSA加密解密、RSA签名验签、ECC签名验签、DSA签名验签、ED25519签名验签、PBKDF2派生、DH协商、ECDH协商、X25519协商等。
-
HUKS当前使用的算法库为OpenSSL和mbed TLS。
### 运作机制
HUKS对密钥的使用主要通过Init、Update、Finish操作来实现。
-
**Iit操作**
:读取密钥,并为其创建Session Id返回给调用者。
-
**Udate操作**
:根据Init操作获取的Session Id对数据进行分段update处理。
-
**Fnish操作**
:当所有待处理的数据均传入HUKS后,调用Finish操作完成最终数据处理,释放资源。
>![](../public_sys-resources/icon-notice.gif) **须知:当Init、Update、Finish操作中的任一阶段发生错误时,都需要调用Abort操作来终止密钥的使用。**
### 约束与限制
不涉及。
\ No newline at end of file
zh-cn/device-dev/security/Readme-CN.md
浏览文件 @
123e33ee
...
...
@@ -3,3 +3,4 @@
-
[
隐私保护
](
security-privacy-protection.md
)
-
[
安全指南
](
security-guidelines-overall.md
)
huks
\ No newline at end of file
zh-cn/device-dev/subsystems/subsys-security-huks.md
0 → 100755
浏览文件 @
123e33ee
# HUKS概述
### 功能简介
HUKS(OpenHarmony Universal KeyStore)向应用提供密钥库能力,包括密钥管理及密钥的密码学操作等功能。HUKS所管理的密钥可以由应用导入或者由应用调用HUKS接口生成。
### 基本概念
-
HUKS提供密钥管理功能,支持的主要操作包括:加密解密、签名验签、派生协商密钥、计算HMAC(Hash-based Message Authentication Code)。
-
HUKS涉及的算法主要有:AES加密解密、RSA加密解密、RSA签名验签、ECC签名验签、DSA签名验签、ED25519签名验签、PBKDF2派生、DH协商、ECDH协商、X25519协商等。
-
HUKS当前使用的算法库为OpenSSL和mbed TLS。
### 运作机制
HUKS对密钥的使用主要通过Init、Update、Finish操作来实现。
-
**Iit操作**
:读取密钥,并为其创建Session Id返回给调用者。
-
**Udate操作**
:根据Init操作获取的Session Id对数据进行分段update处理。
-
**Fnish操作**
:当所有待处理的数据均传入HUKS后,调用Finish操作完成最终数据处理,释放资源。
>![](../public_sys-resources/icon-notice.gif) **须知:当Init、Update、Finish操作中的任一阶段发生错误时,都需要调用Abort操作来终止密钥的使用。**
### 约束与限制
不涉及。
\ No newline at end of file
zh-cn/device-dev/subsystems/subsys-security.md
浏览文件 @
123e33ee
...
...
@@ -9,3 +9,6 @@
-
**[IPC通信鉴权开发指导](subsys-security-communicationverify.md)**
-
**[设备安全等级管理开发指导](subsys-security-devicesecuritylevel.md)**
-
**[密钥管理开发指导](subsys-security-huks.md)**
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录