Вложенный PKCS7 в BouncyCastle
Я хотел бы инкапсулировать SignedData в EnvelopedData. Я использую BouncyCastle. Посмотрев пример, я написал что-то вроде этого:
CMSSignedData signedData = gen.generate(new CMSProcessableByteArray(out.toByteArray()), true);
FileInputStream inputStream = new FileInputStream(args[3]);
CertificateFactory factory = CertificateFactory.getInstance("X.509", "BC");
X509Certificate certificate = (X509Certificate) factory.generateCertificate(inputStream);
CMSEnvelopedDataGenerator engen = new CMSEnvelopedDataGenerator();
engen.addRecipientInfoGenerator(new JceKeyTransRecipientInfoGenerator(certificate).setProvider("BC"));
CMSEnvelopedData envelopedData =engen.generate( new CMSProcessableByteArray(signedData.getEncoded()),
new JceCMSContentEncryptorBuilder(CMSAlgorithm.AES256_CBC).setProvider("BC").build());
Но я думаю, что это неправильно. Где я могу указать ContentType для ContentInfo? Мне нужно указать тип содержимого EnvelopedData как SignedData, но это невозможно с классом CMSSignedData.