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

org.bouncycastle.asn1.cmp

## Class PKIHeader

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.cmp.PKIHeader

- All Implemented Interfaces:
    ASN1Encodable, Encodable

      public class PKIHeader
      extends ASN1Object

  PKIHeader ::= SEQUENCE { pvno INTEGER { cmp1999(1), cmp2000(2) }, sender GeneralName, -- identifies the sender recipient GeneralName, -- identifies the intended recipient messageTime [0] GeneralizedTime OPTIONAL, -- time of production of this message (used when sender -- believes that the transport will be "suitable"; i.e., -- that the time will still be meaningful upon receipt) protectionAlg [1] AlgorithmIdentifier OPTIONAL, -- algorithm used for calculation of protection bits senderKID [2] KeyIdentifier OPTIONAL, recipKID [3] KeyIdentifier OPTIONAL, -- to identify specific keys used for protection transactionID [4] OCTET STRING OPTIONAL, -- identifies the transaction; i.e., this will be the same in -- corresponding request, response, certConf, and PKIConf -- messages senderNonce [5] OCTET STRING OPTIONAL, recipNonce [6] OCTET STRING OPTIONAL, -- nonces used to provide replay protection, senderNonce -- is inserted by the creator of this message; recipNonce -- is a nonce previously inserted in a related message by -- the intended recipient of this message freeText [7] PKIFreeText OPTIONAL, -- this may be used to indicate context-specific instructions -- (this field is intended for human consumption) generalInfo [8] SEQUENCE SIZE (1..MAX) OF InfoTypeAndValue OPTIONAL -- this may be used to convey context-specific information -- (this field not primarily intended for human consumption) }

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `CMP_1999`
    `static int` | `CMP_2000`
    `static int` | `CMP_2021`
    `static GeneralName` | `NULL_NAME` Value for a "null" recipient or sender.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PKIHeader(int pvno, GeneralName sender, GeneralName recipient)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `PKIFreeText` | `getFreeText()`
    `InfoTypeAndValue[]` | `getGeneralInfo()`
    `static PKIHeader` | `getInstance(java.lang.Object o)`
    `ASN1GeneralizedTime` | `getMessageTime()`
    `AlgorithmIdentifier` | `getProtectionAlg()`
    `ASN1Integer` | `getPvno()`
    `GeneralName` | `getRecipient()`
    `ASN1OctetString` | `getRecipKID()`
    `ASN1OctetString` | `getRecipNonce()`
    `GeneralName` | `getSender()`
    `ASN1OctetString` | `getSenderKID()`
    `ASN1OctetString` | `getSenderNonce()`
    `ASN1OctetString` | `getTransactionID()`
    `ASN1Primitive` | `toASN1Primitive()` PKIHeader ::= SEQUENCE { pvno INTEGER { cmp1999(1), cmp2000(2) }, sender GeneralName, -- identifies the sender recipient GeneralName, -- identifies the intended recipient messageTime [0] GeneralizedTime OPTIONAL, -- time of production of this message (used when sender -- believes that the transport will be "suitable"; i.e., -- that the time will still be meaningful upon receipt) protectionAlg [1] AlgorithmIdentifier OPTIONAL, -- algorithm used for calculation of protection bits senderKID [2] KeyIdentifier OPTIONAL, recipKID [3] KeyIdentifier OPTIONAL, -- to identify specific keys used for protection transactionID [4] OCTET STRING OPTIONAL, -- identifies the transaction; i.e., this will be the same in -- corresponding request, response, certConf, and PKIConf -- messages senderNonce [5] OCTET STRING OPTIONAL, recipNonce [6] OCTET STRING OPTIONAL, -- nonces used to provide replay protection, senderNonce -- is inserted by the creator of this message; recipNonce -- is a nonce previously inserted in a related message by -- the intended recipient of this message freeText [7] PKIFreeText OPTIONAL, -- this may be used to indicate context-specific instructions -- (this field is intended for human consumption) generalInfo [8] SEQUENCE SIZE (1..MAX) OF InfoTypeAndValue OPTIONAL -- this may be used to convey context-specific information -- (this field not primarily intended for human consumption) }

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

    - #### NULL_NAME

          public static final GeneralName NULL_NAME

      Value for a "null" recipient or sender.

    - #### CMP_1999

          public static final int CMP_1999

      See Also:
        Constant Field Values

    - #### CMP_2000

          public static final int CMP_2000

      See Also:
        Constant Field Values

    - #### CMP_2021

          public static final int CMP_2021

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### PKIHeader

          public PKIHeader(int pvno,
                           GeneralName sender,
                           GeneralName recipient)

  - ### Method Detail

    - #### getInstance

          public static PKIHeader getInstance(java.lang.Object o)

    - #### getPvno

          public ASN1Integer getPvno()

    - #### getSender

          public GeneralName getSender()

    - #### getRecipient

          public GeneralName getRecipient()

    - #### getMessageTime

          public ASN1GeneralizedTime getMessageTime()

    - #### getProtectionAlg

          public AlgorithmIdentifier getProtectionAlg()

    - #### getSenderKID

          public ASN1OctetString getSenderKID()

    - #### getRecipKID

          public ASN1OctetString getRecipKID()

    - #### getTransactionID

          public ASN1OctetString getTransactionID()

    - #### getSenderNonce

          public ASN1OctetString getSenderNonce()

    - #### getRecipNonce

          public ASN1OctetString getRecipNonce()

    - #### getFreeText

          public PKIFreeText getFreeText()

    - #### getGeneralInfo

          public InfoTypeAndValue[] getGeneralInfo()

    - #### toASN1Primitive

          public ASN1Primitive toASN1Primitive()

            PKIHeader ::= SEQUENCE {
                      pvno                INTEGER     { cmp1999(1), cmp2000(2) },
                      sender              GeneralName,
                      -- identifies the sender
                      recipient           GeneralName,
                      -- identifies the intended recipient
                      messageTime     [0] GeneralizedTime         OPTIONAL,
                      -- time of production of this message (used when sender
                      -- believes that the transport will be "suitable"; i.e.,
                      -- that the time will still be meaningful upon receipt)
                      protectionAlg   [1] AlgorithmIdentifier     OPTIONAL,
                      -- algorithm used for calculation of protection bits
                      senderKID       [2] KeyIdentifier           OPTIONAL,
                      recipKID        [3] KeyIdentifier           OPTIONAL,
                      -- to identify specific keys used for protection
                      transactionID   [4] OCTET STRING            OPTIONAL,
                      -- identifies the transaction; i.e., this will be the same in
                      -- corresponding request, response, certConf, and PKIConf
                      -- messages
                      senderNonce     [5] OCTET STRING            OPTIONAL,
                      recipNonce      [6] OCTET STRING            OPTIONAL,
                      -- nonces used to provide replay protection, senderNonce
                      -- is inserted by the creator of this message; recipNonce
                      -- is a nonce previously inserted in a related message by
                      -- the intended recipient of this message
                      freeText        [7] PKIFreeText             OPTIONAL,
                      -- this may be used to indicate context-specific instructions
                      -- (this field is intended for human consumption)
                      generalInfo     [8] SEQUENCE SIZE (1..MAX) OF
                                           InfoTypeAndValue     OPTIONAL
                      -- this may be used to convey context-specific information
                      -- (this field not primarily intended for human consumption)
           }

      Specified by:
        `toASN1Primitive` in interface `ASN1Encodable`
      Specified by:
        `toASN1Primitive` in class `ASN1Object`
      Returns:
        a basic ASN.1 object representation.