Bouncy Castle Cryptography Library 1.45

## org.bouncycastle.mail.smime
Class SMIMESigned

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

    public class SMIMESigned

extends 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
`SMIMESigned(MimeMultipart message)` base constructor using a defaultContentTransferEncoding of 7bit
`SMIMESigned(MimeMultipart message, java.lang.String defaultContentTransferEncoding)` base constructor with settable contentTransferEncoding
`SMIMESigned(Part message)` base constructor for a signed message with encapsulated content.

Method Summary
`MimeBodyPart` `getContent()` return the content that was signed.
`MimeMessage` `getContentAsMimeMessage(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, getAttributeCertificates, getCertificates, getCertificates, getCertificatesAndCRLs, getCertificatesAndCRLs, getContentInfo, getCRLs, getCRLs, getEncoded, getSignedContent, getSignedContentTypeOID, getSignerInfos, getVersion, replaceCertificatesAndCRLs, replaceSigners`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SMIMESigned

    public SMIMESigned(MimeMultipart message)
                throws MessagingException,
                       CMSException

  base constructor using a defaultContentTransferEncoding of 7bit

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

### SMIMESigned

    public SMIMESigned(MimeMultipart message,
                       java.lang.String defaultContentTransferEncoding)
                throws MessagingException,
                       CMSException

  base constructor with settable contentTransferEncoding

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

### SMIMESigned

    public SMIMESigned(Part message)
                throws MessagingException,
                       CMSException,
                       SMIMEException

  base constructor for a signed message with encapsulated content.

  Throws:
    `MessagingException` - 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.

Method Detail

### getContent

    public MimeBodyPart getContent()

  return the content that was signed.

### getContentAsMimeMessage

    public MimeMessage getContentAsMimeMessage(Session session)
                                        throws MessagingException,
                                               java.io.IOException

  Return the content that was signed as a mime message.

  Parameters:
    `session` -
  Returns:
    a MimeMessage holding the content.
  Throws:
    `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

Bouncy Castle Cryptography Library 1.45