Class CMSSignedDataGenerator

java.lang.Object
org.bouncycastle.cms.CMSSignedGenerator
org.bouncycastle.cms.CMSSignedDataGenerator

public class CMSSignedDataGenerator extends CMSSignedGenerator
general class for generating a pkcs7-signature message.

A simple example of usage, generating a detached signature.

     List             certList = new ArrayList();
     CMSTypedData     msg = new CMSProcessableByteArray("Hello world!".getBytes());

     certList.add(signCert);

     Store           certs = new JcaCertStore(certList);

     CMSSignedDataGenerator gen = new CMSSignedDataGenerator();
     ContentSigner sha1Signer = new JcaContentSignerBuilder("SHA1withRSA").setProvider("BC").build(signKP.getPrivate());

     gen.addSignerInfoGenerator(
               new JcaSignerInfoGeneratorBuilder(
                    new JcaDigestCalculatorProviderBuilder().setProvider("BC").build())
                    .build(sha1Signer, signCert));

     gen.addCertificates(certs);

     CMSSignedData sigData = gen.generate(msg, false);
  • Constructor Details

    • CMSSignedDataGenerator

      public CMSSignedDataGenerator()
      base constructor
    • CMSSignedDataGenerator

      public CMSSignedDataGenerator(DigestAlgorithmIdentifierFinder digestAlgIdFinder)
      base constructor with a custom DigestAlgorithmIdentifierFinder
  • Method Details

    • setDefiniteLengthEncoding

      public void setDefiniteLengthEncoding(boolean isDefiniteLength)
      Specify use of definite length rather than indefinite length encoding.
      Parameters:
      isDefiniteLength - true use definite length, false use indefinite (default false).
    • generate

      public CMSSignedData generate(CMSTypedData content) throws CMSException
      Generate a CMS Signed Data object carrying a detached CMS signature.
      Parameters:
      content - the content to be signed.
      Throws:
      CMSException
    • generate

      public CMSSignedData generate(CMSTypedData content, boolean encapsulate) throws CMSException
      Generate a CMS Signed Data object which can be carrying a detached CMS signature, or have encapsulated data, depending on the value of the encapsulated parameter.
      Parameters:
      content - the content to be signed.
      encapsulate - true if the content should be encapsulated in the signature, false otherwise.
      Throws:
      CMSException
    • generateCounterSigners

      public SignerInformationStore generateCounterSigners(SignerInformation signer) throws CMSException
      generate a set of one or more SignerInformation objects representing counter signatures on the passed in SignerInformation object.
      Parameters:
      signer - the signer to be countersigned
      Returns:
      a store containing the signers.
      Throws:
      CMSException