Bouncy Castle Cryptography Library 1.45

## org.bouncycastle.mail.smime
Class SMIMEEnvelopedGenerator

    java.lang.Object
      org.bouncycastle.mail.smime.SMIMEGenerator
          org.bouncycastle.mail.smime.SMIMEEnvelopedGenerator

    public class SMIMEEnvelopedGenerator

extends SMIMEGenerator

General class for generating a pkcs7-mime message. A simple example of usage.

          SMIMEEnvelopedGenerator  fact = new SMIMEEnvelopedGenerator();

          fact.addKeyTransRecipient(cert);

          MimeBodyPart           smime = fact.generate(content, algorithm, "BC");

Note: Most clients expect the MimeBodyPart to be in a MimeMultipart when it's sent.

Field Summary
`static java.lang.String` `AES128_CBC`
`static java.lang.String` `AES128_WRAP`
`static java.lang.String` `AES192_CBC`
`static java.lang.String` `AES256_CBC`
`static java.lang.String` `AES256_WRAP`
`static java.lang.String` `CAMELLIA128_CBC`
`static java.lang.String` `CAMELLIA128_WRAP`
`static java.lang.String` `CAMELLIA192_CBC`
`static java.lang.String` `CAMELLIA192_WRAP`
`static java.lang.String` `CAMELLIA256_CBC`
`static java.lang.String` `CAMELLIA256_WRAP`
`static java.lang.String` `CAST5_CBC`
`static java.lang.String` `DES_EDE3_CBC`
`static java.lang.String` `DES_EDE3_WRAP`
`static java.lang.String` `ECDH_SHA1KDF`
`static java.lang.String` `IDEA_CBC`
`static java.lang.String` `RC2_CBC`
`static java.lang.String` `SEED_CBC`
`static java.lang.String` `SEED_WRAP`

Fields inherited from class org.bouncycastle.mail.smime.SMIMEGenerator
`encoding, useBase64`

Constructor Summary
`SMIMEEnvelopedGenerator()` base constructor

Method Summary
`void` `addKEKRecipient(javax.crypto.SecretKey key, byte[] keyIdentifier)` add a KEK recipient.
`void` `addKeyAgreementRecipient(java.lang.String agreementAlgorithm, java.security.PrivateKey senderPrivateKey, java.security.PublicKey senderPublicKey, java.security.cert.X509Certificate recipientCert, java.lang.String cekWrapAlgorithm, java.security.Provider provider)` Add a key agreement based recipient.
`void` `addKeyAgreementRecipient(java.lang.String agreementAlgorithm, java.security.PrivateKey senderPrivateKey, java.security.PublicKey senderPublicKey, java.security.cert.X509Certificate recipientCert, java.lang.String cekWrapAlgorithm, java.lang.String provider)` Add a key agreement based recipient.
`void` `addKeyTransRecipient(java.security.PublicKey key, byte[] subKeyId)` add a recipient - note: this will only work on V3 and later clients.
`void` `addKeyTransRecipient(java.security.cert.X509Certificate cert)` add a recipient.
`MimeBodyPart` `generate(MimeBodyPart content, java.lang.String encryptionOID, int keySize, java.security.Provider provider)` generate an enveloped object that contains an SMIME Enveloped object using the given provider.
`MimeBodyPart` `generate(MimeBodyPart content, java.lang.String encryptionOID, int keySize, java.lang.String provider)` generate an enveloped object that contains an SMIME Enveloped object using the given provider.
`MimeBodyPart` `generate(MimeBodyPart content, java.lang.String encryptionOID, java.security.Provider provider)` generate an enveloped object that contains an SMIME Enveloped object using the given provider.
`MimeBodyPart` `generate(MimeBodyPart content, java.lang.String encryptionOID, java.lang.String provider)` generate an enveloped object that contains an SMIME Enveloped object using the given provider.
`MimeBodyPart` `generate(MimeMessage message, java.lang.String encryptionOID, int keySize, java.security.Provider provider)` generate an enveloped object that contains an SMIME Enveloped object using the given provider from the contents of the passed in message.
`MimeBodyPart` `generate(MimeMessage message, java.lang.String encryptionOID, int keySize, java.lang.String provider)` generate an enveloped object that contains an SMIME Enveloped object using the given provider from the contents of the passed in message.
`MimeBodyPart` `generate(MimeMessage message, java.lang.String encryptionOID, java.security.Provider provider)` generate an enveloped object that contains an SMIME Enveloped object using the given provider from the contents of the passed in message
`MimeBodyPart` `generate(MimeMessage message, java.lang.String encryptionOID, java.lang.String provider)` generate an enveloped object that contains an SMIME Enveloped object using the given provider from the contents of the passed in message
`void` `setBerEncodeRecipients(boolean berEncodeRecipientSet)` Use a BER Set to store the recipient information

