public class SMimeEnvelopedDemoAEAD extends java.lang.Object
AuthEnvelopedData
content type, it is technically possible to also use
AEAD cipher modes with the EnvelopedData
content type (when appending the mac value
to the cipher text). This demo shows how to encrypt S/MIME messages with AEAD cipher modes when
using the CMS EnvelopedData
type.
To run this demo the following packages are required:
iaik_cms.jar
(IAIK-CMS/SMIME)
iaik_jce(_full).jar
(IAIK-JCE Core Crypto Library).
Constructor and Description |
---|
SMimeEnvelopedDemoAEAD()
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
jakarta.mail.Message |
createEncryptedMessage(jakarta.mail.Session session,
iaik.asn1.structures.AlgorithmID contentEA,
int keyLength)
Creates an encrypted message.
|
jakarta.mail.Message |
createMessage(jakarta.mail.Session session,
java.lang.String subject)
Creates a MIME message container with the given subject for the given session.
|
jakarta.mail.Message |
createPlainMessage(jakarta.mail.Session session,
jakarta.activation.DataHandler dataHandler)
Creates a simple plain (neither signed nor encrypted) message.
|
jakarta.mail.Message |
createSignedAndEncryptedMessage(jakarta.mail.Session session,
iaik.asn1.structures.AlgorithmID contentEA,
int keyLength,
jakarta.activation.DataHandler dataHandler,
boolean implicit,
boolean authEncrypt)
Creates a signed and encrypted message.
|
jakarta.mail.Message |
createSignedMessage(jakarta.mail.Session session,
jakarta.activation.DataHandler dataHandler,
boolean implicit,
iaik.asn1.structures.AlgorithmID digestAlgorithm,
iaik.asn1.structures.AlgorithmID signatureAlgorithm)
Creates a signed message.
|
static void |
main(java.lang.String[] argv)
The main method.
|
void |
start()
Starts the demo.
|
public SMimeEnvelopedDemoAEAD()
public void start() throws java.io.IOException
java.io.IOException
- if an I/O related error occurspublic jakarta.mail.Message createMessage(jakarta.mail.Session session, java.lang.String subject) throws jakarta.mail.MessagingException
session
- the mail sesionsubject
- the subject of the messagejakarta.mail.MessagingException
- if the message cannot be createdpublic jakarta.mail.Message createPlainMessage(jakarta.mail.Session session, jakarta.activation.DataHandler dataHandler) throws jakarta.mail.MessagingException
session
- the mail sessiondataHandler
- the content of the messagejakarta.mail.MessagingException
- if an error occurs when creating the messagepublic jakarta.mail.Message createSignedAndEncryptedMessage(jakarta.mail.Session session, iaik.asn1.structures.AlgorithmID contentEA, int keyLength, jakarta.activation.DataHandler dataHandler, boolean implicit, boolean authEncrypt) throws jakarta.mail.MessagingException
session
- the mail sessioncontentEA
- the content encryption algorithm to be usedkeyLength
- the length of the secret content encryption key to be created and useddataHandler
- the content of the message to be signed and encryptedimplicit
- whether to use implicit (application/pkcs7-mime) or explicit
(multipart/signed) signingauthEncrypt
- whether to create an encrypted messagejakarta.mail.MessagingException
- if an error occurs when creating the messagepublic jakarta.mail.Message createSignedMessage(jakarta.mail.Session session, jakarta.activation.DataHandler dataHandler, boolean implicit, iaik.asn1.structures.AlgorithmID digestAlgorithm, iaik.asn1.structures.AlgorithmID signatureAlgorithm) throws jakarta.mail.MessagingException
session
- the mail sessiondataHandler
- the content of the message to be signedimplicit
- whether to use implicit (application/pkcs7-mime) or explicit
(multipart/signed) signingdigestAlgorithm
- the digest algorithm to be usedsignatureAlgorithm
- the signature algorithm to be usedjakarta.mail.MessagingException
- if an error occurs when creating the messagepublic jakarta.mail.Message createEncryptedMessage(jakarta.mail.Session session, iaik.asn1.structures.AlgorithmID contentEA, int keyLength) throws jakarta.mail.MessagingException
session
- the mail sessioncontentEA
- the content encryption algorithm to be usedkeyLength
- the length of the secret content encryption key to be created and usedjakarta.mail.MessagingException
- if an error occurs when creating the messagepublic static void main(java.lang.String[] argv) throws java.io.IOException
java.io.IOException