Class SMIMESigned

java.lang.Object
org.bouncycastle.cms.CMSSignedData
org.bouncycastle.mail.smime.SMIMESigned
All Implemented Interfaces:
org.bouncycastle.util.Encodable

public class SMIMESigned extends org.bouncycastle.cms.CMSSignedData
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".

  • Constructor Summary

    Constructors
    Constructor
    Description
    SMIMESigned(javax.mail.internet.MimeMultipart message)
    base constructor using a defaultContentTransferEncoding of 7bit
    SMIMESigned(javax.mail.internet.MimeMultipart message, String defaultContentTransferEncoding)
    base constructor with settable contentTransferEncoding
    SMIMESigned(javax.mail.Part message)
    base constructor for a signed message with encapsulated content.
  • Method Summary

    Modifier and Type
    Method
    Description
    javax.mail.internet.MimeBodyPart
    return the content that was signed.
    javax.mail.internet.MimeMessage
    getContentAsMimeMessage(javax.mail.Session session)
    Return the content that was signed as a mime message.
    return the content that was signed - depending on whether this was unencapsulated or not it will return a MimeMultipart or a MimeBodyPart

    Methods inherited from class org.bouncycastle.cms.CMSSignedData

    addDigestAlgorithm, addDigestAlgorithm, getAttributeCertificates, getCertificates, getCRLs, getDigestAlgorithmIDs, getEncoded, getEncoded, getOtherRevocationInfo, getSignedContent, getSignedContentTypeOID, getSignerInfos, getVersion, isCertificateManagementMessage, isDetachedSignature, replaceCertificatesAndCRLs, replaceSigners, replaceSigners, toASN1Structure, verifySignatures, verifySignatures

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • SMIMESigned

      public SMIMESigned(javax.mail.internet.MimeMultipart message) throws javax.mail.MessagingException, org.bouncycastle.cms.CMSException
      base constructor using a defaultContentTransferEncoding of 7bit
      Throws:
      javax.mail.MessagingException - on an error extracting the signature or otherwise processing the message.
      org.bouncycastle.cms.CMSException - if some other problem occurs.
    • SMIMESigned

      public SMIMESigned(javax.mail.internet.MimeMultipart message, String defaultContentTransferEncoding) throws javax.mail.MessagingException, org.bouncycastle.cms.CMSException
      base constructor with settable contentTransferEncoding
      Parameters:
      message - the signed message
      defaultContentTransferEncoding - new default to use
      Throws:
      javax.mail.MessagingException - on an error extracting the signature or otherwise processing the message.
      org.bouncycastle.cms.CMSException - if some other problem occurs.
    • SMIMESigned

      public SMIMESigned(javax.mail.Part message) throws javax.mail.MessagingException, org.bouncycastle.cms.CMSException, SMIMEException
      base constructor for a signed message with encapsulated content.
      Throws:
      javax.mail.MessagingException - on an error extracting the signature or otherwise processing the message.
      SMIMEException - if the body part encapsulated in the message cannot be extracted.
      org.bouncycastle.cms.CMSException - if some other problem occurs.
  • Method Details

    • getContent

      public javax.mail.internet.MimeBodyPart getContent()
      return the content that was signed.
    • getContentAsMimeMessage

      public javax.mail.internet.MimeMessage getContentAsMimeMessage(javax.mail.Session session) throws javax.mail.MessagingException, IOException
      Return the content that was signed as a mime message.
      Parameters:
      session -
      Returns:
      a MimeMessage holding the content.
      Throws:
      javax.mail.MessagingException
      IOException
    • getContentWithSignature

      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