【问题标题】:BouncyCastle - Create a Store from X509Certificate objectBouncyCastle - 从 X509Certificate 对象创建商店
【发布时间】:2020-02-29 05:03:03
【问题描述】:

最初我希望如果请求有setCertReq(true),TimestampResponseGenerator 会自动在响应中包含公共证书,但现在我的理解是我必须使用addCertificates(Store certStore) 手动将它们添加到TimestampTokenGenerator 中。但是,我似乎只能将证书转换为标准 Java certStore,而不是 BouncyCastle Store,而且我找不到从头开始转换或创建 Store 对象的方法。

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

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

【问题讨论】:

    标签: java timestamp bouncycastle pki


    【解决方案1】:

    最简单的方法可能是使用JcaCertStore 类。这可以通过证书集合轻松初始化,然后使用addCertificates 传递给您的TimestampTokenGenerator

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

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

    Javadocs here

    【讨论】:

    • 谢谢!我需要做更多调查以确保一切正常,但我认为就是这样。希望我明天可以释放赏金。
    • 同时提出一个问题:TimeStampResponse 的原始大小(带有 512 哈希)是 2.5KB。添加 2.1KB 的证书,我预计结果大小约为 4.6KB,但我看到它是 5.5KB。 Store 或 ASN1 结构中是否有额外的开销? (通常这没什么大不了的,但我可能会存储这些,所以每个字节都很重要)。这些大小是否与您以前见过的常规 TimeStampResponses 一样,或者看起来有什么问题?
    • @user8897013 查看源代码可能会在使用生成器时放置证书的CMSSignedData 类中产生一些开销。 (假设您正在编码完整的响应实例)。但是,除非您将这些响应存储在数千个中,否则它可能不会加起来太多。
    • 我在我的案例模型中使用了一百万。那将是5.5GB。合理的?思考它。与没有开销的 4.5GB 没有太大区别。只是确保我没有犯愚蠢的计算错误。
    • 应该是对的。假设你有一个相当大的存储空间,如果你真的需要的话,你可能仍然可以存储几百万
    猜你喜欢
    • 1970-01-01
    • 2013-05-01
    • 2012-10-01
    • 2021-12-26
    • 1970-01-01
    • 2012-04-13
    • 2015-10-16
    • 2012-12-21
    • 1970-01-01
    相关资源
    最近更新 更多