org.bouncycastle.mail.smime
public class SMIMEEnvelopedGenerator extends SMIMEGenerator
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.| Modifier and Type | Field and Description |
|---|---|
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 |
encoding, useBase64| Constructor and Description |
|---|
SMIMEEnvelopedGenerator()
base constructor
|
| Modifier and Type | Method and Description |
|---|---|
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.
|
javax.mail.internet.MimeBodyPart |
generate(javax.mail.internet.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.
|
javax.mail.internet.MimeBodyPart |
generate(javax.mail.internet.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.
|
javax.mail.internet.MimeBodyPart |
generate(javax.mail.internet.MimeBodyPart content,
java.lang.String encryptionOID,
java.security.Provider provider)
generate an enveloped object that contains an SMIME Enveloped
object using the given provider.
|
javax.mail.internet.MimeBodyPart |
generate(javax.mail.internet.MimeBodyPart content,
java.lang.String encryptionOID,
java.lang.String provider)
generate an enveloped object that contains an SMIME Enveloped
object using the given provider.
|
javax.mail.internet.MimeBodyPart |
generate(javax.mail.internet.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.
|
javax.mail.internet.MimeBodyPart |
generate(javax.mail.internet.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.
|
javax.mail.internet.MimeBodyPart |
generate(javax.mail.internet.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
|
javax.mail.internet.MimeBodyPart |
generate(javax.mail.internet.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
|
createSymmetricKeyGenerator, makeContentBodyPart, makeContentBodyPart, setContentTransferEncodingpublic static final java.lang.String DES_EDE3_CBC
public static final java.lang.String RC2_CBC
public static final java.lang.String IDEA_CBC
public static final java.lang.String CAST5_CBC
public static final java.lang.String AES128_CBC
public static final java.lang.String AES192_CBC
public static final java.lang.String AES256_CBC
public static final java.lang.String CAMELLIA128_CBC
public static final java.lang.String CAMELLIA192_CBC
public static final java.lang.String CAMELLIA256_CBC
public static final java.lang.String SEED_CBC
public static final java.lang.String DES_EDE3_WRAP
public static final java.lang.String AES128_WRAP
public static final java.lang.String AES256_WRAP
public static final java.lang.String CAMELLIA128_WRAP
public static final java.lang.String CAMELLIA192_WRAP
public static final java.lang.String CAMELLIA256_WRAP
public static final java.lang.String SEED_WRAP
public static final java.lang.String ECDH_SHA1KDF
public void addKeyTransRecipient(java.security.cert.X509Certificate cert)
throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentExceptionpublic void addKeyTransRecipient(java.security.PublicKey key,
byte[] subKeyId)
throws java.lang.IllegalArgumentException
key - the recipient's public keysubKeyId - the subject key id for the recipient's public keyjava.lang.IllegalArgumentExceptionpublic void addKEKRecipient(javax.crypto.SecretKey key,
byte[] keyIdentifier)
throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentExceptionpublic 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
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.java.security.NoSuchProviderExceptionjava.security.NoSuchAlgorithmExceptionjava.security.InvalidKeyExceptionpublic 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
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.java.security.NoSuchProviderExceptionjava.security.NoSuchAlgorithmExceptionjava.security.InvalidKeyExceptionpublic void setBerEncodeRecipients(boolean berEncodeRecipientSet)
public javax.mail.internet.MimeBodyPart generate(javax.mail.internet.MimeBodyPart content,
java.lang.String encryptionOID,
java.lang.String provider)
throws java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException,
SMIMEException
java.security.NoSuchAlgorithmExceptionjava.security.NoSuchProviderExceptionSMIMEExceptionpublic javax.mail.internet.MimeBodyPart generate(javax.mail.internet.MimeBodyPart content,
java.lang.String encryptionOID,
java.security.Provider provider)
throws java.security.NoSuchAlgorithmException,
SMIMEException
java.security.NoSuchAlgorithmExceptionSMIMEExceptionpublic javax.mail.internet.MimeBodyPart generate(javax.mail.internet.MimeMessage message,
java.lang.String encryptionOID,
java.lang.String provider)
throws java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException,
SMIMEException
java.security.NoSuchAlgorithmExceptionjava.security.NoSuchProviderExceptionSMIMEExceptionpublic javax.mail.internet.MimeBodyPart generate(javax.mail.internet.MimeMessage message,
java.lang.String encryptionOID,
java.security.Provider provider)
throws java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException,
SMIMEException
java.security.NoSuchAlgorithmExceptionjava.security.NoSuchProviderExceptionSMIMEExceptionpublic javax.mail.internet.MimeBodyPart generate(javax.mail.internet.MimeBodyPart content,
java.lang.String encryptionOID,
int keySize,
java.lang.String provider)
throws java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException,
SMIMEException
java.security.NoSuchAlgorithmExceptionjava.security.NoSuchProviderExceptionSMIMEExceptionpublic javax.mail.internet.MimeBodyPart generate(javax.mail.internet.MimeBodyPart content,
java.lang.String encryptionOID,
int keySize,
java.security.Provider provider)
throws java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException,
SMIMEException
java.security.NoSuchAlgorithmExceptionjava.security.NoSuchProviderExceptionSMIMEExceptionpublic javax.mail.internet.MimeBodyPart generate(javax.mail.internet.MimeMessage message,
java.lang.String encryptionOID,
int keySize,
java.lang.String provider)
throws java.security.NoSuchAlgorithmException,
java.security.NoSuchProviderException,
SMIMEException
java.security.NoSuchAlgorithmExceptionjava.security.NoSuchProviderExceptionSMIMEExceptionpublic javax.mail.internet.MimeBodyPart generate(javax.mail.internet.MimeMessage message,
java.lang.String encryptionOID,
int keySize,
java.security.Provider provider)
throws java.security.NoSuchAlgorithmException,
SMIMEException
java.security.NoSuchAlgorithmExceptionSMIMEException