Package org.bouncycastle.asn1.x509

## Class Holder

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.x509.Holder

- All Implemented Interfaces:
    `ASN1Encodable`, `Encodable`

      public class Holder
      extends ASN1Object

  The Holder object.

  For an v2 attribute certificate this is:

                  Holder ::= SEQUENCE {
                        baseCertificateID   [0] IssuerSerial OPTIONAL,
                                 -- the issuer and serial number of
                                 -- the holder's Public Key Certificate
                        entityName          [1] GeneralNames OPTIONAL,
                                 -- the name of the claimant or role
                        objectDigestInfo    [2] ObjectDigestInfo OPTIONAL
                                 -- used to directly authenticate the holder,
                                 -- for example, an executable
                  }

  For an v1 attribute certificate this is:

               subject CHOICE {
                baseCertificateID [0] EXPLICIT IssuerSerial,
                -- associated with a Public Key Certificate
                subjectName [1] EXPLICIT GeneralNames },
                -- associated with a name

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `V1_CERTIFICATE_HOLDER` |
    `static int` | `V2_CERTIFICATE_HOLDER` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Holder​(GeneralNames entityName)` | Constructs a holder with an entityName for V2 attribute certificates.
    `Holder​(GeneralNames entityName, int version)` | Constructs a holder with an entityName for V2 attribute certificates or with a subjectName for V1 attribute certificates.
    `Holder​(IssuerSerial baseCertificateID)` |
    `Holder​(IssuerSerial baseCertificateID, int version)` | Constructs a holder from a IssuerSerial for a V1 or V2 certificate. .
    `Holder​(ObjectDigestInfo objectDigestInfo)` | Constructs a holder from an object digest info.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `IssuerSerial` | `getBaseCertificateID()` |
    `GeneralNames` | `getEntityName()` | Returns the entityName for an V2 attribute certificate or the subjectName for an V1 attribute certificate.
    `static Holder` | `getInstance​(java.lang.Object obj)` |
    `ObjectDigestInfo` | `getObjectDigestInfo()` |
    `int` | `getVersion()` | Returns 1 for V2 attribute certificates or 0 for V1 attribute certificates.
    `ASN1Primitive` | `toASN1Primitive()` | Method providing a primitive representation of this object suitable for encoding.

    - ### Methods inherited from class org.bouncycastle.asn1.ASN1Object

      `encodeTo, encodeTo, equals, getEncoded, getEncoded, hasEncodedTagValue, hashCode`

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

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

- - ### Field Detail

    - #### V1_CERTIFICATE_HOLDER

          public static final int V1_CERTIFICATE_HOLDER

      See Also:
        Constant Field Values

    - #### V2_CERTIFICATE_HOLDER

          public static final int V2_CERTIFICATE_HOLDER

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Holder

          public Holder​(IssuerSerial baseCertificateID)

    - #### Holder

          public Holder​(IssuerSerial baseCertificateID,
                        int version)

      Constructs a holder from a IssuerSerial for a V1 or V2 certificate. .
      Parameters:
        `baseCertificateID` - The IssuerSerial.
        `version` - The version of the attribute certificate.

    - #### Holder

          public Holder​(GeneralNames entityName)

      Constructs a holder with an entityName for V2 attribute certificates.
      Parameters:
        `entityName` - The entity or subject name.

    - #### Holder

          public Holder​(GeneralNames entityName,
                        int version)

      Constructs a holder with an entityName for V2 attribute certificates or with a subjectName for V1 attribute certificates.
      Parameters:
        `entityName` - The entity or subject name.
        `version` - The version of the attribute certificate.

    - #### Holder

          public Holder​(ObjectDigestInfo objectDigestInfo)

      Constructs a holder from an object digest info.
      Parameters:
        `objectDigestInfo` - The object digest info object.

  - ### Method Detail

    - #### getInstance

          public static Holder getInstance​(java.lang.Object obj)

    - #### getVersion

          public int getVersion()

      Returns 1 for V2 attribute certificates or 0 for V1 attribute certificates.
      Returns:
        The version of the attribute certificate.

    - #### getBaseCertificateID

          public IssuerSerial getBaseCertificateID()

    - #### getEntityName

          public GeneralNames getEntityName()

      Returns the entityName for an V2 attribute certificate or the subjectName for an V1 attribute certificate.
      Returns:
        The entityname or subjectname.

    - #### getObjectDigestInfo

          public ObjectDigestInfo getObjectDigestInfo()

    - #### toASN1Primitive

          public ASN1Primitive toASN1Primitive()

      Description copied from class: `ASN1Object`
      Method providing a primitive representation of this object suitable for encoding.
      Specified by:
        `toASN1Primitive` in interface `ASN1Encodable`
      Specified by:
        `toASN1Primitive` in class `ASN1Object`
      Returns:
        a primitive representation of this object.