BouncyCastle - 从 X509Certificate 对象创建一个商店

BouncyCastle - Create a Store from X509Certificate object

最初我希望如果请求有 setCertReq(true),TimestampResponseGenerator 会自动在响应中包含 public 证书,但现在我的理解是我必须手动将它们添加到 TimestampTokenGenerator using addCertificates(Store certStore). However, I can only seem to get the certificate into a standard Java certStore, not a BouncyCastle Store,我找不到从头开始转换或创建 Store 对象的方法。

使用 X509Certificate 对象创建 BouncyCastle 1.62+ Store 对象的最简单方法是什么?

答案(和赏金)取决于最终能否将证书添加到时间戳令牌。商店部分是我卡住的地方。

最简单的方法可能是使用 JcaCertStore class。这可以很容易地用证书集合初始化,然后使用 addCertificates.

传递给你的 TimestampTokenGenerator

在这个例子中,我是通过一个方法完成的,因为我没有你想要放置它的确切上下文,但是你当然可以提取这两行并将它们放置在你想要的任何地方!

public void add(TimeStampTokenGenerator timeStampTokenGenerator, X509Certificate certificate) throws CertificateEncodingException {
    JcaCertStore store = new JcaCertStore(Collections.singleton(certificate));
    timeStampTokenGenerator.addCertificates(store);
}

Javadocs here