org.bouncycastle.x509

## Class AttributeCertificateHolder

- java.lang.Object
- - org.bouncycastle.x509.AttributeCertificateHolder

All Implemented Interfaces:
  java.lang.Cloneable, java.security.cert.CertSelector, Selector

    public class AttributeCertificateHolder
    extends java.lang.Object
    implements java.security.cert.CertSelector, Selector

The Holder object.

              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
              }

### Constructor Summary

Constructors
Constructor and Description
`AttributeCertificateHolder(int digestedObjectType, java.lang.String digestAlgorithm, java.lang.String otherObjectTypeID, byte[] objectDigest)` Constructs a holder for v2 attribute certificates with a hash value for some type of object.
`AttributeCertificateHolder(javax.security.auth.x500.X500Principal principal)`
`AttributeCertificateHolder(javax.security.auth.x500.X500Principal issuerName, java.math.BigInteger serialNumber)`
`AttributeCertificateHolder(java.security.cert.X509Certificate cert)`
`AttributeCertificateHolder(X509Principal principal)`
`AttributeCertificateHolder(X509Principal issuerName, java.math.BigInteger serialNumber)`

### Method Summary

Methods
`java.lang.Object` `clone()`
`boolean` `equals(java.lang.Object obj)`
`java.lang.String` `getDigestAlgorithm()` Returns the other object type ID if an object digest info is used.
`int` `getDigestedObjectType()` Returns the digest object type if an object digest info is used.
`java.security.Principal[]` `getEntityNames()` Return any principal objects inside the attribute certificate holder entity names field.
`java.security.Principal[]` `getIssuer()` Return the principals associated with the issuer attached to this holder
`byte[]` `getObjectDigest()` Returns the hash if an object digest info is used.
`java.lang.String` `getOtherObjectTypeID()` Returns the digest algorithm ID if an object digest info is used.
`java.math.BigInteger` `getSerialNumber()` Return the serial number associated with the issuer attached to this holder.
`int` `hashCode()`
`boolean` `match(java.security.cert.Certificate cert)`
`boolean` `match(java.lang.Object obj)`

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

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

### Constructor Detail

#### AttributeCertificateHolder

    public AttributeCertificateHolder(X509Principal issuerName,
                              java.math.BigInteger serialNumber)

#### AttributeCertificateHolder

    public AttributeCertificateHolder(javax.security.auth.x500.X500Principal issuerName,
                              java.math.BigInteger serialNumber)

#### AttributeCertificateHolder

    public AttributeCertificateHolder(java.security.cert.X509Certificate cert)
                               throws java.security.cert.CertificateParsingException

Throws:
  `java.security.cert.CertificateParsingException`

#### AttributeCertificateHolder

    public AttributeCertificateHolder(X509Principal principal)

#### AttributeCertificateHolder

    public AttributeCertificateHolder(javax.security.auth.x500.X500Principal principal)

#### AttributeCertificateHolder

    public AttributeCertificateHolder(int digestedObjectType,
                              java.lang.String digestAlgorithm,
                              java.lang.String otherObjectTypeID,
                              byte[] objectDigest)

Constructs a holder for v2 attribute certificates with a hash value for some type of object.

`digestedObjectType` can be one of the following:

- 0 - publicKey - A hash of the public key of the holder must be passed.
- 1 - publicKeyCert - A hash of the public key certificate of the holder must be passed.
- 2 - otherObjectDigest - A hash of some other object type must be passed. `otherObjectTypeID` must not be empty.

This cannot be used if a v1 attribute certificate is used.

Parameters:
  `digestedObjectType` - The digest object type.
  `digestAlgorithm` - The algorithm identifier for the hash.
  `otherObjectTypeID` - The object type ID if `digestedObjectType` is `otherObjectDigest`.
  `objectDigest` - The hash value.

### Method Detail

#### getDigestedObjectType

    public int getDigestedObjectType()

Returns the digest object type if an object digest info is used.

- 0 - publicKey - A hash of the public key of the holder must be passed.
- 1 - publicKeyCert - A hash of the public key certificate of the holder must be passed.
- 2 - otherObjectDigest - A hash of some other object type must be passed. `otherObjectTypeID` must not be empty.

Returns:
  The digest object type or -1 if no object digest info is set.

#### getDigestAlgorithm

    public java.lang.String getDigestAlgorithm()

Returns the other object type ID if an object digest info is used.

Returns:
  The other object type ID or `null` if no object digest info is set.

#### getObjectDigest

    public byte[] getObjectDigest()

Returns the hash if an object digest info is used.

Returns:
  The hash or `null` if no object digest info is set.

#### getOtherObjectTypeID

    public java.lang.String getOtherObjectTypeID()

Returns the digest algorithm ID if an object digest info is used.

Returns:
  The digest algorithm ID or `null` if no object digest info is set.

#### getEntityNames

    public java.security.Principal[] getEntityNames()

Return any principal objects inside the attribute certificate holder entity names field.

Returns:
  an array of Principal objects (usually X500Principal), null if no entity names field is set.

#### getIssuer

    public java.security.Principal[] getIssuer()

Return the principals associated with the issuer attached to this holder

Returns:
  an array of principals, null if no BaseCertificateID is set.

#### getSerialNumber

    public java.math.BigInteger getSerialNumber()

Return the serial number associated with the issuer attached to this holder.

Returns:
  the certificate serial number, null if no BaseCertificateID is set.

#### clone

    public java.lang.Object clone()

Specified by:
  `clone` in interface `java.security.cert.CertSelector`
Specified by:
  `clone` in interface `Selector`
Overrides:
  `clone` in class `java.lang.Object`

#### match

    public boolean match(java.security.cert.Certificate cert)

Specified by:
  `match` in interface `java.security.cert.CertSelector`

#### equals

    public boolean equals(java.lang.Object obj)

Overrides:
  `equals` in class `java.lang.Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `java.lang.Object`

#### match

    public boolean match(java.lang.Object obj)

Specified by:
  `match` in interface `Selector`