gpt4 book ai didi

java - 逻辑开始方法 (java.security.cert.X509CRL) isRevoked

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:29 25 4
gpt4 key购买 nike

只是想知道是否有人知道方法 isRevoked 从 X509CRL 类背后的逻辑是什么。

Java documentation只是说此方法验证作为参数传递的证书对象是否在列表中,但没有说明它比较哪些字段(序列号、颁发者 DN 等)。

Certificate cert = CertificateFactory.getInstance("X.509").generateCertificate(new ByteArrayInputStream(rs.getString("x509_certificate").getBytes("utf-8")));      

CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
URL crlURL = new URL("http://www.certificadodigital.com.br/repositorio/lcr/serasarfbv2.crl");
InputStream crlStream = crlURL.openStream();
X509CRL crl = (X509CRL) certFactory.generateCRL(crlStream);
System.out.println(crl.getIssuerDN());


if (crl.isRevoked(cert) {
System.out.println("revoked");
}

基本上我想做的是创建一个批处理作业来加载一些 CRL 并检查我数据库中的证书是否已被撤销,然后将它们标记为已撤销。

提前致谢。

最佳答案

您需要检查源代码/反编译代码作为 Java Docs对于这个领域是一个笑话,行为是特定于实现的

在 Oracle VM 中,CRL 对象检查序列号和 X500Name 是否相同...现在 Voodoo 发生在 X500Name.equals() 中,如它根据 CRL 和证书中的所有名称属性创建 DN。

对不起,我不能说得更具体。我的建议是:调试代码并在 CRL.isRevoked() 中放置一个断点,然后从那里开始检查。

关于java - 逻辑开始方法 (java.security.cert.X509CRL) isRevoked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31883026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com