如何编辑 Java BC CMSSignedData PKCS#7?

How to edit Java BC CMSSignedData PKCS#7?

我有一个 BouncyCastle CMSSignedData 对象,表示为 PKCS#7 签名数据。

如何编辑 CMSSignedData 以删除 contentInfo 的值(八位字节字符串) (OID 1.2.840.113549.1.7.1)?

方法 CMSSignedDataGenerator.generate() 在构造 CMSSignedData 对象时使用 CMSObjectIdentifiers.signedData [1.2.840.113549.1.7.2] 作为 contentType。您可以重写 CMSSignedDataGenerator.java 或更好地制作您自己的生成器 class 并使用不同的 ObjectIdentifier.

bcpkix 来源可在 bouncycastle 获得。

注意id-signedData是官方的RFC 5652 content type for signed-data CMS对象:

id-signedData OBJECT IDENTIFIER ::=
{ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2 }