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

org.bouncycastle.asn1.crmf

## Class POPOSigningKeyInput

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

- All Implemented Interfaces:
    ASN1Encodable, Encodable

      public class POPOSigningKeyInput
      extends ASN1Object

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `POPOSigningKeyInput(GeneralName sender, SubjectPublicKeyInfo spki)` Creates a new POPOSigningKeyInput with sender name as authInfo.
    `POPOSigningKeyInput(PKMACValue pkmac, SubjectPublicKeyInfo spki)` Creates a new POPOSigningKeyInput using password-based MAC.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static POPOSigningKeyInput` | `getInstance(java.lang.Object o)`
    `SubjectPublicKeyInfo` | `getPublicKey()`
    `PKMACValue` | `getPublicKeyMAC()` Returns the publicKeyMAC field, or null if authInfo is sender
    `GeneralName` | `getSender()` Returns the sender field, or null if authInfo is publicKeyMAC
    `ASN1Primitive` | `toASN1Primitive()` POPOSigningKeyInput ::= SEQUENCE { authInfo CHOICE { sender [0] GeneralName, -- used only if an authenticated identity has been -- established for the sender (e.g., a DN from a -- previously-issued and currently-valid certificate publicKeyMAC PKMACValue }, -- used if no authenticated GeneralName currently exists for -- the sender; publicKeyMAC contains a password-based MAC -- on the DER-encoded value of publicKey publicKey SubjectPublicKeyInfo } -- from CertTemplate

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

    - #### POPOSigningKeyInput

          public POPOSigningKeyInput(GeneralName sender,
                                     SubjectPublicKeyInfo spki)

      Creates a new POPOSigningKeyInput with sender name as authInfo.

    - #### POPOSigningKeyInput

          public POPOSigningKeyInput(PKMACValue pkmac,
                                     SubjectPublicKeyInfo spki)

      Creates a new POPOSigningKeyInput using password-based MAC.

  - ### Method Detail

    - #### getInstance

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

    - #### getSender

          public GeneralName getSender()

      Returns the sender field, or null if authInfo is publicKeyMAC

    - #### getPublicKeyMAC

          public PKMACValue getPublicKeyMAC()

      Returns the publicKeyMAC field, or null if authInfo is sender

    - #### getPublicKey

          public SubjectPublicKeyInfo getPublicKey()

    - #### toASN1Primitive

          public ASN1Primitive toASN1Primitive()

           POPOSigningKeyInput ::= SEQUENCE {
                  authInfo             CHOICE {
                                           sender              [0] GeneralName,
                                           -- used only if an authenticated identity has been
                                           -- established for the sender (e.g., a DN from a
                                           -- previously-issued and currently-valid certificate
                                           publicKeyMAC        PKMACValue },
                                           -- used if no authenticated GeneralName currently exists for
                                           -- the sender; publicKeyMAC contains a password-based MAC
                                           -- on the DER-encoded value of publicKey
                  publicKey           SubjectPublicKeyInfo }  -- from CertTemplate

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