java - 在 X509CRL 列表中搜索

标签 java security certificate x509certificate

我有一个 X509 CRL 列表。我需要以某种方式识别其中一些。现在我使用发行人来做到这一点:

for(var crl: List<X509CRL> crls){
 String issuer = c.getIssuerX500Principal().getName();
 if(issuer.contains("searchString"))
  result.add(crl);
}

但是必须有一个更好的方法来使用 CRL 文件格式的知识来做到这一点,也许可以通过比较公钥或类似的东西,但我对 X509CRL 不太了解。有人可以帮我吗?

最佳答案

如果您有权访问每个证书的公钥,则可以使用 verify(PublicKey key) 方法来验证 CRL 是否是使用与给定公钥对应的私钥进行签名的.

如果 key 不正确,它应该抛出 InvalidKeyException,因此用 try-catch block 包围它,如下所示:

try {
    crl.verify(<public_key>)
} catch(InvalidKeyException e) {
    // handle exception
}

另请参阅:

关于java - 在 X509CRL 列表中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73648800/

相关文章:

java - 如何使用动态IP连接基于mysql web的数据库服务器

java - 使用 FXML 中的数据绑定(bind)表达式填充 tableView 中的项目?

java - arraylist 的质量变化值

security - 如何在 JSF 中实现安全性?

docker - 如何在 Ubuntu 14.04 Dockerfile 中更新我的根证书?

java - 如何将滚动 Pane 内容保存为 jpg 文件

security - Lua - 我如何在不改变 GetFenv 函数的情况下欺骗它?

javascript - 安全警报 - 如何修复?

certificate - 公钥/私钥认证和签名

Java OpenSSL 验证和获取公钥