Using the Abstract Class SmimeObject

6-10 Oracle Fusion Middleware Reference for Oracle Security Developer Tools

6.3.3 Using the Oracle SMIME Classes

This section describes how to use the Oracle SMIME SDK to work with multi-part signed messages, create and open digital envelopes, and implement Enhanced Security Services ESS. It covers these topics: ■ Using the Abstract Class SmimeObject ■ Signing Messages ■ Creating MultipartSigned Entities ■ Creating Digital Envelopes ■ Creating Certificates-Only Messages ■ Reading Messages ■ Authenticating Signed Messages ■ Opening Digital Envelopes Encrypted Messages ■ Adding Enhanced Security Services ESS

6.3.3.1 Using the Abstract Class SmimeObject

SmimeObject is an abstract class representing a fundamental SMIME message content entity. Subclasses of SmimeObject include : ■ SmimeSigned ■ SmimeEnveloped ■ SmimeMultipartSigned ■ SmimeSignedReceipt, and ■ SmimeCompressed One of the characteristics of SmimeObject implementations is that they know their own MIME type -- that is, they implement the generateContentType method. Table 6–1 Classes in the oracle.security.crypto.smime.ess Package Class Description ContentHints Content hints ContentReference Content reference EquivalentLabels ESS EquivalentLabels ESSSecurityLabel An ESS security label MLData Represents the MLData element which is used in the MLExpansionHistory attribute MLExpansionHistory Mailing list expansion history ReceiptRequest An ESS Receipt Request ReceiptRequest.AllOrFirstTier An AllOrFirstTier is a part of the ReceiptsFrom field of a ReceiptRequest SigningCertificate An ESS Signing Certificate Oracle SMIME 6-11 Thus, to place such an object inside a MIME message or body part, follow the same outline that was used in the SmimeSigned example: 1. Create the object. 2. Invoke generateContentType on the object to obtain a MIME type. 3. Pass the object, together with the generated content type, to the setContent method of a MimeMessage or MimeBodyPart object. The SmimeObject class provides another version of the generateContentType method, which takes a boolean parameter. When given true as a parameter, generateContentType behaves exactly as in the case of no argument. When given false as a parameter, generateContentType returns the older MIME types required by certain mail clients, including Netscape Communicator 4.0.4. Specifically: ■ applicationpkcs7-mime becomes applicationx-pkcs7-mime ■ applicationpkcs7-signature becomes applicationx-pkcs7-signature

6.3.3.2 Signing Messages