如何使用充气城堡将证书重新打包成pkcs#7证书?

时间:2015-04-14 21:54:44

标签: java cryptography x509certificate bouncycastle pkcs#7

我有root,intermediate和end实体证书,我想用pounc castle将它打包成pkcs#7格式。 我该怎么办?

1 个答案:

答案 0 :(得分:1)

首先,您必须阅读PKCS#7 / CMS上的最新RFC。请点击此RFC Link阅读。

现在要实现您的目标,请使用bouncycastle。您需要生成CMSSignedData data。为此,您需要准备私钥和证书链。在这里,我假设你已经拥有了那些。现在准备CMSProcessableByteArray

CMSProcessableByteArray msg = new CMSProcessableByteArray("Hello World".getBytes());

现在,使用证书列表准备商店。

Store certs = new JcaCertStore(certList);

然后声明CMSSignedDataGenerator并添加signerInfo和证书。

CMSSignedDataGenerator gen = new CMSSignedDataGenerator();
gen.addSignerInfoGenerator(new JcaSignerInfoGeneratorBuilder(......));
gen.addCertificates(certs);

然后使用CMSSignedDataGenerator和CMSProcessableByteArray生成CMSSignedData。

CMSSignedData cmsData = gen.generate(msg, true);

最后将CMSSignedData(cmsSignedData.getEncoded())的字节数组写入.p7b文件扩展名的位置。打开文件以查看证书链。