org.bouncycastle.cms

Class CMSSignedDataGenerator


public class CMSSignedDataGenerator
extends CMSSignedGenerator

general class for generating a pkcs7-signature message.

A simple example of usage.

      CertStore               certs...
      CMSSignedDataGenerator    gen = new CMSSignedDataGenerator();

      gen.addSigner(privKey, cert, CMSSignedGenerator.DIGEST_SHA1);
      gen.addCertificatesAndCRLs(certs);

      CMSSignedData           data = gen.generate(content, "BC");
 

Field Summary

Fields inherited from class org.bouncycastle.cms.CMSSignedGenerator

DATA, DIGEST_GOST3411, DIGEST_MD5, DIGEST_RIPEMD128, DIGEST_RIPEMD160, DIGEST_RIPEMD256, DIGEST_SHA1, DIGEST_SHA224, DIGEST_SHA256, DIGEST_SHA384, DIGEST_SHA512, ENCRYPTION_DSA, ENCRYPTION_ECDSA, ENCRYPTION_ECGOST3410, ENCRYPTION_GOST3410, ENCRYPTION_RSA, ENCRYPTION_RSA_PSS, _certs, _crls, _digests, _signers, rand

Constructor Summary

CMSSignedDataGenerator()
base constructor
CMSSignedDataGenerator(SecureRandom rand)
constructor allowing specific source of randomness

Method Summary

void
addSigner(PrivateKey key, X509Certificate cert, String digestOID)
add a signer - no attributes other than the default ones will be provided here.
void
addSigner(PrivateKey key, X509Certificate cert, String digestOID, AttributeTable signedAttr, AttributeTable unsignedAttr)
add a signer with extra signed/unsigned attributes.
void
addSigner(PrivateKey key, X509Certificate cert, String digestOID, CMSAttributeTableGenerator signedAttrGen, CMSAttributeTableGenerator unsignedAttrGen)
add a signer with extra signed/unsigned attributes based on generators.
CMSSignedData
generate(String signedContentType, CMSProcessable content, boolean encapsulate, String sigProvider)
generate a signed object that for a CMS Signed Data object using the given provider - if encapsulate is true a copy of the message will be included in the signature.
CMSSignedData
generate(String signedContentType, CMSProcessable content, boolean encapsulate, String sigProvider, boolean addDefaultAttributes)
Similar method to the other generate methods.
CMSSignedData
generate(CMSProcessable content, String sigProvider)
generate a signed object that for a CMS Signed Data object using the given provider.
CMSSignedData
generate(CMSProcessable content, boolean encapsulate, String sigProvider)
generate a signed object that for a CMS Signed Data object using the given provider - if encapsulate is true a copy of the message will be included in the signature with the default content type "data".
SignerInformationStore
generateCounterSigners(SignerInformation signer, String sigProvider)
generate a set of one or more SignerInformation objects representing counter signatures on the passed in SignerInformation object.

Methods inherited from class org.bouncycastle.cms.CMSSignedGenerator

addAttributeCertificates, addCertificatesAndCRLs, addSigners, getAttributeSet, getBaseParameters, getEncAlgorithmIdentifier, getEncOID, getGeneratedDigests

Constructor Details

CMSSignedDataGenerator

public CMSSignedDataGenerator()
base constructor

CMSSignedDataGenerator

public CMSSignedDataGenerator(SecureRandom rand)
constructor allowing specific source of randomness
Parameters:
rand - instance of SecureRandom to use

Method Details

addSigner

public void addSigner(PrivateKey key,
                      X509Certificate cert,
                      String digestOID)
            throws IllegalArgumentException
add a signer - no attributes other than the default ones will be provided here.

addSigner

public void addSigner(PrivateKey key,
                      X509Certificate cert,
                      String digestOID,
                      AttributeTable signedAttr,
                      AttributeTable unsignedAttr)
            throws IllegalArgumentException
add a signer with extra signed/unsigned attributes.

addSigner

public void addSigner(PrivateKey key,
                      X509Certificate cert,
                      String digestOID,
                      CMSAttributeTableGenerator signedAttrGen,
                      CMSAttributeTableGenerator unsignedAttrGen)
            throws IllegalArgumentException
add a signer with extra signed/unsigned attributes based on generators.

generate

public CMSSignedData generate(String signedContentType,
                              CMSProcessable content,
                              boolean encapsulate,
                              String sigProvider)
            throws NoSuchAlgorithmException,
                   NoSuchProviderException,
                   CMSException
generate a signed object that for a CMS Signed Data object using the given provider - if encapsulate is true a copy of the message will be included in the signature. The content type is set according to the OID represented by the string signedContentType.

generate

public CMSSignedData generate(String signedContentType,
                              CMSProcessable content,
                              boolean encapsulate,
                              String sigProvider,
                              boolean addDefaultAttributes)
            throws NoSuchAlgorithmException,
                   NoSuchProviderException,
                   CMSException
Similar method to the other generate methods. The additional argument addDefaultAttributes indicates whether or not a default set of signed attributes need to be added automatically. If the argument is set to false, no attributes will get added at all.

generate

public CMSSignedData generate(CMSProcessable content,
                              String sigProvider)
            throws NoSuchAlgorithmException,
                   NoSuchProviderException,
                   CMSException
generate a signed object that for a CMS Signed Data object using the given provider.

generate

public CMSSignedData generate(CMSProcessable content,
                              boolean encapsulate,
                              String sigProvider)
            throws NoSuchAlgorithmException,
                   NoSuchProviderException,
                   CMSException
generate a signed object that for a CMS Signed Data object using the given provider - if encapsulate is true a copy of the message will be included in the signature with the default content type "data".

generateCounterSigners

public SignerInformationStore generateCounterSigners(SignerInformation signer,
                                                     String sigProvider)
            throws NoSuchAlgorithmException,
                   NoSuchProviderException,
                   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
sigProvider - the provider to be used for counter signing.
Returns:
a store containing the signers.