Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
2b6c1bdd
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看板
提交
2b6c1bdd
编写于
6月 20, 2023
作者:
H
haixiangw
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加证书算法库框架接口使用场景
Signed-off-by:
N
haixiangw
<
wanghaixiang@huawei.com
>
上级
9daa1cf5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
100 addition
and
1 deletion
+100
-1
zh-cn/application-dev/security/cert-guidelines.md
zh-cn/application-dev/security/cert-guidelines.md
+100
-1
未找到文件。
zh-cn/application-dev/security/cert-guidelines.md
浏览文件 @
2b6c1bdd
...
...
@@ -48,7 +48,7 @@
| X509Cert | getBasicConstraints() : number | 获取证书基本约束 |
| X509Cert | getSubjectAltNames() : DataArray | 获取证书主体可选名称 |
| X509Cert | getIssuerAltNames() : DataArray | 获取证书颁发者可选名称 |
| X509Cert | getItem(itemType: CertItemType) : DataBlob
<sup>
10+
</sup>
| 获取X509证书对应的字段 |
**开发步骤**
示例:解析X509证书数据生成证书对象,并调用对象方法(包含场景1-6)
...
...
@@ -145,6 +145,105 @@ function certSample() {
}
```
## 使用证书扩展域段操作
> **说明**
>
> 本场景基于API version 10,OH SDK版本4.0.9及以上,适用于JS语言开发
**场景说明**
使用证书扩展域段操作中,典型的场景有:
1.
解析证书扩展域段数据生成证书扩展域段对象。
2.
获取证书扩展域段信息,比如:证书扩展域段对象标识符列表,根据对象标识符获取具体数据等。
3.
校验证书是否为CA证书。
**接口及参数说明**
详细接口说明可参考
[
API参考
](
../reference/apis/js-apis-cert.md
)
。
以上场景涉及的常用接口如下表所示:
| 实例名 | 接口名 | 描述 |
| ------------- | ------------------------------------------------------------ | -------------------------------------- |
| cryptoCert | createCertExtension(inStream : EncodingBlob, callback : AsyncCallback) : void
<sup>
10+
</sup>
| 使用callback方式创建证书扩展域段的对象 |
| cryptoCert | createCertExtension(inStream : EncodingBlob) : Promise
<sup>
10+
</sup>
| 使用promise方式创建证书扩展域段的对象 |
| CertExtension | getEncoded() : EncodingBlob
<sup>
10+
</sup>
| 获取证书扩展域段序列化数据 |
| CertExtension | getOidList(valueType : ExtensionOidType) : DataArray
<sup>
10+
</sup>
| 获取证书扩展域段对象标识符列表 |
| CertExtension | getEntry(valueType: ExtensionEntryType, oid : DataBlob) : DataBlob
<sup>
10+
</sup>
| 获取证书扩展域段对象信息 |
| CertExtension | checkCA() : number
<sup>
10+
</sup>
| 校验证书是否为CA证书 |
**开发步骤**
示例:解析X509证书扩展域段数据生成证书扩展域段对象,并调用对象方法(包含场景1-3)
```
javascript
import
cryptoCert
from
'
@ohos.security.cert
'
;
// 证书扩展域段数据,此处仅示例,业务需根据场景自行设置
let
certData
=
new
Uint8Array
([
0x30
,
0x40
,
0x30
,
0x0F
,
0x06
,
0x03
,
0x55
,
0x1D
,
0x13
,
0x01
,
0x01
,
0xFF
,
0x04
,
0x05
,
0x30
,
0x03
,
0x01
,
0x01
,
0xFF
,
0x30
,
0x0E
,
0x06
,
0x03
,
0x55
,
0x1D
,
0x0F
,
0x01
,
0x01
,
0xFF
,
0x04
,
0x04
,
0x03
,
0x02
,
0x01
,
0xC6
,
0x30
,
0x1D
,
0x06
,
0x03
,
0x55
,
0x1D
,
0x0E
,
0x04
,
0x16
,
0x04
,
0x14
,
0xE0
,
0x8C
,
0x9B
,
0xDB
,
0x25
,
0x49
,
0xB3
,
0xF1
,
0x7C
,
0x86
,
0xD6
,
0xB2
,
0x42
,
0x87
,
0x0B
,
0xD0
,
0x6B
,
0xA0
,
0xD9
,
0xE4
]);
// string转Uint8Array
function
stringToUint8Array
(
str
)
{
var
arr
=
[];
for
(
var
i
=
0
,
j
=
str
.
length
;
i
<
j
;
i
++
)
{
arr
.
push
(
str
.
charCodeAt
(
i
));
}
return
new
Uint8Array
(
arr
);
}
// 证书扩展域段示例
function
certExtensionSample
()
{
let
encodingBlob
=
{
data
:
certData
,
// 证书扩展域段格式:当前仅支持DER格式
encodingFormat
:
cryptoCert
.
EncodingFormat
.
FORMAT_DER
};
// 创建证书扩展域段对象
cryptoCert
.
createCertExtension
(
encodingBlob
,
function
(
err
,
certExtension
)
{
if
(
err
!=
null
)
{
// 创建证书扩展域段对象失败
console
.
log
(
"
createCertExtension failed, errCode:
"
+
err
.
code
+
"
, errMsg:
"
+
err
.
message
);
return
;
}
// 创建证书扩展域段对象成功
console
.
log
(
"
createCertExtension success
"
);
try
{
// 获取证书扩展域段对象的序列化数据
let
encodedData
=
certExtension
.
getEncoded
();
// 获取证书扩展域段对象的对象标识符列表
let
oidList
=
certExtension
.
getOidList
(
cryptoCert
.
ExtensionOidType
.
EXTENSION_OID_TYPE_ALL
);
// 根据对象标识符获取证书扩展域段信息
let
oidData
=
"
2.5.29.14
"
;
let
oid
=
{
data
:
stringToUint8Array
(
oidData
),
}
let
entry
=
certExtension
.
getEntry
(
cryptoCert
.
ExtensionEntryType
.
EXTENSION_ENTRY_TYPE_ENTRY
,
oid
);
// 校验证书是否为CA证书
let
pathLen
=
certExtension
.
checkCA
();
}
catch
(
err
)
{
console
.
log
(
"
operation failed:
"
+
JSON
.
stringify
(
err
));
}
});
}
```
## 使用证书吊销列表操作
**场景说明**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录