gpt4 book ai didi

pdf - 如何使用 Bouncy CaSTLe 构建 RFC 3161 时间戳

转载 作者:行者123 更新时间:2023-12-04 16:05:02 25 4
gpt4 key购买 nike

我们需要基于 X509 证书(当然包括私钥)和 RFC 3161 实现我们自己的 PDF 时间戳机制。我用谷歌搜索并询问 here on SO正确的解决方案是重新实现 TSAClient 类为我们在本地做时间戳(没有在线 TSA)。但是,除了 SecureBlackbox 组件之外,我没有找到任何 RFC 3161 的实现。 Bouncy CaSTLe 图书馆应该可以,但我不知道如何。

你能指出我正确的方向吗?

最佳答案

可以使用 BouncycaSTLe 库生成 RFC3161 时间戳 token 。

首先创建一个时间戳请求。对于您的情况,它只是摘要算法和摘要值的包装器。

byte[] document = /* ... */
byte[] digest = MessageDigest.getInstance("SHA256").digest(document);
TimeStampRequestGenerator tsReqGen = new TimeStampRequestGenerator();
TimeStampRequest tsReq = tsReqGen.generate(CMSAlgorithm.SHA256, digest);

然后生成 token
DigestCalculator dgCalc = new JcaDigestCalculatorProviderBuilder().build();
ContentSigner signer = new JcaContentSignerBuilder().build(getPrivateKey());
SignerInfoGenerator siGen = new JcaSignerInfoGeneratorBuilder(new JcaDigestCalculatorProviderBuilder()).build(signer, getCertificate());
ASN1ObjectIdentifier policy = new ASN1ObjectIdentifier("1.2.3.4.5.6"); // Replace by your timestamping policy OID
TimeStampTokenGenerator tstGen = new TimeStampTokenGenerator(siGen, dgCalc, policy);
/* Set the parameters e.g. set the accuracy or include the signing certificate */
TimeStampToken tst = tstGen.generate(tsReq, generateSerialNumber(), new Date());
byte[] encoding = tst.getEncoded();

关于pdf - 如何使用 Bouncy CaSTLe 构建 RFC 3161 时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21376359/

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