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

org.bouncycastle.asn1.x509

## Class CertificatePair

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

- All Implemented Interfaces:
    ASN1Encodable, Encodable

      public class CertificatePair
      extends ASN1Object

  This class helps to support crossCerfificatePairs in a LDAP directory according RFC 2587

           crossCertificatePairATTRIBUTE::={
             WITH SYNTAX   CertificatePair
             EQUALITY MATCHING RULE certificatePairExactMatch
             ID joint-iso-ccitt(2) ds(5) attributeType(4) crossCertificatePair(40)}

  > The forward elements of the crossCertificatePair attribute of a CA's directory entry shall be used to store all, except self-issued certificates issued to this CA. Optionally, the reverse elements of the crossCertificatePair attribute, of a CA's directory entry may contain a subset of certificates issued by this CA to other CAs. When both the forward and the reverse elements are present in a single attribute value, issuer name in one certificate shall match the subject name in the other and vice versa, and the subject public key in one certificate shall be capable of verifying the digital signature on the other certificate and vice versa. When a reverse element is present, the forward element value and the reverse element value need not be stored in the same attribute value; in other words, they can be stored in either a single attribute value or two attribute values.

             CertificatePair ::= SEQUENCE {
               forward        [0]    Certificate OPTIONAL,
               reverse        [1]    Certificate OPTIONAL,
               -- at least one of the pair shall be present -- }

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CertificatePair(Certificate forward, Certificate reverse)` Constructor from a given details.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Certificate` | `getForward()`
    `static CertificatePair` | `getInstance(java.lang.Object obj)`
    `Certificate` | `getReverse()`
    `ASN1Primitive` | `toASN1Primitive()` Produce an object suitable for an ASN1OutputStream.

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

    - #### CertificatePair

          public CertificatePair(Certificate forward,
                                 Certificate reverse)

      Constructor from a given details.
      Parameters:
        `forward` - Certificates issued to this CA.
        `reverse` - Certificates issued by this CA to other CAs.

  - ### Method Detail

    - #### getInstance

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

    - #### toASN1Primitive

          public ASN1Primitive toASN1Primitive()

      Produce an object suitable for an ASN1OutputStream.

      Returns:

                 CertificatePair ::= SEQUENCE {
                   forward        [0]    Certificate OPTIONAL,
                   reverse        [1]    Certificate OPTIONAL,
                   -- at least one of the pair shall be present -- }

      Specified by:
        `toASN1Primitive` in interface `ASN1Encodable`
      Specified by:
        `toASN1Primitive` in class `ASN1Object`
      Returns:
        a ASN1Primitive

    - #### getForward

          public Certificate getForward()

      Returns:
        Returns the forward.

    - #### getReverse

          public Certificate getReverse()

      Returns:
        Returns the reverse.