Class 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, java.lang.String defaultContentTransferEncoding)
      base constructor with settable contentTransferEncoding
      SMIMESigned​(javax.mail.Part message)
      base constructor for a signed message with encapsulated content.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      javax.mail.internet.MimeBodyPart getContent()
      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.
      java.lang.Object getContentWithSignature()
      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

        getAttributeCertificates, getCertificates, getCRLs, getDigestAlgorithmIDs, getEncoded, getEncoded, getOtherRevocationInfo, getSignedContent, getSignedContentTypeOID, getSignerInfos, getVersion, isCertificateManagementMessage, isDetachedSignature, replaceCertificatesAndCRLs, replaceSigners, toASN1Structure, verifySignatures, verifySignatures
      • Methods inherited from class java.lang.Object

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

      • 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,
                           java.lang.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 Detail

      • 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,
                                                                       java.io.IOException
        Return the content that was signed as a mime message.
        Parameters:
        session -
        Returns:
        a MimeMessage holding the content.
        Throws:
        javax.mail.MessagingException
        java.io.IOException
      • getContentWithSignature

        public java.lang.Object getContentWithSignature()
        return the content that was signed - depending on whether this was unencapsulated or not it will return a MimeMultipart or a MimeBodyPart