public class

SMIMESigned

extends CMSSignedData
java.lang.Object
   ↳ org.bouncycastle.cms.CMSSignedData
     ↳ org.bouncycastle.mail.smime.SMIMESigned

Class Overview

general class for handling a pkcs7-signature message.

A simple example of usage - note, in the example below the validity of the certificate isn't verified, just the fact that one of the certs matches the given signer...

  CertStore               certs = s.getCertificates("Collection", "BC");
  SignerInformationStore  signers = s.getSignerInfos();
  Collection              c = signers.getSigners();
  Iterator                it = c.iterator();
  
  while (it.hasNext())
  {
      SignerInformation   signer = (SignerInformation)it.next();
      Collection          certCollection = certs.getCertificates(signer.getSID());
  
      Iterator        certIt = certCollection.iterator();
      X509Certificate cert = (X509Certificate)certIt.next();
  
      if (signer.verify(cert.getPublicKey()))
      {
          verified++;
      }   
  }
 

Note: if you are using this class with AS2 or some other protocol that does not use 7bit as the default content transfer encoding you will need to use the constructor that allows you to specify the default content transfer encoding, such as "binary".

Summary

Public Constructors
SMIMESigned(MimeMultipart message)
base constructor using a defaultContentTransferEncoding of 7bit
SMIMESigned(MimeMultipart message, String defaultContentTransferEncoding)
base constructor with settable contentTransferEncoding
SMIMESigned(Part message)
base constructor for a signed message with encapsulated content.
Public Methods
MimeBodyPart getContent()
return the content that was signed.
MimeMessage getContentAsMimeMessage(Session session)
Return the content that was signed as a mime message.
Object getContentWithSignature()
return the content that was signed - depending on whether this was unencapsulated or not it will return a MimeMultipart or a MimeBodyPart
[Expand]
Inherited Methods
From class org.bouncycastle.cms.CMSSignedData
From class java.lang.Object

Public Constructors

public SMIMESigned (MimeMultipart message)

base constructor using a defaultContentTransferEncoding of 7bit

Throws
on an error extracting the signature or otherwise processing the message.
CMSException if some other problem occurs.
MessagingException

public SMIMESigned (MimeMultipart message, String defaultContentTransferEncoding)

base constructor with settable contentTransferEncoding

Parameters
message the signed message
defaultContentTransferEncoding new default to use
Throws
on an error extracting the signature or otherwise processing the message.
CMSException if some other problem occurs.
MessagingException

public SMIMESigned (Part message)

base constructor for a signed message with encapsulated content.

Throws
on an error extracting the signature or otherwise processing the message.
SMIMEException if the body part encapsulated in the message cannot be extracted.
CMSException if some other problem occurs.
MessagingException

Public Methods

public MimeBodyPart getContent ()

return the content that was signed.

public MimeMessage getContentAsMimeMessage (Session session)

Return the content that was signed as a mime message.

Returns
  • a MimeMessage holding the content.
Throws
IOException
MessagingException

public Object getContentWithSignature ()

return the content that was signed - depending on whether this was unencapsulated or not it will return a MimeMultipart or a MimeBodyPart