IText7 点网。
CertIDBC 中的当前实现:
public virtual bool MatchesIssuer(IX509Certificate issuerCert) {
return new CertIDBC(
certificateID.HashAlgorithm.Algorithm.Id,
issuerCert,
new BigIntegerBC(certificateID.SerialNumber.Value)
).GetCertID().Equals(certificateID);
}
不应该是:
public virtual bool MatchesIssuer(IX509Certificate issuerCert) {
return new CertIDBC(
certificateID.HashAlgorithm,
issuerCert,
new BigIntegerBC(certificateID.SerialNumber.Value)
).GetCertID().Equals(certificateID);
}
通过仅传递算法 id,我们忘记了算法参数(AlgorithmIdentifier.parameters),这也是相等性检查的一部分。
如果我们检查 Bouncy Castle 实现,我们会发现没有预见到任何算法参数。
当我们研究OCSP 规范时也是如此。