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

org.bouncycastle.asn1.crmf

## Class POPOPrivKey

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.crmf.POPOPrivKey

- All Implemented Interfaces:
    ASN1Choice, ASN1Encodable, Encodable

      public class POPOPrivKey
      extends ASN1Object
      implements ASN1Choice

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `agreeMAC`
    `static int` | `dhMAC`
    `static int` | `encryptedKey`
    `static int` | `subsequentMessage`
    `static int` | `thisMessage`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `POPOPrivKey(PKMACValue agreeMac)`
    `POPOPrivKey(SubsequentMessage msg)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static POPOPrivKey` | `getInstance(ASN1TaggedObject obj, boolean explicit)`
    `static POPOPrivKey` | `getInstance(java.lang.Object obj)`
    `int` | `getType()`
    `ASN1Encodable` | `getValue()`
    `ASN1Primitive` | `toASN1Primitive()` POPOPrivKey ::= CHOICE { thisMessage [0] BIT STRING, -- Deprecated -- possession is proven in this message (which contains the private -- key itself (encrypted for the CA)) subsequentMessage [1] SubsequentMessage, -- possession will be proven in a subsequent message dhMAC [2] BIT STRING, -- Deprecated agreeMAC [3] PKMACValue, encryptedKey [4] EnvelopedData }

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

    - #### thisMessage

          public static final int thisMessage

      See Also:
        Constant Field Values

    - #### subsequentMessage

          public static final int subsequentMessage

      See Also:
        Constant Field Values

    - #### dhMAC

          public static final int dhMAC

      See Also:
        Constant Field Values

    - #### agreeMAC

          public static final int agreeMAC

      See Also:
        Constant Field Values

    - #### encryptedKey

          public static final int encryptedKey

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### POPOPrivKey

          public POPOPrivKey(PKMACValue agreeMac)

    - #### POPOPrivKey

          public POPOPrivKey(SubsequentMessage msg)

  - ### Method Detail

    - #### getInstance

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

    - #### getInstance

          public static POPOPrivKey getInstance(ASN1TaggedObject obj,
                                                boolean explicit)

    - #### getType

          public int getType()

    - #### getValue

          public ASN1Encodable getValue()

    - #### toASN1Primitive

          public ASN1Primitive toASN1Primitive()

           POPOPrivKey ::= CHOICE {
                  thisMessage       [0] BIT STRING,         -- Deprecated
                   -- possession is proven in this message (which contains the private
                   -- key itself (encrypted for the CA))
                  subsequentMessage [1] SubsequentMessage,
                   -- possession will be proven in a subsequent message
                  dhMAC             [2] BIT STRING,         -- Deprecated
                  agreeMAC          [3] PKMACValue,
                  encryptedKey      [4] EnvelopedData }

      Specified by:
        `toASN1Primitive` in interface `ASN1Encodable`
      Specified by:
        `toASN1Primitive` in class `ASN1Object`
      Returns:
        a primitive representation of this object.