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, setContentTransferEncoding
public 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.IllegalArgumentException
public 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.IllegalArgumentException
public void addKEKRecipient(javax.crypto.SecretKey key, byte[] keyIdentifier) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
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
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.NoSuchProviderException
java.security.NoSuchAlgorithmException
java.security.InvalidKeyException
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
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.NoSuchProviderException
java.security.NoSuchAlgorithmException
java.security.InvalidKeyException
public 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.NoSuchAlgorithmException
java.security.NoSuchProviderException
SMIMEException
public 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.NoSuchAlgorithmException
SMIMEException
public 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.NoSuchAlgorithmException
java.security.NoSuchProviderException
SMIMEException
public 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.NoSuchAlgorithmException
java.security.NoSuchProviderException
SMIMEException
public 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.NoSuchAlgorithmException
java.security.NoSuchProviderException
SMIMEException
public 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.NoSuchAlgorithmException
java.security.NoSuchProviderException
SMIMEException
public 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.NoSuchAlgorithmException
java.security.NoSuchProviderException
SMIMEException
public 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.NoSuchAlgorithmException
SMIMEException