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

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