学习笔记:OpenHarmony / security_certificate_framework中“证书CRL库”和“证书链”
security_certificate_framework的gitee仓 : https://gitee.com/openharmony/security_certificate_framework对象/类方法或属性(包括返回值、方法名、参数列表)功能特性公共方法function cryptoCert.createCertCRLCollection(certs:Array<X509Cert>,c
一、“证书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
2、openssl接口中文手册:
参考: OpenSSL 中文手册 | OpenSSL 中文网
3、xca证书工具,测试验证使用
更多推荐



所有评论(0)