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

org.bouncycastle.asn1.x509

## Class RelatedCertificateDescriptor

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

- All Implemented Interfaces:
    ASN1Encodable, Encodable

      public class RelatedCertificateDescriptor
      extends ASN1Object

  Descriptor for a related certificate, as defined by draft-ietf-lamps-certdiscovery (Certificate Discovery in PKIX). Carried as the value of an `OtherName` (type-id `BCObjectIdentifiers.id_on_relatedCertificateDescriptor`) inside the `accessLocation` GeneralName of an `AccessDescription` whose `accessMethod` is `BCObjectIdentifiers.id_ad_certDiscovery`, sitting in turn inside the SubjectInfoAccess extension (`Extension.subjectInfoAccess`).

           RelatedCertificateDescriptor ::= SEQUENCE {
               method               CertDiscoveryMethod,
               intent               DiscoveryIntentId OPTIONAL,
               signatureAlgorithm   [0] IMPLICIT AlgorithmIdentifier OPTIONAL,
               publicKeyAlgorithm   [1] IMPLICIT AlgorithmIdentifier OPTIONAL
           }

           DiscoveryIntentId ::= OBJECT IDENTIFIER

  Intent OIDs are defined under `BCObjectIdentifiers.id_rcd` (placeholder arc pending IANA assignment): `BCObjectIdentifiers.id_rcd_agility`, `BCObjectIdentifiers.id_rcd_redundancy`, `BCObjectIdentifiers.id_rcd_dual`, `BCObjectIdentifiers.id_rcd_priv_key_stmt`, `BCObjectIdentifiers.id_rcd_self`.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `RelatedCertificateDescriptor(CertDiscoveryMethod method)`
    `RelatedCertificateDescriptor(CertDiscoveryMethod method, ASN1ObjectIdentifier intent, AlgorithmIdentifier signatureAlgorithm, AlgorithmIdentifier publicKeyAlgorithm)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static RelatedCertificateDescriptor[]` | `fromExtensions(Extensions extensions)` Walk the SubjectInfoAccess extension of the supplied `Extensions` and return every `RelatedCertificateDescriptor` it carries (each AccessDescription whose accessMethod is `BCObjectIdentifiers.id_ad_certDiscovery` and whose accessLocation is an OtherName of type `BCObjectIdentifiers.id_on_relatedCertificateDescriptor`).
    `static RelatedCertificateDescriptor` | `getInstance(java.lang.Object obj)`
    `ASN1ObjectIdentifier` | `getIntent()`
    `CertDiscoveryMethod` | `getMethod()`
    `AlgorithmIdentifier` | `getPublicKeyAlgorithm()`
    `AlgorithmIdentifier` | `getSignatureAlgorithm()`
    `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`

- - ### Constructor Detail

    - #### RelatedCertificateDescriptor

          public RelatedCertificateDescriptor(CertDiscoveryMethod method,
                                              ASN1ObjectIdentifier intent,
                                              AlgorithmIdentifier signatureAlgorithm,
                                              AlgorithmIdentifier publicKeyAlgorithm)

    - #### RelatedCertificateDescriptor

          public RelatedCertificateDescriptor(CertDiscoveryMethod method)

  - ### Method Detail

    - #### getInstance

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

    - #### fromExtensions

          public static RelatedCertificateDescriptor[] fromExtensions(Extensions extensions)

      Walk the SubjectInfoAccess extension of the supplied `Extensions` and return every `RelatedCertificateDescriptor` it carries (each AccessDescription whose accessMethod is `BCObjectIdentifiers.id_ad_certDiscovery` and whose accessLocation is an OtherName of type `BCObjectIdentifiers.id_on_relatedCertificateDescriptor`).
      Returns:
        an array, never `null`; empty when the extension is absent or carries no certificate-discovery descriptors.

    - #### getMethod

          public CertDiscoveryMethod getMethod()

    - #### getIntent

          public ASN1ObjectIdentifier getIntent()

    - #### getSignatureAlgorithm

          public AlgorithmIdentifier getSignatureAlgorithm()

    - #### getPublicKeyAlgorithm

          public AlgorithmIdentifier getPublicKeyAlgorithm()

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