org.bouncycastle.cms

Class CMSSignedData

public class CMSSignedData extends 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(byte[] sigBlock)
CMSSignedData(CMSProcessable signedContent, byte[] sigBlock)
CMSSignedData(CMSProcessable signedContent, InputStream sigData)
base constructor
CMSSignedData(InputStream sigData)
base constructor - with encapsulated content
CMSSignedData(CMSProcessable signedContent, ContentInfo sigData)
CMSSignedData(ContentInfo sigData)
Method Summary
X509StoregetAttributeCertificates(String type, String provider)
return a X509Store containing the attribute certificates, if any, contained in this message.
X509StoregetCertificates(String type, String provider)
return a X509Store containing the public key certificates, if any, contained in this message.
CertStoregetCertificatesAndCRLs(String type, String provider)
return a CertStore containing the certificates and CRLs associated with this message.
X509StoregetCRLs(String type, String provider)
return a X509Store containing CRLs, if any, contained in this message.
byte[]getEncoded()
return the ASN.1 encoded representation of this object.
CMSProcessablegetSignedContent()
StringgetSignedContentTypeOID()
Return the a string representation of the OID associated with the encapsulated content info structure carried in the signed data.
SignerInformationStoregetSignerInfos()
return the collection of signers that are associated with the signatures for the message.
intgetVersion()
Return the version number for this object
static CMSSignedDatareplaceCertificatesAndCRLs(CMSSignedData signedData, CertStore certsAndCrls)
Replace the certificate and CRL information associated with this CMSSignedData object with the new one passed in.
static CMSSignedDatareplaceSigners(CMSSignedData signedData, SignerInformationStore signerInformationStore)
Replace the signerinformation store associated with this CMSSignedData object with the new one passed in.

Constructor Detail

CMSSignedData

public CMSSignedData(byte[] sigBlock)

CMSSignedData

public CMSSignedData(CMSProcessable signedContent, byte[] sigBlock)

CMSSignedData

public CMSSignedData(CMSProcessable signedContent, InputStream sigData)
base constructor

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

CMSSignedData

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

CMSSignedData

public CMSSignedData(CMSProcessable signedContent, ContentInfo sigData)

CMSSignedData

public CMSSignedData(ContentInfo sigData)

Method Detail

getAttributeCertificates

public X509Store getAttributeCertificates(String type, String provider)
return a X509Store containing the attribute certificates, if any, contained in this message.

Parameters: type type of store to create provider provider to use

Returns: a store of attribute certificates

Throws: NoSuchProviderException if the provider requested isn't available. NoSuchStoreException if the store type isn't available. CMSException if a general exception prevents creation of the X509Store

getCertificates

public X509Store getCertificates(String type, String provider)
return a X509Store containing the public key certificates, if any, contained in this message.

Parameters: type type of store to create provider provider to use

Returns: a store of public key certificates

Throws: NoSuchProviderException if the provider requested isn't available. NoSuchStoreException if the store type isn't available. CMSException if a general exception prevents creation of the X509Store

getCertificatesAndCRLs

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

Throws: NoSuchProviderException if the provider requested isn't available. NoSuchAlgorithmException if the cert store isn't available. CMSException if a general exception prevents creation of the CertStore

getCRLs

public X509Store getCRLs(String type, String provider)
return a X509Store containing CRLs, if any, contained in this message.

Parameters: type type of store to create provider provider to use

Returns: a store of CRLs

Throws: NoSuchProviderException if the provider requested isn't available. NoSuchStoreException if the store type isn't available. CMSException if a general exception prevents creation of the X509Store

getEncoded

public byte[] getEncoded()
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.

getVersion

public int getVersion()
Return the version number for this object

replaceCertificatesAndCRLs

public static CMSSignedData replaceCertificatesAndCRLs(CMSSignedData signedData, CertStore certsAndCrls)
Replace the certificate and CRL information associated with this CMSSignedData object with the new one passed in.

Parameters: signedData the signed data object to be used as a base. certsAndCrls the new certificates and CRLs to be used.

Returns: a new signed data object.

Throws: CMSException if there is an error processing the CertStore

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.