org.bouncycastle.cms

Class CMSSignedData

Known Direct Subclasses:
SMIMESigned

public class CMSSignedData
extends java.lang.Object

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.getCertificatesAndCRLs("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++;
      }   
  }
 

Constructor Summary

CMSSignedData(ContentInfo sigData)
CMSSignedData(InputStream sigData)
base constructor - with encapsulated content
CMSSignedData(byte[] sigBlock)
CMSSignedData(CMSProcessable signedContent, ContentInfo sigData)
CMSSignedData(CMSProcessable signedContent, InputStream sigData)
base constructor
CMSSignedData(CMSProcessable signedContent, byte[] sigBlock)

Method Summary

CertStore
getCertificatesAndCRLs(String type, String provider)
return a CertStore containing the certificates and CRLs associated with this message.
byte[]
getEncoded()
return the ASN.1 encoded representation of this object.
CMSProcessable
getSignedContent()
String
getSignedContentTypeOID()
Return the a string representation of the OID associated with the encapsulated content info structure carried in the signed data.
SignerInformationStore
getSignerInfos()
return the collection of signers that are associated with the signatures for the message.
static CMSSignedData
replaceSigners(CMSSignedData signedData, SignerInformationStore signerInformationStore)
Replace the signerinformation store associated with this CMSSignedData object with the new one passed in.

Constructor Details

CMSSignedData

public CMSSignedData(ContentInfo sigData)


CMSSignedData

public CMSSignedData(InputStream sigData)
            throws CMSException
base constructor - with encapsulated content


CMSSignedData

public CMSSignedData(byte[] sigBlock)
            throws CMSException


CMSSignedData

public CMSSignedData(CMSProcessable signedContent,
                     ContentInfo sigData)


CMSSignedData

public CMSSignedData(CMSProcessable signedContent,
                     InputStream sigData)
            throws CMSException
base constructor

Parameters:
signedContent - the content that was signed.
sigData - the signature object.


CMSSignedData

public CMSSignedData(CMSProcessable signedContent,
                     byte[] sigBlock)
            throws CMSException

Method Details

getCertificatesAndCRLs

public CertStore getCertificatesAndCRLs(String type,
                                        String provider)
            throws NoSuchAlgorithmException,
                   NoSuchProviderException,
                   CMSException
return a CertStore containing the certificates and CRLs associated with this message.


getEncoded

public byte[] getEncoded()
            throws IOException
return the ASN.1 encoded representation of this object.


getSignedContent

public CMSProcessable getSignedContent()


getSignedContentTypeOID

public String getSignedContentTypeOID()
Return the a string representation of the OID associated with the encapsulated content info structure carried in the signed data.

Returns:
the OID for the content type.


getSignerInfos

public SignerInformationStore getSignerInfos()
return the collection of signers that are associated with the signatures for the message.


replaceSigners

public static CMSSignedData replaceSigners(CMSSignedData signedData,
                                           SignerInformationStore signerInformationStore)
Replace the signerinformation store associated with this CMSSignedData object with the new one passed in. You would probably only want to do this if you wanted to change the unsigned attributes associated with a signer, or perhaps delete one.

Parameters:
signedData - the signed data object to be used as a base.
signerInformationStore - the new signer information store to use.

Returns:
a new signed data object.