Methods inherited from class org.bouncycastle.mail.smime.SMIMEGenerator
`createSymmetricKeyGenerator, makeContentBodyPart, makeContentBodyPart, setContentTransferEncoding`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DES_EDE3_CBC

    public static final java.lang.String DES_EDE3_CBC

### RC2_CBC

    public static final java.lang.String RC2_CBC

### IDEA_CBC

    public static final java.lang.String IDEA_CBC

See Also:
  Constant Field Values

### CAST5_CBC

    public static final java.lang.String CAST5_CBC

See Also:
  Constant Field Values

### AES128_CBC

    public static final java.lang.String AES128_CBC

### AES192_CBC

    public static final java.lang.String AES192_CBC

### AES256_CBC

    public static final java.lang.String AES256_CBC

### CAMELLIA128_CBC

    public static final java.lang.String CAMELLIA128_CBC

### CAMELLIA192_CBC

    public static final java.lang.String CAMELLIA192_CBC

### CAMELLIA256_CBC

    public static final java.lang.String CAMELLIA256_CBC

### SEED_CBC

    public static final java.lang.String SEED_CBC

### DES_EDE3_WRAP

    public static final java.lang.String DES_EDE3_WRAP

### AES128_WRAP

    public static final java.lang.String AES128_WRAP

### AES256_WRAP

    public static final java.lang.String AES256_WRAP

### CAMELLIA128_WRAP

    public static final java.lang.String CAMELLIA128_WRAP

### CAMELLIA192_WRAP

    public static final java.lang.String CAMELLIA192_WRAP

### CAMELLIA256_WRAP

    public static final java.lang.String CAMELLIA256_WRAP

### SEED_WRAP

    public static final java.lang.String SEED_WRAP

### ECDH_SHA1KDF

    public static final java.lang.String ECDH_SHA1KDF

Constructor Detail

### SMIMEEnvelopedGenerator

    public SMIMEEnvelopedGenerator()

  base constructor

Method Detail

### addKeyTransRecipient

    public void addKeyTransRecipient(java.security.cert.X509Certificate cert)
                              throws java.lang.IllegalArgumentException

  add a recipient.

  Throws:
    `java.lang.IllegalArgumentException`

### addKeyTransRecipient

    public void addKeyTransRecipient(java.security.PublicKey key,
                                     byte[] subKeyId)
                              throws java.lang.IllegalArgumentException

  add a recipient - note: this will only work on V3 and later clients.

  Parameters:
    `key` - the recipient's public key
    `subKeyId` - the subject key id for the recipient's public key
  Throws:
    `java.lang.IllegalArgumentException`

### addKEKRecipient

    public void addKEKRecipient(javax.crypto.SecretKey key,
                                byte[] keyIdentifier)
                         throws java.lang.IllegalArgumentException

  add a KEK recipient.

  Throws:
    `java.lang.IllegalArgumentException`

### addKeyAgreementRecipient

    public void addKeyAgreementRecipient(java.lang.String agreementAlgorithm,
                                         java.security.PrivateKey senderPrivateKey,
                                         java.security.PublicKey senderPublicKey,
                                         java.security.cert.X509Certificate recipientCert,
                                         java.lang.String cekWrapAlgorithm,
                                         java.lang.String provider)
                                  throws java.security.NoSuchProviderException,
                                         java.security.NoSuchAlgorithmException,
                                         java.security.InvalidKeyException

  Add a key agreement based recipient.

  Parameters:
    `senderPrivateKey` - private key to initialise sender side of agreement with.
    `senderPublicKey` - sender public key to include with message.
    `recipientCert` - recipient's public key certificate.
    `cekWrapAlgorithm` - OID for key wrapping algorithm to use.
    `provider` - provider to use for the agreement calculation.
  Throws:
    `java.security.NoSuchProviderException`
    `java.security.NoSuchAlgorithmException`
    `java.security.InvalidKeyException`

### addKeyAgreementRecipient

    public void addKeyAgreementRecipient(java.lang.String agreementAlgorithm,
                                         java.security.PrivateKey senderPrivateKey,
                                         java.security.PublicKey senderPublicKey,
                                         java.security.cert.X509Certificate recipientCert,
                                         java.lang.String cekWrapAlgorithm,
                                         java.security.Provider provider)
                                  throws java.security.NoSuchProviderException,
                                         java.security.NoSuchAlgorithmException,
                                         java.security.InvalidKeyException

  Add a key agreement based recipient.

  Parameters:
    `senderPrivateKey` - private key to initialise sender side of agreement with.
    `senderPublicKey` - sender public key to include with message.
    `recipientCert` - recipient's public key certificate.
    `cekWrapAlgorithm` - OID for key wrapping algorithm to use.
    `provider` - provider to use for the agreement calculation.
  Throws:
    `java.security.NoSuchProviderException`
    `java.security.NoSuchAlgorithmException`
    `java.security.InvalidKeyException`

