@Nonnull public MimeBodyPart encrypt (@Nonnull final MimeBodyPart aPart, @Nonnull final X509Certificate aX509Cert, @Nonnull final ECryptoAlgorithmCrypt eAlgorithm, @Nonnull final EContentTransferEncoding eCTE) throws GeneralSecurityException, SMIMEException, CMSException { ValueEnforcer.notNull (aPart, "MimeBodyPart"); ValueEnforcer.notNull (aX509Cert, "X509Cert"); ValueEnforcer.notNull (eAlgorithm, "Algorithm"); ValueEnforcer.notNull (eCTE, "ContentTransferEncoding"); if (LOGGER.isDebugEnabled ()) LOGGER.debug ("BCCryptoHelper.encrypt; X509 subject=" + aX509Cert.getSubjectX500Principal ().getName () + "; algorithm=" + eAlgorithm + "; CTE=" + eCTE); // Check if the certificate is expired or active. aX509Cert.checkValidity (); final ASN1ObjectIdentifier aEncAlg = eAlgorithm.getOID (); final SMIMEEnvelopedGenerator aGen = new SMIMEEnvelopedGenerator (); aGen.addRecipientInfoGenerator (new JceKeyTransRecipientInfoGenerator (aX509Cert).setProvider (m_sSecurityProviderName)); aGen.setContentTransferEncoding (eCTE.getID ()); final OutputEncryptor aEncryptor = new JceCMSContentEncryptorBuilder (aEncAlg).setProvider (m_sSecurityProviderName) .build (); final MimeBodyPart aEncryptedPart = aGen.generate (aPart, aEncryptor); return aEncryptedPart; }
public MimeBodyPart encrypt(MimeBodyPart part, Certificate cert, String algorithm, String contentTxfrEncoding) throws GeneralSecurityException, SMIMEException, MessagingException { X509Certificate x509Cert = castCertificate(cert); SMIMEEnvelopedGenerator gen = new SMIMEEnvelopedGenerator(); gen.setContentTransferEncoding(getEncoding(contentTxfrEncoding)); if (logger.isDebugEnabled()) { logger.debug("Encrypting on MIME part containing the following headers: " + AS2Util.printHeaders(part.getAllHeaders())); } gen.addRecipientInfoGenerator(new JceKeyTransRecipientInfoGenerator(x509Cert).setProvider("BC")); return gen.generate(part, getOutputEncryptor(algorithm)); }