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

org.bouncycastle.asn1.isismtt.ocsp

## Class RequestedCertificate

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.isismtt.ocsp.RequestedCertificate

- All Implemented Interfaces:
    ASN1Choice, ASN1Encodable, Encodable

      public class RequestedCertificate
      extends ASN1Object
      implements ASN1Choice

  ISIS-MTT-Optional: The certificate requested by the client by inserting the RetrieveIfAllowed extension in the request, will be returned in this extension.

  ISIS-MTT-SigG: The signature act allows publishing certificates only then, when the certificate owner gives his explicit permission. Accordingly, there may be �nondownloadable� certificates, about which the responder must provide status information, but MUST NOT include them in the response. Clients may get therefore the following three kind of answers on a single request including the RetrieveIfAllowed extension:

  - a) the responder supports the extension and is allowed to publish the certificate: RequestedCertificate returned including the requested certificate
  - b) the responder supports the extension but is NOT allowed to publish the certificate: RequestedCertificate returned including an empty OCTET STRING
  - c) the responder does not support the extension: RequestedCertificate is not included in the response
  Clients requesting RetrieveIfAllowed MUST be able to handle these cases. If any of the OCTET STRING options is used, it MUST contain the DER encoding of the requested certificate.

                  RequestedCertificate ::= CHOICE {
                    Certificate Certificate,
                    publicKeyCertificate [0] EXPLICIT OCTET STRING,
                    attributeCertificate [1] EXPLICIT OCTET STRING
                  }

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `attributeCertificate`
    `static int` | `certificate`
    `static int` | `publicKeyCertificate`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RequestedCertificate(Certificate certificate)` Constructor from a given details.
    `RequestedCertificate(int type, byte[] certificateOctets)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `getCertificateBytes()`
    `static RequestedCertificate` | `getInstance(ASN1TaggedObject obj, boolean explicit)`
    `static RequestedCertificate` | `getInstance(java.lang.Object obj)`
    `int` | `getType()`
    `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`

- - ### Field Detail

    - #### certificate

          public static final int certificate

      See Also:
        Constant Field Values

    - #### publicKeyCertificate

          public static final int publicKeyCertificate

      See Also:
        Constant Field Values

    - #### attributeCertificate

          public static final int attributeCertificate

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### RequestedCertificate

          public RequestedCertificate(Certificate certificate)

      Constructor from a given details.

      Only one parameter can be given. All other must be `null`.

      Parameters:
        `certificate` - Given as Certificate

    - #### RequestedCertificate

          public RequestedCertificate(int type,
                                      byte[] certificateOctets)

  - ### Method Detail

    - #### getInstance

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

    - #### getInstance

          public static RequestedCertificate getInstance(ASN1TaggedObject obj,
                                                         boolean explicit)

    - #### getType

          public int getType()

    - #### getCertificateBytes

          public byte[] getCertificateBytes()

    - #### toASN1Primitive

          public ASN1Primitive toASN1Primitive()

      Produce an object suitable for an ASN1OutputStream.

      Returns:

                      RequestedCertificate ::= CHOICE {
                        Certificate Certificate,
                        publicKeyCertificate [0] EXPLICIT OCTET STRING,
                        attributeCertificate [1] EXPLICIT OCTET STRING
                      }

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