Package com.dstc.security.smime

This package defines classes and interfaces for S/MIME v3 as specified in IETF RFC 2633 "S/MIME Version 3 Message Specification".

See:
          Description

Interface Summary
AddressMismatch An interface to represent a Warning generated from a mismatch between a sender e-mail address and address(es) in the sender certificate.
DecryptionResult An interface to represent the result of decrypting an S/MIME encrypted message.
VerificationResult An interface to represent the result of verifying an S/MIME signed message.
Warning An interface to represent abnormal (but non-fatal) conditions encountered during S/MIME signed message verification.
 

Class Summary
SMIMECipher A class for encryption and decryption of MIME messages according to RFC 2633 "S/MIME Version 3 Message Specification".
SMIMESignature A class for signing and verification of MIME messages according to RFC 2633 "S/MIME Version 3 Message Specification".
SMIMEUtil A utility class for S/MIME message processing
 

Exception Summary
SMIMEException A generic S/MIME exception class
 

Package com.dstc.security.smime Description

This package defines classes and interfaces for S/MIME v3 as specified in IETF RFC 2633 "S/MIME Version 3 Message Specification". It relies upon the CMS package com.dstc.security.cms, and on the standard JavaMail API (at least version 1.2). In particular, it assumes knowledge of the latter.

S/MIME (Secure/Multipurpose Internet Mime Extensions) provides cryptographic security services for messaging applications based on the Internet MIME standard. Such services include authentication, message integrity and non-repudiation through digital signatures, and message privacy through encryption. The S/MIME specification defines several MIME content types for signed and/or encrypted messages, relying on IETF RFC 2630 "Cryptographic Message Syntax" (CMS) for cryptographic enhancement of messages.

The main classes in this package are SMIMESignature and SMIMECipher. SMIMESignature is for signing and verification of MIME messages, whereas SMIMECipher is for encryption and decryption of MIME messages. Appropriately initialized instances of these classes can operate on MIME messages given as instances of MimeMessage defined in the JavaMail API. For signing and encryption, new instances of MimeMessage are generated as a result.

For verification (respectively, decryption) of an S/MIME message, a VerificationResult (respectively, DecryptionResult) instance is returned. From this can be obtained the message with CMS enhancement removed (ie. the original message or "payload") together with CMS information (through EnvelopedData in the case of encrypted messages and SignedData in the case of signed messages. During S/MIME verification, abnormal (but usually, non-critical) conditions may be encountered, and can be accessed through VerificationResult as instances of the Warning interface. In the present version, the only Warning supported is AddressMismatch, indicating a mismatch between a sender address and address(es) in the sender X.509 certificate.