SignerInformation (Bouncy Castle Library 1.54 API Specification)
Date: 2015-12-29

org.bouncycastle.cms

## Class SignerInformation

- java.lang.Object
- - org.bouncycastle.cms.SignerInformation

-     public class SignerInformation
      extends java.lang.Object

  an expanded SignerInfo block from a CMS Signed message

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected org.bouncycastle.asn1.x509.AlgorithmIdentifier` | `digestAlgorithm`
    `protected org.bouncycastle.asn1.x509.AlgorithmIdentifier` | `encryptionAlgorithm`
    `protected org.bouncycastle.asn1.cms.SignerInfo` | `info`
    `protected org.bouncycastle.asn1.ASN1Set` | `signedAttributeSet`
    `protected org.bouncycastle.asn1.ASN1Set` | `unsignedAttributeSet`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `SignerInformation(SignerInformation baseInfo)` Protected constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static SignerInformation` | `addCounterSigners(SignerInformation signerInformation, SignerInformationStore counterSigners)` Return a signer information object with passed in SignerInformationStore representing counter signatures attached as an unsigned attribute.
    `byte[]` | `getContentDigest()` return the content digest that was calculated during verification.
    `org.bouncycastle.asn1.ASN1ObjectIdentifier` | `getContentType()`
    `SignerInformationStore` | `getCounterSignatures()` Return a SignerInformationStore containing the counter signatures attached to this signer.
    `java.lang.String` | `getDigestAlgOID()` return the object identifier for the signature.
    `org.bouncycastle.asn1.x509.AlgorithmIdentifier` | `getDigestAlgorithmID()`
    `byte[]` | `getDigestAlgParams()` return the signature parameters, or null if there aren't any.
    `byte[]` | `getEncodedSignedAttributes()` return the DER encoding of the signed attributes.
    `java.lang.String` | `getEncryptionAlgOID()` return the object identifier for the signature.
    `byte[]` | `getEncryptionAlgParams()` return the signature/encryption algorithm parameters, or null if there aren't any.
    `SignerId` | `getSID()`
    `byte[]` | `getSignature()` return the encoded signature
    `org.bouncycastle.asn1.cms.AttributeTable` | `getSignedAttributes()` return a table of the signed attributes - indexed by the OID of the attribute.
    `org.bouncycastle.asn1.cms.AttributeTable` | `getUnsignedAttributes()` return a table of the unsigned attributes indexed by the OID of the attribute.
    `int` | `getVersion()` return the version number for this objects underlying SignerInfo structure.
    `boolean` | `isCounterSignature()`
    `static SignerInformation` | `replaceUnsignedAttributes(SignerInformation signerInformation, org.bouncycastle.asn1.cms.AttributeTable unsignedAttributes)` Return a signer information object with the passed in unsigned attributes replacing the ones that are current associated with the object passed in.
    `org.bouncycastle.asn1.cms.SignerInfo` | `toASN1Structure()` Return the underlying ASN.1 object defining this SignerInformation object.
    `boolean` | `verify(SignerInformationVerifier verifier)` Verify that the given verifier can successfully verify the signature on this SignerInformation object.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### info

          protected final org.bouncycastle.asn1.cms.SignerInfo info

    - #### digestAlgorithm

          protected final org.bouncycastle.asn1.x509.AlgorithmIdentifier digestAlgorithm

    - #### encryptionAlgorithm

          protected final org.bouncycastle.asn1.x509.AlgorithmIdentifier encryptionAlgorithm

    - #### signedAttributeSet

          protected final org.bouncycastle.asn1.ASN1Set signedAttributeSet

    - #### unsignedAttributeSet

          protected final org.bouncycastle.asn1.ASN1Set unsignedAttributeSet

  - ### Constructor Detail

    - #### SignerInformation

          protected SignerInformation(SignerInformation baseInfo)

      Protected constructor. In some cases clients have their own idea about how to encode the signed attributes and calculate the signature. This constructor is to allow developers to deal with that by extending off the class and overridng methods like getSignedAttributes().
      Parameters:
        `baseInfo` - the SignerInformation to base this one on.

  - ### Method Detail

    - #### isCounterSignature

          public boolean isCounterSignature()

    - #### getContentType

          public org.bouncycastle.asn1.ASN1ObjectIdentifier getContentType()

    - #### getSID

          public SignerId getSID()

    - #### getVersion

          public int getVersion()

      return the version number for this objects underlying SignerInfo structure.

    - #### getDigestAlgorithmID

          public org.bouncycastle.asn1.x509.AlgorithmIdentifier getDigestAlgorithmID()

    - #### getDigestAlgOID

          public java.lang.String getDigestAlgOID()

      return the object identifier for the signature.

    - #### getDigestAlgParams

          public byte[] getDigestAlgParams()

      return the signature parameters, or null if there aren't any.

    - #### getContentDigest

          public byte[] getContentDigest()

      return the content digest that was calculated during verification.

    - #### getEncryptionAlgOID

          public java.lang.String getEncryptionAlgOID()

      return the object identifier for the signature.

    - #### getEncryptionAlgParams

          public byte[] getEncryptionAlgParams()

      return the signature/encryption algorithm parameters, or null if there aren't any.

    - #### getSignedAttributes

          public org.bouncycastle.asn1.cms.AttributeTable getSignedAttributes()

      return a table of the signed attributes - indexed by the OID of the attribute.

    - #### getUnsignedAttributes

          public org.bouncycastle.asn1.cms.AttributeTable getUnsignedAttributes()

      return a table of the unsigned attributes indexed by the OID of the attribute.

    - #### getSignature

          public byte[] getSignature()

      return the encoded signature

    - #### getCounterSignatures

          public SignerInformationStore getCounterSignatures()

      Return a SignerInformationStore containing the counter signatures attached to this signer. If no counter signatures are present an empty store is returned.

    - #### getEncodedSignedAttributes

          public byte[] getEncodedSignedAttributes()
                                            throws java.io.IOException

      return the DER encoding of the signed attributes.
      Throws:
        `java.io.IOException` - if an encoding error occurs.

    - #### verify

          public boolean verify(SignerInformationVerifier verifier)
                         throws CMSException

      Verify that the given verifier can successfully verify the signature on this SignerInformation object.
      Parameters:
        `verifier` - a suitably configured SignerInformationVerifier.
      Returns:
        true if the signer information is verified, false otherwise.
      Throws:
        `CMSVerifierCertificateNotValidException` - if the provider has an associated certificate and the certificate is not valid at the time given as the SignerInfo's signing time.
        `CMSException` - if the verifier is unable to create a ContentVerifiers or DigestCalculators.

    - #### toASN1Structure

          public org.bouncycastle.asn1.cms.SignerInfo toASN1Structure()

      Return the underlying ASN.1 object defining this SignerInformation object.
      Returns:
        a SignerInfo.

    - #### replaceUnsignedAttributes

          public static SignerInformation replaceUnsignedAttributes(SignerInformation signerInformation,
                                                    org.bouncycastle.asn1.cms.AttributeTable unsignedAttributes)

      Return a signer information object with the passed in unsigned attributes replacing the ones that are current associated with the object passed in.
      Parameters:
        `signerInformation` - the signerInfo to be used as the basis.
        `unsignedAttributes` - the unsigned attributes to add.
      Returns:
        a copy of the original SignerInformationObject with the changed attributes.

    - #### addCounterSigners

          public static SignerInformation addCounterSigners(SignerInformation signerInformation,
                                            SignerInformationStore counterSigners)

      Return a signer information object with passed in SignerInformationStore representing counter signatures attached as an unsigned attribute.
      Parameters:
        `signerInformation` - the signerInfo to be used as the basis.
        `counterSigners` - signer info objects carrying counter signature.
      Returns:
        a copy of the original SignerInformationObject with the changed attributes.