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

org.bouncycastle.asn1.pkcs

## Class CertificationRequestInfo

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.pkcs.CertificationRequestInfo

- All Implemented Interfaces:
    ASN1Encodable, Encodable

      public class CertificationRequestInfo
      extends ASN1Object

  PKCS10 CertificationRequestInfo object.

        CertificationRequestInfo ::= SEQUENCE {
         version             INTEGER { v1(0) } (v1,...),
         subject             Name,
         subjectPKInfo   SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
         attributes          [0] Attributes{{ CRIAttributes }}
        }

        Attributes { ATTRIBUTE:IOSet } ::= SET OF Attribute{{ IOSet }}

        Attribute { ATTRIBUTE:IOSet } ::= SEQUENCE {
          type    ATTRIBUTE.&id({IOSet}),
          values  SET SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
        }

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CertificationRequestInfo(X500Name subject, SubjectPublicKeyInfo pkInfo, ASN1Set attributes)` Basic constructor.
    `CertificationRequestInfo(X509Name subject, SubjectPublicKeyInfo pkInfo, ASN1Set attributes)` Deprecated. use X500Name method.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ASN1Set` | `getAttributes()`
    `static CertificationRequestInfo` | `getInstance(java.lang.Object obj)`
    `X500Name` | `getSubject()`
    `SubjectPublicKeyInfo` | `getSubjectPublicKeyInfo()`
    `ASN1Integer` | `getVersion()`
    `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

    - #### CertificationRequestInfo

          public CertificationRequestInfo(X500Name subject,
                                          SubjectPublicKeyInfo pkInfo,
                                          ASN1Set attributes)

      Basic constructor.

      Note: Early on a lot of CAs would only accept messages with attributes missing. As the ASN.1 def shows the attributes field is not optional so should always at least contain an empty set. If a fully compliant request is required, pass in an empty set, the class will otherwise interpret a null as it should encode the request with the field missing.

      Parameters:
        `subject` - subject to be associated with the public key
        `pkInfo` - public key to be associated with subject
        `attributes` - any attributes to be associated with the request.

    - #### CertificationRequestInfo

          public CertificationRequestInfo(X509Name subject,
                                          SubjectPublicKeyInfo pkInfo,
                                          ASN1Set attributes)

      Deprecated. use X500Name method.

  - ### Method Detail

    - #### getInstance

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

    - #### getVersion

          public ASN1Integer getVersion()

    - #### getSubject

          public X500Name getSubject()

    - #### getSubjectPublicKeyInfo

          public SubjectPublicKeyInfo getSubjectPublicKeyInfo()

    - #### getAttributes

          public ASN1Set getAttributes()

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