我有root,intermediate和end实体证书,我想用pounc castle将它打包成pkcs#7格式。 我该怎么办?
答案 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文件扩展名的位置。打开文件以查看证书链。