java - 探索充气城堡商店对象

标签 java cryptography bouncycastle

我的问题与 Bouncy Castle i cannot get all certificate 严格相关.

我使用BC代码https://www.bouncycastle.org/docs/pkixdocs1.4/org/bouncycastle/cms/CMSSignedData.html有一些小的变化。

  Store                   certStore = s.getCertificates();
  SignerInformationStore  signers = s.getSignerInfos();
  Collection              c = signers.getSigners();
  Iterator                it = c.iterator();

  while (it.hasNext())
  {
      SignerInformation   signer = (SignerInformation)it.next();
      Collection          certCollection = certStore.getMatches(signer.getSID());

      Iterator              certIt = certCollection.iterator();
      X509CertificateHolder cert = (X509CertificateHolder)certIt.next();

      if (signer.verify(new JcaSimpleSignerInfoVerifierBuilder().setProvider("BC").build(cert)))
      {
          verified++;
      }   
  }

我的目的是从“certStore”中提取所有证书(签名者+颁发者),并根据特定的 keystore 验证它们。

但是要从 certStore 中提取证书,只有“certStore.getMatches”。

签名者显然只提取签名者,并在“certStore.getMatches”中使用,仅提取签名者(一个或多个)的证书。

我必须控制每个证书、他的 CRL、他的日期,而不仅仅是签名者。

最佳答案

获取 allcertificate 的第一步是使用 null 选择器

 ArrayList<X509CertificateHolder> listCertDatFirm = new ArrayList(store.getMatches(null));

那么你就有了一组证书;递归地循环你可以重建正确的链。

关于java - 探索充气城堡商店对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27917846/

相关文章:

java - ArrayList在自定义列表类Java中实现

java - 带有 tastypie JSON 结果的 JSON 格式错误

c# - 使用 BouncyCaSTLe 在 C# 中验证使用 ECDSA(使用 SHA256)签名的 XMLSignature 抛出 InvalidCastException

encryption - 充气城堡没有这样的方法错误

java - 在 android 中出现关于 sdk 版本的错误

java - 是否有工具可以可视化实时 Spring 应用程序上下文?

java - AES-256 可以在 API 级别 26+ 的 Android 设备上工作吗?

php - 使用 crypt() 时在数据库中生成和存储盐

python - 如何以非交互方式使用 NIST 软件?

java - 导出ASN.1格式,然后用Base64 JAVA编码