IAIK CMS/SMIME Toolkit Demo API Documentation
Version 6.1

demo.smime.basic
Class ProcessMessageDemo

java.lang.Object
  extended by demo.smime.basic.ProcessMessageDemo

public class ProcessMessageDemo
extends java.lang.Object

This class demonstrates the usage of the IAIK S/MIME implementation for cryptographically processing (e.g. signing or encrypting) a received message. Since the message to be processed has a -- already canonicalized -- multipart content, the SMimeMultipart/SMimeBodyPart control can be disabled either globally for the whole application:

 SMimeParameters.setCheckForSMimeParts(false);
 
or only for the specific SignedContent object(s) in use:
 SignedContent sc = ...;
 sc.checkForSMimeParts(false);
 ...
 
To run this demo the following packages are required:


Constructor Summary
ProcessMessageDemo()
          Default constructor.
 
Method Summary
 javax.mail.Message createCompressedMessage(javax.mail.Session session, javax.mail.internet.MimeMessage message, iaik.asn1.structures.AlgorithmID algorithm, boolean includeHeaders)
          Creates a compressed message.
 javax.mail.Message createEncryptedMessage(javax.mail.Session session, javax.mail.internet.MimeMessage message, iaik.asn1.structures.AlgorithmID algorithm, int keyLength, boolean includeHeaders)
          Creates an encrypted message.
 javax.mail.Message createMessage(javax.mail.Session session, java.lang.String subject)
          Creates a MIME message container with the given subject for the given session.
 javax.mail.Message createPlainMessage(javax.mail.Session session, javax.activation.DataHandler dataHandler)
          Creates a simple plain (neither signed nor encrypted) message.
 javax.mail.Message createSignedAndEncryptedMessage(javax.mail.Session session, javax.mail.internet.MimeMessage message, boolean implicit, boolean includeHeaders)
          Creates a signed and encrypted message.
 javax.mail.Message createSignedMessage(javax.mail.Session session, javax.mail.internet.MimeMessage message, boolean implicit, boolean includeHeaders)
          Creates a signed message.
static void main(java.lang.String[] argv)
          The main method.
 void start()
          Starts the demo.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ProcessMessageDemo

public ProcessMessageDemo()
Default constructor. Reads certificates and keys from the demo keystore.

Method Detail

start

public void start()
           throws java.io.IOException
Starts the demo.

Throws:
java.io.IOException - if an I/O related error occurs

createMessage

public javax.mail.Message createMessage(javax.mail.Session session,
                                        java.lang.String subject)
                                 throws javax.mail.MessagingException
Creates a MIME message container with the given subject for the given session.

Parameters:
session - the mail sesion
subject - the subject of the message
Returns:
the MIME message with FROM, TO, DATE and SUBJECT headers (without content)
Throws:
javax.mail.MessagingException - if the message cannot be created

createPlainMessage

public javax.mail.Message createPlainMessage(javax.mail.Session session,
                                             javax.activation.DataHandler dataHandler)
                                      throws javax.mail.MessagingException
Creates a simple plain (neither signed nor encrypted) message.

Parameters:
session - the mail session
dataHandler - the content of the message
Returns:
the plain message
Throws:
javax.mail.MessagingException - if an error occurs when creating the message

createSignedAndEncryptedMessage

public javax.mail.Message createSignedAndEncryptedMessage(javax.mail.Session session,
                                                          javax.mail.internet.MimeMessage message,
                                                          boolean implicit,
                                                          boolean includeHeaders)
                                                   throws javax.mail.MessagingException
Creates a signed and encrypted message.

Parameters:
session - the mail session
message - the message to be signed and encrypted
implicit - whether to use implicit (application/pkcs7-mime) or explicit (multipart/signed) signing
includeHeaders - whether to inlcude the RFC822 headers of the original message
Returns:
the signed and encrypted message
Throws:
javax.mail.MessagingException - if an error occurs when creating the message

createSignedMessage

public javax.mail.Message createSignedMessage(javax.mail.Session session,
                                              javax.mail.internet.MimeMessage message,
                                              boolean implicit,
                                              boolean includeHeaders)
                                       throws java.lang.Exception
Creates a signed message.

Parameters:
session - the mail session
message - the message to be signed
implicit - whether to use implicit (application/pkcs7-mime) or explicit (multipart/signed) signing
includeHeaders - whether to inlcude the RFC822 headers of the original message
Returns:
the signed message
Throws:
javax.mail.MessagingException - if an error occurs when creating the message
java.lang.Exception

createEncryptedMessage

public javax.mail.Message createEncryptedMessage(javax.mail.Session session,
                                                 javax.mail.internet.MimeMessage message,
                                                 iaik.asn1.structures.AlgorithmID algorithm,
                                                 int keyLength,
                                                 boolean includeHeaders)
                                          throws javax.mail.MessagingException
Creates an encrypted message.

Parameters:
session - the mail session
message - the message to be encrypted
algorithm - the content encryption algorithm to be used
keyLength - the length of the secret content encryption key to be created and used
includeHeaders - whether to inlcude the RFC822 headers of the original message
Returns:
the encrypted message
Throws:
javax.mail.MessagingException - if an error occurs when creating the message

createCompressedMessage

public javax.mail.Message createCompressedMessage(javax.mail.Session session,
                                                  javax.mail.internet.MimeMessage message,
                                                  iaik.asn1.structures.AlgorithmID algorithm,
                                                  boolean includeHeaders)
                                           throws javax.mail.MessagingException
Creates a compressed message.

Parameters:
session - the mail session
message - the message to be compressed
algorithm - the compression algorithm to be used
includeHeaders - whether to inlcude the RFC822 headers of the original message
Returns:
the compressed message
Throws:
javax.mail.MessagingException - if an error occurs when creating the message

main

public static void main(java.lang.String[] argv)
                 throws java.io.IOException
The main method.

Throws:
java.io.IOException

IAIK CMS/SMIME Toolkit Demo API Documentation
Version 6.1

v6.1
(c) 2002 IAIK, (c) 2003 - 2025 SIC