CertDiscoveryMethod (Bouncy Castle Library 1.85 API Specification)
Date: 2026-07-12

org.bouncycastle.asn1.x509

## Class CertDiscoveryMethod

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

- All Implemented Interfaces:
    ASN1Choice, ASN1Encodable, Encodable

      public class CertDiscoveryMethod
      extends ASN1Object
      implements ASN1Choice

  The method used to retrieve a related certificate, as defined by draft-ietf-lamps-certdiscovery (Certificate Discovery in PKIX).

           CertDiscoveryMethod ::= CHOICE {
               byUri          [0] IMPLICIT CertLocation,
               byInclusion        Certificate,
               byLocalPolicy      NULL
           }

           CertLocation ::= IA5String

  Where `byUri` carries the URI from which the secondary certificate may be downloaded, `byInclusion` embeds the secondary certificate directly, and `byLocalPolicy` signals that the relying party is expected to resolve the secondary certificate through local configuration.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `byInclusion`
    `static int` | `byLocalPolicy`
    `static int` | `byUri`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static CertDiscoveryMethod` | `byInclusion(Certificate certificate)` Create a `byInclusion` discovery method embedding the supplied certificate directly.
    `static CertDiscoveryMethod` | `byLocalPolicy()` Create a `byLocalPolicy` discovery method (the wire form is ASN.1 NULL; the relying party resolves the certificate through local configuration).
    `static CertDiscoveryMethod` | `byUri(java.lang.String uri)` Create a `byUri` discovery method carrying the supplied URI.
    `Certificate` | `getCertificate()` Return the certificate carried by a `byInclusion` method, or `null` for the other alternatives.
    `static CertDiscoveryMethod` | `getInstance(java.lang.Object obj)`
    `int` | `getType()` Return one of `byUri`, `byInclusion`, `byLocalPolicy`.
    `java.lang.String` | `getUri()` Return the URI carried by a `byUri` method, or `null` for the other alternatives.
    `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

    - #### byUri

          public static final int byUri

      See Also:
        Constant Field Values

    - #### byInclusion

          public static final int byInclusion

      See Also:
        Constant Field Values

    - #### byLocalPolicy

          public static final int byLocalPolicy

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### byUri

          public static CertDiscoveryMethod byUri(java.lang.String uri)

      Create a `byUri` discovery method carrying the supplied URI.

    - #### byInclusion

          public static CertDiscoveryMethod byInclusion(Certificate certificate)

      Create a `byInclusion` discovery method embedding the supplied certificate directly.

    - #### byLocalPolicy

          public static CertDiscoveryMethod byLocalPolicy()

      Create a `byLocalPolicy` discovery method (the wire form is ASN.1 NULL; the relying party resolves the certificate through local configuration).

    - #### getInstance

          public static CertDiscoveryMethod getInstance(java.lang.Object obj)

    - #### getType

          public int getType()

      Return one of `byUri`, `byInclusion`, `byLocalPolicy`.

    - #### getUri

          public java.lang.String getUri()

      Return the URI carried by a `byUri` method, or `null` for the other alternatives.

    - #### getCertificate

          public Certificate getCertificate()

      Return the certificate carried by a `byInclusion` method, or `null` for the other alternatives.

    - #### 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.