如何使用充气城堡将证书重新打包到 pkcs #7 证书中?
How do I repackage certificates into pkcs #7 certificate using bouncy castle?
我有根、中间和最终实体证书,我想使用充气城堡将其打包为 pkcs #7 格式。
我该怎么做?
首先,您必须阅读有关 PKCS#7/CMS 的最新 RFC。请点击此RFC Link阅读
现在要完成您的 objective,请使用 bouncycastle。您需要生成 CMSSignedData data. For that, you need to prepare private key and Certificate chain. Here, I am going to assume, you already have those. Now prepare 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 的位置。打开文件查看证书链。
我有根、中间和最终实体证书,我想使用充气城堡将其打包为 pkcs #7 格式。 我该怎么做?
首先,您必须阅读有关 PKCS#7/CMS 的最新 RFC。请点击此RFC Link阅读
现在要完成您的 objective,请使用 bouncycastle。您需要生成 CMSSignedData data. For that, you need to prepare private key and Certificate chain. Here, I am going to assume, you already have those. Now prepare 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 的位置。打开文件查看证书链。