### setBerEncodeRecipients

    public void setBerEncodeRecipients(boolean berEncodeRecipientSet)

  Use a BER Set to store the recipient information

### generate

    public MimeBodyPart generate(MimeBodyPart content,
                                 java.lang.String encryptionOID,
                                 java.lang.String provider)
                          throws java.security.NoSuchAlgorithmException,
                                 java.security.NoSuchProviderException,
                                 SMIMEException

  generate an enveloped object that contains an SMIME Enveloped object using the given provider.

  Throws:
    `java.security.NoSuchAlgorithmException`
    `java.security.NoSuchProviderException`
    `SMIMEException`

### generate

    public MimeBodyPart generate(MimeBodyPart content,
                                 java.lang.String encryptionOID,
                                 java.security.Provider provider)
                          throws java.security.NoSuchAlgorithmException,
                                 SMIMEException

  generate an enveloped object that contains an SMIME Enveloped object using the given provider.

  Throws:
    `java.security.NoSuchAlgorithmException`
    `SMIMEException`

### generate

    public MimeBodyPart generate(MimeMessage message,
                                 java.lang.String encryptionOID,
                                 java.lang.String provider)
                          throws java.security.NoSuchAlgorithmException,
                                 java.security.NoSuchProviderException,
                                 SMIMEException

  generate an enveloped object that contains an SMIME Enveloped object using the given provider from the contents of the passed in message

  Throws:
    `java.security.NoSuchAlgorithmException`
    `java.security.NoSuchProviderException`
    `SMIMEException`

### generate

    public MimeBodyPart generate(MimeMessage message,
                                 java.lang.String encryptionOID,
                                 java.security.Provider provider)
                          throws java.security.NoSuchAlgorithmException,
                                 java.security.NoSuchProviderException,
                                 SMIMEException

  generate an enveloped object that contains an SMIME Enveloped object using the given provider from the contents of the passed in message

  Throws:
    `java.security.NoSuchAlgorithmException`
    `java.security.NoSuchProviderException`
    `SMIMEException`

### generate

    public MimeBodyPart generate(MimeBodyPart content,
                                 java.lang.String encryptionOID,
                                 int keySize,
                                 java.lang.String provider)
                          throws java.security.NoSuchAlgorithmException,
                                 java.security.NoSuchProviderException,
                                 SMIMEException

  generate an enveloped object that contains an SMIME Enveloped object using the given provider. The size of the encryption key is determined by keysize.

  Throws:
    `java.security.NoSuchAlgorithmException`
    `java.security.NoSuchProviderException`
    `SMIMEException`

### generate

    public MimeBodyPart generate(MimeBodyPart content,
                                 java.lang.String encryptionOID,
                                 int keySize,
                                 java.security.Provider provider)
                          throws java.security.NoSuchAlgorithmException,
                                 java.security.NoSuchProviderException,
                                 SMIMEException

  generate an enveloped object that contains an SMIME Enveloped object using the given provider. The size of the encryption key is determined by keysize.

  Throws:
    `java.security.NoSuchAlgorithmException`
    `java.security.NoSuchProviderException`
    `SMIMEException`

### generate

    public MimeBodyPart generate(MimeMessage message,
                                 java.lang.String encryptionOID,
                                 int keySize,
                                 java.lang.String provider)
                          throws java.security.NoSuchAlgorithmException,
                                 java.security.NoSuchProviderException,
                                 SMIMEException

  generate an enveloped object that contains an SMIME Enveloped object using the given provider from the contents of the passed in message. The size of the encryption key used to protect the message is determined by keysize.

  Throws:
    `java.security.NoSuchAlgorithmException`
    `java.security.NoSuchProviderException`
    `SMIMEException`

### generate

    public MimeBodyPart generate(MimeMessage message,
                                 java.lang.String encryptionOID,
                                 int keySize,
                                 java.security.Provider provider)
                          throws java.security.NoSuchAlgorithmException,
                                 SMIMEException

  generate an enveloped object that contains an SMIME Enveloped object using the given provider from the contents of the passed in message. The size of the encryption key used to protect the message is determined by keysize.

  Throws:
    `java.security.NoSuchAlgorithmException`
    `SMIMEException`

Bouncy Castle Cryptography Library 1.45