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

本文详细介绍了OpenHarmony的安全证书框架中,证书CRL库的功能,如创建对象、读取属性、CRL和证书的选择,以及证书链的构造、校验和吊销过程。还列出了相关的ts接口和示例。同时提到了Node-API、OpenSSL和xca工具的使用作为参考资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、“证书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博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值