Bouncy Castle Cryptography Library 1.44

org.bouncycastle.cms
Class CMSSignedDataGenerator

java.lang.Object
  extended by org.bouncycastle.cms.CMSSignedGenerator
      extended by org.bouncycastle.cms.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
_certs, _crls, _digests, _signers, 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, rand
 
Constructor Summary
CMSSignedDataGenerator()
          base constructor
CMSSignedDataGenerator(java.security.SecureRandom rand)
          constructor allowing specific source of randomness
 
Method Summary
 void addSigner(java.security.PrivateKey key, byte[] subjectKeyID, java.lang.String digestOID)
          add a signer - no attributes other than the default ones will be provided here.
 void addSigner(java.security.PrivateKey key, byte[] subjectKeyID, java.lang.String digestOID, org.bouncycastle.asn1.cms.AttributeTable signedAttr, org.bouncycastle.asn1.cms.AttributeTable unsignedAttr)
          add a signer with extra signed/unsigned attributes.
 void addSigner(java.security.PrivateKey key, byte[] subjectKeyID, java.lang.String digestOID, CMSAttributeTableGenerator signedAttrGen, CMSAttributeTableGenerator unsignedAttrGen)
          add a signer with extra signed/unsigned attributes based on generators.
 void addSigner(java.security.PrivateKey key, byte[] subjectKeyID, java.lang.String encryptionOID, java.lang.String digestOID)
          add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be provided here.
 void addSigner(java.security.PrivateKey key, byte[] subjectKeyID, java.lang.String encryptionOID, java.lang.String digestOID, org.bouncycastle.asn1.cms.AttributeTable signedAttr, org.bouncycastle.asn1.cms.AttributeTable unsignedAttr)
          add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
 void addSigner(java.security.PrivateKey key, byte[] subjectKeyID, java.lang.String encryptionOID, java.lang.String digestOID, CMSAttributeTableGenerator signedAttrGen, CMSAttributeTableGenerator unsignedAttrGen)
          add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators.
 void addSigner(java.security.PrivateKey key, java.security.cert.X509Certificate cert, java.lang.String digestOID)
          add a signer - no attributes other than the default ones will be provided here.
 void addSigner(java.security.PrivateKey key, java.security.cert.X509Certificate cert, java.lang.String digestOID, org.bouncycastle.asn1.cms.AttributeTable signedAttr, org.bouncycastle.asn1.cms.AttributeTable unsignedAttr)
          add a signer with extra signed/unsigned attributes.
 void addSigner(java.security.PrivateKey key, java.security.cert.X509Certificate cert, java.lang.String digestOID, CMSAttributeTableGenerator signedAttrGen, CMSAttributeTableGenerator unsignedAttrGen)
          add a signer with extra signed/unsigned attributes based on generators.
 void addSigner(java.security.PrivateKey key, java.security.cert.X509Certificate cert, java.lang.String encryptionOID, java.lang.String digestOID)
          add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be provided here.
 void addSigner(java.security.PrivateKey key, java.security.cert.X509Certificate cert, java.lang.String encryptionOID, java.lang.String digestOID, org.bouncycastle.asn1.cms.AttributeTable signedAttr, org.bouncycastle.asn1.cms.AttributeTable unsignedAttr)
          add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
 void addSigner(java.security.PrivateKey key, java.security.cert.X509Certificate cert, java.lang.String encryptionOID, java.lang.String digestOID, CMSAttributeTableGenerator signedAttrGen, CMSAttributeTableGenerator unsignedAttrGen)
          add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators.
 CMSSignedData generate(CMSProcessable content, boolean encapsulate, java.security.Provider 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".
 CMSSignedData generate(CMSProcessable content, boolean encapsulate, java.lang.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".
 CMSSignedData generate(CMSProcessable content, java.security.Provider sigProvider)
          generate a signed object that for a CMS Signed Data object using the given provider.
 CMSSignedData generate(CMSProcessable content, java.lang.String sigProvider)
          generate a signed object that for a CMS Signed Data object using the given provider.
 CMSSignedData generate(java.lang.String eContentType, CMSProcessable content, boolean encapsulate, java.security.Provider 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(java.lang.String eContentType, CMSProcessable content, boolean encapsulate, java.security.Provider sigProvider, boolean addDefaultAttributes)
          Similar method to the other generate methods.
 CMSSignedData generate(java.lang.String eContentType, CMSProcessable content, boolean encapsulate, java.lang.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(java.lang.String eContentType, CMSProcessable content, boolean encapsulate, java.lang.String sigProvider, boolean addDefaultAttributes)
          Similar method to the other generate methods.
 SignerInformationStore generateCounterSigners(SignerInformation signer, java.security.Provider sigProvider)
          generate a set of one or more SignerInformation objects representing counter signatures on the passed in SignerInformation object.
 SignerInformationStore generateCounterSigners(SignerInformation signer, java.lang.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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CMSSignedDataGenerator

public CMSSignedDataGenerator()
base constructor


CMSSignedDataGenerator

public CMSSignedDataGenerator(java.security.SecureRandom rand)
constructor allowing specific source of randomness

Parameters:
rand - instance of SecureRandom to use
Method Detail

addSigner

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

Parameters:
key - signing key to use
cert - certificate containing corresponding public key
digestOID - digest algorithm OID
Throws:
java.lang.IllegalArgumentException

addSigner

public void addSigner(java.security.PrivateKey key,
                      java.security.cert.X509Certificate cert,
                      java.lang.String encryptionOID,
                      java.lang.String digestOID)
               throws java.lang.IllegalArgumentException
add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be provided here.

Parameters:
key - signing key to use
cert - certificate containing corresponding public key
encryptionOID - digest encryption algorithm OID
digestOID - digest algorithm OID
Throws:
java.lang.IllegalArgumentException

addSigner

public void addSigner(java.security.PrivateKey key,
                      byte[] subjectKeyID,
                      java.lang.String digestOID)
               throws java.lang.IllegalArgumentException
add a signer - no attributes other than the default ones will be provided here.

Throws:
java.lang.IllegalArgumentException

addSigner

public void addSigner(java.security.PrivateKey key,
                      byte[] subjectKeyID,
                      java.lang.String encryptionOID,
                      java.lang.String digestOID)
               throws java.lang.IllegalArgumentException
add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be provided here.

Throws:
java.lang.IllegalArgumentException

addSigner

public void addSigner(java.security.PrivateKey key,
                      java.security.cert.X509Certificate cert,
                      java.lang.String digestOID,
                      org.bouncycastle.asn1.cms.AttributeTable signedAttr,
                      org.bouncycastle.asn1.cms.AttributeTable unsignedAttr)
               throws java.lang.IllegalArgumentException
add a signer with extra signed/unsigned attributes.

Parameters:
key - signing key to use
cert - certificate containing corresponding public key
digestOID - digest algorithm OID
signedAttr - table of attributes to be included in signature
unsignedAttr - table of attributes to be included as unsigned
Throws:
java.lang.IllegalArgumentException

addSigner

public void addSigner(java.security.PrivateKey key,
                      java.security.cert.X509Certificate cert,
                      java.lang.String encryptionOID,
                      java.lang.String digestOID,
                      org.bouncycastle.asn1.cms.AttributeTable signedAttr,
                      org.bouncycastle.asn1.cms.AttributeTable unsignedAttr)
               throws java.lang.IllegalArgumentException
add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.

Parameters:
key - signing key to use
cert - certificate containing corresponding public key
encryptionOID - digest encryption algorithm OID
digestOID - digest algorithm OID
signedAttr - table of attributes to be included in signature
unsignedAttr - table of attributes to be included as unsigned
Throws:
java.lang.IllegalArgumentException

addSigner

public void addSigner(java.security.PrivateKey key,
                      byte[] subjectKeyID,
                      java.lang.String digestOID,
                      org.bouncycastle.asn1.cms.AttributeTable signedAttr,
                      org.bouncycastle.asn1.cms.AttributeTable unsignedAttr)
               throws java.lang.IllegalArgumentException
add a signer with extra signed/unsigned attributes.

Parameters:
key - signing key to use
subjectKeyID - subjectKeyID of corresponding public key
digestOID - digest algorithm OID
signedAttr - table of attributes to be included in signature
unsignedAttr - table of attributes to be included as unsigned
Throws:
java.lang.IllegalArgumentException

addSigner

public void addSigner(java.security.PrivateKey key,
                      byte[] subjectKeyID,
                      java.lang.String encryptionOID,
                      java.lang.String digestOID,
                      org.bouncycastle.asn1.cms.AttributeTable signedAttr,
                      org.bouncycastle.asn1.cms.AttributeTable unsignedAttr)
               throws java.lang.IllegalArgumentException
add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.

Parameters:
key - signing key to use
subjectKeyID - subjectKeyID of corresponding public key
encryptionOID - digest encryption algorithm OID
digestOID - digest algorithm OID
signedAttr - table of attributes to be included in signature
unsignedAttr - table of attributes to be included as unsigned
Throws:
java.lang.IllegalArgumentException

addSigner

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

Throws:
java.lang.IllegalArgumentException

addSigner

public void addSigner(java.security.PrivateKey key,
                      java.security.cert.X509Certificate cert,
                      java.lang.String encryptionOID,
                      java.lang.String digestOID,
                      CMSAttributeTableGenerator signedAttrGen,
                      CMSAttributeTableGenerator unsignedAttrGen)
               throws java.lang.IllegalArgumentException
add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators.

Throws:
java.lang.IllegalArgumentException

addSigner

public void addSigner(java.security.PrivateKey key,
                      byte[] subjectKeyID,
                      java.lang.String digestOID,
                      CMSAttributeTableGenerator signedAttrGen,
                      CMSAttributeTableGenerator unsignedAttrGen)
               throws java.lang.IllegalArgumentException
add a signer with extra signed/unsigned attributes based on generators.

Throws:
java.lang.IllegalArgumentException

addSigner

public void addSigner(java.security.PrivateKey key,
                      byte[] subjectKeyID,
                      java.lang.String encryptionOID,
                      java.lang.String digestOID,
                      CMSAttributeTableGenerator signedAttrGen,
                      CMSAttributeTableGenerator unsignedAttrGen)
               throws java.lang.IllegalArgumentException
add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators.

Throws:
java.lang.IllegalArgumentException

generate

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

Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
CMSException

generate

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

Throws:
java.security.NoSuchAlgorithmException
CMSException

generate

public CMSSignedData generate(java.lang.String eContentType,
                              CMSProcessable content,
                              boolean encapsulate,
                              java.lang.String sigProvider)
                       throws java.security.NoSuchAlgorithmException,
                              java.security.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.

Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
CMSException

generate

public CMSSignedData generate(java.lang.String eContentType,
                              CMSProcessable content,
                              boolean encapsulate,
                              java.security.Provider sigProvider)
                       throws java.security.NoSuchAlgorithmException,
                              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.

Throws:
java.security.NoSuchAlgorithmException
CMSException

generate

public CMSSignedData generate(java.lang.String eContentType,
                              CMSProcessable content,
                              boolean encapsulate,
                              java.lang.String sigProvider,
                              boolean addDefaultAttributes)
                       throws java.security.NoSuchAlgorithmException,
                              java.security.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.

Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
CMSException

generate

public CMSSignedData generate(java.lang.String eContentType,
                              CMSProcessable content,
                              boolean encapsulate,
                              java.security.Provider sigProvider,
                              boolean addDefaultAttributes)
                       throws java.security.NoSuchAlgorithmException,
                              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.

Throws:
java.security.NoSuchAlgorithmException
CMSException

generate

public CMSSignedData generate(CMSProcessable content,
                              boolean encapsulate,
                              java.lang.String sigProvider)
                       throws java.security.NoSuchAlgorithmException,
                              java.security.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".

Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
CMSException

generate

public CMSSignedData generate(CMSProcessable content,
                              boolean encapsulate,
                              java.security.Provider sigProvider)
                       throws java.security.NoSuchAlgorithmException,
                              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".

Throws:
java.security.NoSuchAlgorithmException
CMSException

generateCounterSigners

public SignerInformationStore generateCounterSigners(SignerInformation signer,
                                                     java.security.Provider sigProvider)
                                              throws java.security.NoSuchAlgorithmException,
                                                     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.
Throws:
java.security.NoSuchAlgorithmException
CMSException

generateCounterSigners

public SignerInformationStore generateCounterSigners(SignerInformation signer,
                                                     java.lang.String sigProvider)
                                              throws java.security.NoSuchAlgorithmException,
                                                     java.security.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.
Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
CMSException

Bouncy Castle Cryptography Library 1.44