学习笔记:OpenHarmony / security_certificate_framework中“证书CRL库”和“证书链”

一、“证书CRL库”和“证书链”

1、代码:

security_certificate_framework的gitee仓 : https://gitee.com/openharmony/security_certificate_framework

2、思维导图

二、证书CRL库

1、主要功能:

  • 创建证书CRL库对象功能;
  • 从证书CRL库对象读取相关属性;
  • 从证书CRL库对象中选择CRL;
  • 从证书CRL库对象中选择证书。

2、层次图

3、ts接口

对象/类

方法或属性(包括返回值、方法名、参数列表)

功能特性

公共方法

function cryptoCert.createCertCRLCollection(

certs:Array<X509Cert>,

crls?: Array<X509CRL>

): CertCRLCollection

创建CertCRLCollection对象

CertCRLCollection

function selectCerts(

param X509CertMatchParameters

): Promise<Array<X509Cert>>

根据过滤条件param从CertCRLCollection查询满足条件的证书列表

CertCRLCollection

function selectCRLs(

param X509CRLMatchParameters

): Promise<Array<X509CRL>>

根据过滤条件param从CertCRLCollection查询满足条件的CRL列表

X509Cert

function match(param: X509CertMatchParameters): boolean

判断cert证书是否满足X509CertMatchParameters中设置的过滤条件。

X509CRL

function match(param: X509CRLMatchParameters): boolean

判断CRL是否满足X509CRLMatchParameters中设置的过滤条件。

X509CertMatchParameters

X509CRLMatchParameters

三、证书链

1、主要功能:

  • 证书链对象构造功能。
  • 对证书链进行合法性校验,包括基于CA证书进行校验、有效期校验、证书策略校验;
  • 支持对证书链进行吊销校验

2、证书链构造、校验、吊销流程图

3、层次图

4、ts接口

对象/类

方法或属性(包括返回值、方法名、参数列表)

功能特性

公共方法

function cryptoCert.createX509CertChain(

inStream : EncodingBlob

) : Promise<X509CertChain>

根据输入流构建一个X509CertChain对象,输入流支持的格式:

1、输入DER编码方式

2、输入PEM编码方式

3、输入也支持PKCS#7 certificate chain格式,

公共方法

createX509CertChain(certs: Array<X509Cert>): X509CertChain;

根据X509Cert数组创建证书链对象

X509CertChain

function getCertList(): Array<X509Cert>

获取证书链对象中的证书对象数组

X509CertChain

function validate(

param: CertChainValidateParameters

) : Promise<CertChainValidateResult>

根据param中设置的参数对证书链certChain进行校验。certChain:根据惯例,X.509 证书链(由X509证书组成)从目标证书(叶子证书)开始,以CA证书结束。同时代表TrustAnchor的根CA证书不应包含在证书链中。

校验成功是返回CertChainValidateResult,校验失败通过异常返回错误。

X509TrustAnchor

提供如下属性:

caCert:X509Cert

caPubKey:Uint8Array

caSubject:string

X509证书的信任锚结构体,用于校验证书链;有2种方式:

1.ca证书对象用于校验证书链的

2.ca证书的公钥、ca证书的subject(可选)

caPubKey和CaSubject都是der编码格式,遵循RFC 5280和X509相关规范。

CertChainValidateParameters

date: string

trustAnchors: Array< X509TrustAnchor>

certCRLs: Array<CertCRLCollection>

设置校验证书链有效性的时间

信任锚对象列表(ca证书或ca证书的公钥/subject),用于对证书链进行校验

校验证书是否已吊销

CertChainValidateResult

为interface结构体,包含如下字段:

1.trustAnchor: X509TrustAnchor

2.entityCert: X509Cert

1.trustAnchor:签发证书链的ca证书对应的信任锚对象

2.entityCert:证书链的叶子证书

四、参考网址

1、Napi 接口查询:

en:Node-API | Node.js v15.14.0 Documentation

中文: Node-API | Node.js v20 文档

2、openssl接口中文手册:

参考: OpenSSL 中文手册 | OpenSSL 中文网

3、xca证书工具,测试验证使用

使用xca工具生成自签证书-CSDN博客

  • 28
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误提示表示脚本文件的格式有问题,可能是由于文件包含了不可见的回车符导致的。你可以使用sed命令来移除这些回车符。具体操作是执行以下命令:sed -i -e 's/\r$//' sg.sh \[1\]。 另外,你可以使用echo $PATH命令来查看当前的环境路径。这个命令会列出一系列路径,用冒号分隔。例如,/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/arm/4.3.2/bin \[2\]。 在准备工作,你需要准备一个虚拟机,并安装工具。安装完成后,你需要设置环境变量,将工具的路径添加到PATH。你可以使用sudo vi /etc/environment命令来编辑环境变量文件,并将路径添加到PATH变量。例如,PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin" \[3\]。 综上所述,如果你遇到了"-bash: ./modify_time.sh:/bin/bash^M: bad interpreter: No such file or directory"的错误,你可以尝试使用sed命令移除回车符,并确保你的环境变量设置正确。 #### 引用[.reference_title] - *1* *2* *3* [JZ2440学习笔记一](https://blog.csdn.net/hbutluoxi/article/details/122697881)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值