Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
a4156541
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看板
未验证
提交
a4156541
编写于
2年前
作者:
O
openharmony_ci
提交者:
Gitee
2年前
浏览文件
操作
浏览文件
下载
差异文件
!13307 【开发自提单】修改算法库doc资料至monthly 1018
Merge pull request !13307 from wutiantian_gitee/cherry-pick-1672976509
上级
7ed04457
d893176a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
54 addition
and
19 deletion
+54
-19
zh-cn/application-dev/reference/apis/js-apis-cryptoFramework.md
...application-dev/reference/apis/js-apis-cryptoFramework.md
+49
-14
zh-cn/application-dev/security/cryptoFramework-overview.md
zh-cn/application-dev/security/cryptoFramework-overview.md
+5
-5
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-cryptoFramework.md
浏览文件 @
a4156541
...
...
@@ -1589,7 +1589,7 @@ try {
一次完整的加/解密流程在对称加密和非对称加密中略有不同:
-
对称加解密:init为必选,update为可选(且允许多次update加/解密大数据),doFinal为必选;doFinal结束后可以重新init开始新一轮加/解密流程。
-
RSA非对称加解密:init为必选,不支持update操作,doFinal为必选(允许连续多次doFinal加/解密大数据);
doFinal后不支持重新init
。
-
RSA非对称加解密:init为必选,不支持update操作,doFinal为必选(允许连续多次doFinal加/解密大数据);
RSA不支持重复init,切换加解密模式或填充方式时,需要重新创建Cipher对象
。
### 属性
...
...
@@ -1998,18 +1998,30 @@ import cryptoFramework from "@ohos.security.cryptoFramework"
let
signer1
=
cryptoFramework
.
createSign
(
"
RSA1024|PKCS1|SHA256
"
);
let
singer2
=
cryptoFramework
.
createSign
(
"
RSA1024|P
KCS1_OAEP
|SHA256|MGF1_SHA256
"
)
let
singer2
=
cryptoFramework
.
createSign
(
"
RSA1024|P
SS
|SHA256|MGF1_SHA256
"
)
```
## Sign
Sign类,使用Sign方法之前需要创建该类的实例进行操作,通过createSign(algName : string) : Sign方法构造此实例。
Sign类,使用Sign方法之前需要创建该类的实例进行操作,通过createSign(algName : string) : Sign方法构造此实例。Sign类不支持重复初始化,当业务方需要使用新密钥签名时,需要重新创建新Sign对象并调用init初始化。
业务方使用时,在createSign时确定签名的模式,调用init接口设置密钥。
当待签名数据较短时,可在init初始化后直接调用sign接口传入原文数据进行签名。
当待签名数据较长时,可通过update接口分段传入切分后的原文数据,最后调用sign接口对整体原文数据进行签名。
当使用update分段传入原文时,sign接口支持传null,业务方可在循环中调用update接口,循环结束后调用sign进行签名。
### 属性
**系统能力:**
SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | ------ | ---- | ---- | ---------------------------- |
| algName | string | 是 | 否 | 签名指定的算法名称。 |
### init
init(priKey : PriKey, callback : AsyncCallback
\<
void>) : void
使用私钥初始化Sign对象,Callback形式
使用私钥初始化Sign对象,Callback形式
,Sign类暂不支持重复init
**系统能力:**
SystemCapability.Security.CryptoFramework
...
...
@@ -2024,7 +2036,7 @@ init(priKey : PriKey, callback : AsyncCallback\<void>) : void
init(priKey : PriKey) : Promise
\<
void>
使用私钥初始化Sign对象,Promise形式
使用私钥初始化Sign对象,Promise形式
,Sign类暂不支持重复init
**系统能力:**
SystemCapability.Security.CryptoFramework
...
...
@@ -2126,8 +2138,8 @@ function stringToUint8Array(str) {
let
globalKeyPair
;
let
SignMessageBlob
;
let
plan1
=
"
This is Sign test plan1
"
;
let
plan2
=
"
This is Sign test plan
1
"
;
let
plan1
=
"
This is Sign test plan1
"
;
// The first segment of data.
let
plan2
=
"
This is Sign test plan
2
"
;
// The second segment of fata.
let
input1
=
{
data
:
stringToUint8Array
(
plan1
)
};
let
input2
=
{
data
:
stringToUint8Array
(
plan2
)
};
...
...
@@ -2138,8 +2150,8 @@ function signMessageCallback() {
globalKeyPair
=
keyPair
;
let
priKey
=
globalKeyPair
.
priKey
;
signer
.
init
(
priKey
,
function
(
err
,
data
)
{
signer
.
update
(
input1
,
function
(
err
,
data
)
{
signer
.
sign
(
input2
,
function
(
err
,
data
)
{
signer
.
update
(
input1
,
function
(
err
,
data
)
{
// add first segment of data
signer
.
sign
(
input2
,
function
(
err
,
data
)
{
// add second segment of data, sign input1 and input2
SignMessageBlob
=
data
;
AlertDialog
.
show
({
message
:
"
res
"
+
SignMessageBlob
.
data
});
});
...
...
@@ -2165,8 +2177,8 @@ function stringToUint8Array(str) {
let
globalKeyPair
;
let
SignMessageBlob
;
let
plan1
=
"
This is Sign test plan1
"
;
let
plan2
=
"
This is Sign test plan
1
"
;
let
plan1
=
"
This is Sign test plan1
"
;
// The first segment of data.
let
plan2
=
"
This is Sign test plan
2
"
;
// The second segment of fata.
let
input1
=
{
data
:
stringToUint8Array
(
plan1
)
};
let
input2
=
{
data
:
stringToUint8Array
(
plan2
)
};
...
...
@@ -2179,9 +2191,9 @@ function signMessagePromise() {
let
priKey
=
globalKeyPair
.
priKey
;
return
signer
.
init
(
priKey
);
}).
then
(()
=>
{
return
signer
.
update
(
input1
);
return
signer
.
update
(
input1
);
// add first segment of data
}).
then
(()
=>
{
return
signer
.
sign
(
input2
);
return
signer
.
sign
(
input2
);
// add second segment of data, sign input1 and input2
}).
then
(
dataBlob
=>
{
SignMessageBlob
=
dataBlob
;
console
.
info
(
"
sign output is
"
+
SignMessageBlob
.
data
);
...
...
@@ -2217,12 +2229,27 @@ import cryptoFramework from "@ohos.security.cryptoFramework"
let
verifyer1
=
cryptoFramework
.
createVerify
(
"
RSA1024|PKCS1|SHA256
"
);
let
verifyer2
=
cryptoFramework
.
createVerify
(
"
RSA1024|P
KCS1_OAEP
|SHA256|MGF1_SHA256
"
)
let
verifyer2
=
cryptoFramework
.
createVerify
(
"
RSA1024|P
SS
|SHA256|MGF1_SHA256
"
)
```
## Verify
Verify类,使用Verify方法之前需要创建该类的实例进行操作,通过createVerify(algName : string) : Verify方法构造此实例。
Verify类不支持重复初始化,当业务方需要使用新密钥验签时,需要重新创建新Verify对象并调用init初始化。
业务方使用时,在createVerify时确定验签的模式,调用init接口设置密钥。
当待签名数据较短时,可在init初始化后直接调用verify接口传入签名数据和原文进行验签。
当待签名数据较长时,可通过update接口分段传入待签名数据,最后调用verify接口对整体数据进行验签。
当使用update分段传入签名数据时,verify接口的签名数据支持传null,业务方可在循环中调用update接口,循环结束后调用verify传入原文进行验签。
### 属性
**系统能力:**
SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | ------ | ---- | ---- | ---------------------------- |
| algName | string | 是 | 否 | 验签指定的算法名称。 |
### init
...
...
@@ -2403,6 +2430,14 @@ let keyAgreement = cryptoFramework.createKeyAgreement("ECC256");
KeyAgreement类,使用密钥协商方法之前需要创建该类的实例进行操作,通过createKeyAgreement(algName : string) : KeyAgreement方法构造此实例。
### 属性
**系统能力:**
SystemCapability.Security.CryptoFramework
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | ------ | ---- | ---- | ---------------------------- |
| algName | string | 是 | 否 | 密钥协商指定的算法名称。 |
### generateSecret
generateSecret(priKey : PriKey, pubKey : PubKey, callback : AsyncCallback
\<
DataBlob>) : void
...
...
This diff is collapsed.
Click to expand it.
zh-cn/application-dev/security/cryptoFramework-overview.md
浏览文件 @
a4156541
...
...
@@ -152,7 +152,7 @@ HMAC(Hash-based Message Authentication Code)是一种基于密钥的消息
|ECC|ECC224|
|ECC|ECC256|
|ECC|ECC384|
|ECC|ECC5
12
|
|ECC|ECC5
21
|
### 加解密规格
...
...
@@ -180,7 +180,7 @@ HMAC(Hash-based Message Authentication Code)是一种基于密钥的消息
**非对称RSA加解密**
RSA加解密时,涉及三种
加解密
模式:NoPadding, PKCS1和PKCS1_OAEP。
RSA加解密时,涉及三种
填充
模式:NoPadding, PKCS1和PKCS1_OAEP。
-
使用NoPadding模式时可以指定的参数: [RSA512|RSA768|RSA1024|RSA2048|RSA3072|RSA4096|RSA8192]|NoPadding
-
使用PKCS1模式时可以指定的参数: [RSA512|RSA768|RSA1024|RSA2048|RSA3072|RSA4096|RSA8192]|PKCS1
-
使用PKCS1_OAEP模式时可以指定的参数:[RSA512|RSA768|RSA1024|RSA2048|RSA3072|RSA4096|RSA8192]|PKCS1_OAEP|[MD5|SHA1|SHA224|SHA256|SHA384|SHA512]|[MGF1_MD5|MGF1_SHA1|MGF1_SHA224|MGF1_SHA256|MGF1_SHA384|MGF1_SHA512]
...
...
@@ -191,7 +191,7 @@ RSA加解密时,涉及三种加解密模式:NoPadding, PKCS1和PKCS1_OAEP。
**RSA签名验签**
RSA签名验签时,涉及
三种加解密
模式:PKCS1和PSS。
RSA签名验签时,涉及
两种填充
模式:PKCS1和PSS。
-
使用PKCS1模式时可以指定的参数: [RSA512|RSA768|RSA1024|RSA2048|RSA3072|RSA4096|RSA8192]|PKCS1|[MD5|SHA1|SHA224|SHA256|SHA384|SHA512]
-
使用PSS模式时可以指定的参数:[RSA512|RSA768|RSA1024|RSA2048|RSA3072|RSA4096|RSA8192]|PSS|[MD5|SHA1|SHA224|SHA256|SHA384|SHA512]|[MGF1_MD5|MGF1_SHA1|MGF1_SHA224|MGF1_SHA256|MGF1_SHA384|MGF1_SHA512]
> **说明:** []内的参数只能任选一项,非[]内的为固定值
...
...
@@ -205,7 +205,7 @@ RSA签名验签时,涉及三种加解密模式:PKCS1和PSS。
|ECC|ECC224|
|ECC|ECC256|
|ECC|ECC384|
|ECC|ECC5
12
|
|ECC|ECC5
21
|
|摘要算法|支持种类|
|---|---|
...
...
@@ -226,7 +226,7 @@ RSA签名验签时,涉及三种加解密模式:PKCS1和PSS。
|ECC|ECC224|
|ECC|ECC256|
|ECC|ECC384|
|ECC|ECC5
12
|
|ECC|ECC5
21
|
### MD算法规格
加解密算法库框架当前支持MD5算法
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
新手
引导
客服
返回
顶部