public class org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder
  super_class: java.lang.Object
{
  private org.bouncycastle.asn1.crmf.CertRequest certRequest;
    descriptor: Lorg/bouncycastle/asn1/crmf/CertRequest;
    flags: (0x0002) ACC_PRIVATE

  private org.bouncycastle.asn1.x509.SubjectPublicKeyInfo pubKeyInfo;
    descriptor: Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
    flags: (0x0002) ACC_PRIVATE

  private org.bouncycastle.asn1.x509.GeneralName name;
    descriptor: Lorg/bouncycastle/asn1/x509/GeneralName;
    flags: (0x0002) ACC_PRIVATE

  private org.bouncycastle.asn1.crmf.PKMACValue publicKeyMAC;
    descriptor: Lorg/bouncycastle/asn1/crmf/PKMACValue;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.bouncycastle.asn1.crmf.CertRequest);
    descriptor: (Lorg/bouncycastle/asn1/crmf/CertRequest;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder this
        start local 1 // org.bouncycastle.asn1.crmf.CertRequest certRequest
         0: .line 19
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 21
            aload 0 /* this */
            aload 1 /* certRequest */
            putfield org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder.certRequest:Lorg/bouncycastle/asn1/crmf/CertRequest;
         2: .line 22
            return
        end local 1 // org.bouncycastle.asn1.crmf.CertRequest certRequest
        end local 0 // org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/bouncycastle/cert/crmf/ProofOfPossessionSigningKeyBuilder;
            0    3     1  certRequest  Lorg/bouncycastle/asn1/crmf/CertRequest;
    MethodParameters:
             Name  Flags
      certRequest  

  public void <init>(org.bouncycastle.asn1.x509.SubjectPublicKeyInfo);
    descriptor: (Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder this
        start local 1 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo pubKeyInfo
         0: .line 25
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 27
            aload 0 /* this */
            aload 1 /* pubKeyInfo */
            putfield org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder.pubKeyInfo:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
         2: .line 28
            return
        end local 1 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo pubKeyInfo
        end local 0 // org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/bouncycastle/cert/crmf/ProofOfPossessionSigningKeyBuilder;
            0    3     1  pubKeyInfo  Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
    MethodParameters:
            Name  Flags
      pubKeyInfo  

  public org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder setSender(org.bouncycastle.asn1.x509.GeneralName);
    descriptor: (Lorg/bouncycastle/asn1/x509/GeneralName;)Lorg/bouncycastle/cert/crmf/ProofOfPossessionSigningKeyBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder this
        start local 1 // org.bouncycastle.asn1.x509.GeneralName name
         0: .line 32
            aload 0 /* this */
            aload 1 /* name */
            putfield org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder.name:Lorg/bouncycastle/asn1/x509/GeneralName;
         1: .line 34
            aload 0 /* this */
            areturn
        end local 1 // org.bouncycastle.asn1.x509.GeneralName name
        end local 0 // org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/cert/crmf/ProofOfPossessionSigningKeyBuilder;
            0    2     1  name  Lorg/bouncycastle/asn1/x509/GeneralName;
    MethodParameters:
      Name  Flags
      name  

  public org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder setPublicKeyMac(org.bouncycastle.cert.crmf.PKMACValueGenerator, char[]);
    descriptor: (Lorg/bouncycastle/cert/crmf/PKMACValueGenerator;[C)Lorg/bouncycastle/cert/crmf/ProofOfPossessionSigningKeyBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder this
        start local 1 // org.bouncycastle.cert.crmf.PKMACValueGenerator generator
        start local 2 // char[] password
         0: .line 40
            aload 0 /* this */
            aload 1 /* generator */
            aload 2 /* password */
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder.pubKeyInfo:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            invokevirtual org.bouncycastle.cert.crmf.PKMACValueGenerator.generate:([CLorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)Lorg/bouncycastle/asn1/crmf/PKMACValue;
            putfield org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder.publicKeyMAC:Lorg/bouncycastle/asn1/crmf/PKMACValue;
         1: .line 42
            aload 0 /* this */
            areturn
        end local 2 // char[] password
        end local 1 // org.bouncycastle.cert.crmf.PKMACValueGenerator generator
        end local 0 // org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/bouncycastle/cert/crmf/ProofOfPossessionSigningKeyBuilder;
            0    2     1  generator  Lorg/bouncycastle/cert/crmf/PKMACValueGenerator;
            0    2     2   password  [C
    Exceptions:
      throws org.bouncycastle.cert.crmf.CRMFException
    MethodParameters:
           Name  Flags
      generator  
      password   

  public org.bouncycastle.asn1.crmf.POPOSigningKey build(org.bouncycastle.operator.ContentSigner);
    descriptor: (Lorg/bouncycastle/operator/ContentSigner;)Lorg/bouncycastle/asn1/crmf/POPOSigningKey;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder this
        start local 1 // org.bouncycastle.operator.ContentSigner signer
         0: .line 47
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder.name:Lorg/bouncycastle/asn1/x509/GeneralName;
            ifnull 2
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder.publicKeyMAC:Lorg/bouncycastle/asn1/crmf/PKMACValue;
            ifnull 2
         1: .line 49
            new java.lang.IllegalStateException
            dup
            ldc "name and publicKeyMAC cannot both be set."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 54
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder.certRequest:Lorg/bouncycastle/asn1/crmf/CertRequest;
            ifnull 6
         3: .line 56
            aconst_null
            astore 2 /* popo */
        start local 2 // org.bouncycastle.asn1.crmf.POPOSigningKeyInput popo
         4: .line 58
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder.certRequest:Lorg/bouncycastle/asn1/crmf/CertRequest;
            aload 1 /* signer */
            invokeinterface org.bouncycastle.operator.ContentSigner.getOutputStream:()Ljava/io/OutputStream;
            invokestatic org.bouncycastle.cert.crmf.CRMFUtil.derEncodeToStream:(Lorg/bouncycastle/asn1/ASN1Encodable;Ljava/io/OutputStream;)V
         5: .line 59
            goto 12
        end local 2 // org.bouncycastle.asn1.crmf.POPOSigningKeyInput popo
         6: .line 60
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder.name:Lorg/bouncycastle/asn1/x509/GeneralName;
            ifnull 10
         7: .line 62
            new org.bouncycastle.asn1.crmf.POPOSigningKeyInput
            dup
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder.name:Lorg/bouncycastle/asn1/x509/GeneralName;
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder.pubKeyInfo:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            invokespecial org.bouncycastle.asn1.crmf.POPOSigningKeyInput.<init>:(Lorg/bouncycastle/asn1/x509/GeneralName;Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)V
            astore 2 /* popo */
        start local 2 // org.bouncycastle.asn1.crmf.POPOSigningKeyInput popo
         8: .line 64
            aload 2 /* popo */
            aload 1 /* signer */
            invokeinterface org.bouncycastle.operator.ContentSigner.getOutputStream:()Ljava/io/OutputStream;
            invokestatic org.bouncycastle.cert.crmf.CRMFUtil.derEncodeToStream:(Lorg/bouncycastle/asn1/ASN1Encodable;Ljava/io/OutputStream;)V
         9: .line 65
            goto 12
        end local 2 // org.bouncycastle.asn1.crmf.POPOSigningKeyInput popo
        10: .line 68
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.asn1.crmf.POPOSigningKeyInput
            dup
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder.publicKeyMAC:Lorg/bouncycastle/asn1/crmf/PKMACValue;
            aload 0 /* this */
            getfield org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder.pubKeyInfo:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
            invokespecial org.bouncycastle.asn1.crmf.POPOSigningKeyInput.<init>:(Lorg/bouncycastle/asn1/crmf/PKMACValue;Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)V
            astore 2 /* popo */
        start local 2 // org.bouncycastle.asn1.crmf.POPOSigningKeyInput popo
        11: .line 70
            aload 2 /* popo */
            aload 1 /* signer */
            invokeinterface org.bouncycastle.operator.ContentSigner.getOutputStream:()Ljava/io/OutputStream;
            invokestatic org.bouncycastle.cert.crmf.CRMFUtil.derEncodeToStream:(Lorg/bouncycastle/asn1/ASN1Encodable;Ljava/io/OutputStream;)V
        12: .line 73
      StackMap locals: org.bouncycastle.asn1.crmf.POPOSigningKeyInput
      StackMap stack:
            new org.bouncycastle.asn1.crmf.POPOSigningKey
            dup
            aload 2 /* popo */
            aload 1 /* signer */
            invokeinterface org.bouncycastle.operator.ContentSigner.getAlgorithmIdentifier:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            new org.bouncycastle.asn1.DERBitString
            dup
            aload 1 /* signer */
            invokeinterface org.bouncycastle.operator.ContentSigner.getSignature:()[B
            invokespecial org.bouncycastle.asn1.DERBitString.<init>:([B)V
            invokespecial org.bouncycastle.asn1.crmf.POPOSigningKey.<init>:(Lorg/bouncycastle/asn1/crmf/POPOSigningKeyInput;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/DERBitString;)V
            areturn
        end local 2 // org.bouncycastle.asn1.crmf.POPOSigningKeyInput popo
        end local 1 // org.bouncycastle.operator.ContentSigner signer
        end local 0 // org.bouncycastle.cert.crmf.ProofOfPossessionSigningKeyBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lorg/bouncycastle/cert/crmf/ProofOfPossessionSigningKeyBuilder;
            0   13     1  signer  Lorg/bouncycastle/operator/ContentSigner;
            4    6     2    popo  Lorg/bouncycastle/asn1/crmf/POPOSigningKeyInput;
            8   10     2    popo  Lorg/bouncycastle/asn1/crmf/POPOSigningKeyInput;
           11   13     2    popo  Lorg/bouncycastle/asn1/crmf/POPOSigningKeyInput;
    MethodParameters:
        Name  Flags
      signer  
}
SourceFile: "ProofOfPossessionSigningKeyBuilder.java"