아마도이 질문은 분명하지 않지만 탄력성 API를 사용하여 PKCS 봉투를 만드는 방법을 알았습니다. 나는 여기에 답변을 게시하고 누군가에게 도움이 될 수 있습니다.
import org.bouncycastle.cert.jcajce.JcaX509CertificateHolder;
import org.bouncycastle.cms.CMSAlgorithm;
import org.bouncycastle.cms.CMSEnvelopedData;
import org.bouncycastle.cms.CMSEnvelopedDataGenerator;
import org.bouncycastle.cms.CMSProcessableByteArray;
import org.bouncycastle.cms.bc.BcRSAKeyTransRecipientInfoGenerator;
import org.bouncycastle.cms.jcajce.JceCMSContentEncryptorBuilder;
import org.bouncycastle.operator.OutputEncryptor;
// Create the pkcs #7 envelop and add content to it
CMSEnvelopedDataGenerator fact = new CMSEnvelopedDataGenerator();
fact.addRecipientInfoGenerator(
new BcRSAKeyTransRecipientInfoGenerator(new JcaX509CertificateHolder((X509Certificate) cert)));
OutputEncryptor encryptor = new JceCMSContentEncryptorBuilder(CMSAlgorithm.DES_EDE3_CBC).setProvider("BC")
.build();
CMSProcessableByteArray content = new CMSProcessableByteArray(zipdata);
CMSEnvelopedData envdata = fact.generate(content, encryptor);
byte[] enveloped = envdata.getEncoded();
'cert'는 X509 인증서이며 자체 서명 된 인증서 또는 CA 인증서를 만들 수 있습니다. 'zipdata'는 zip 파일의 바이트 배열 내용이고 'enveloped'는 zip 데이터가 들어있는 바이트 배열 PKCS envelop입니다.