一、“证书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 中文网