public class org.bouncycastle.jce.provider.JDKDigestSignature extends java.security.SignatureSpi
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.jce.provider.JDKDigestSignature
  super_class: java.security.SignatureSpi
{
  private org.bouncycastle.crypto.Digest digest;
    descriptor: Lorg/bouncycastle/crypto/Digest;
    flags: (0x0002) ACC_PRIVATE

  private org.bouncycastle.crypto.AsymmetricBlockCipher cipher;
    descriptor: Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
    flags: (0x0002) ACC_PRIVATE

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

  protected void <init>(org.bouncycastle.crypto.Digest, org.bouncycastle.crypto.AsymmetricBlockCipher);
    descriptor: (Lorg/bouncycastle/crypto/Digest;Lorg/bouncycastle/crypto/AsymmetricBlockCipher;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
        start local 1 // org.bouncycastle.crypto.Digest digest
        start local 2 // org.bouncycastle.crypto.AsymmetricBlockCipher cipher
         0: .line 49
            aload 0 /* this */
            invokespecial java.security.SignatureSpi.<init>:()V
         1: .line 53
            aload 0 /* this */
            aload 1 /* digest */
            putfield org.bouncycastle.jce.provider.JDKDigestSignature.digest:Lorg/bouncycastle/crypto/Digest;
         2: .line 54
            aload 0 /* this */
            aload 2 /* cipher */
            putfield org.bouncycastle.jce.provider.JDKDigestSignature.cipher:Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
         3: .line 55
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.jce.provider.JDKDigestSignature.algId:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
         4: .line 56
            return
        end local 2 // org.bouncycastle.crypto.AsymmetricBlockCipher cipher
        end local 1 // org.bouncycastle.crypto.Digest digest
        end local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/bouncycastle/jce/provider/JDKDigestSignature;
            0    5     1  digest  Lorg/bouncycastle/crypto/Digest;
            0    5     2  cipher  Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
    MethodParameters:
        Name  Flags
      digest  
      cipher  

  protected void <init>(org.bouncycastle.asn1.DERObjectIdentifier, org.bouncycastle.crypto.Digest, org.bouncycastle.crypto.AsymmetricBlockCipher);
    descriptor: (Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/crypto/Digest;Lorg/bouncycastle/crypto/AsymmetricBlockCipher;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
        start local 1 // org.bouncycastle.asn1.DERObjectIdentifier objId
        start local 2 // org.bouncycastle.crypto.Digest digest
        start local 3 // org.bouncycastle.crypto.AsymmetricBlockCipher cipher
         0: .line 59
            aload 0 /* this */
            invokespecial java.security.SignatureSpi.<init>:()V
         1: .line 64
            aload 0 /* this */
            aload 2 /* digest */
            putfield org.bouncycastle.jce.provider.JDKDigestSignature.digest:Lorg/bouncycastle/crypto/Digest;
         2: .line 65
            aload 0 /* this */
            aload 3 /* cipher */
            putfield org.bouncycastle.jce.provider.JDKDigestSignature.cipher:Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
         3: .line 66
            aload 0 /* this */
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            aload 1 /* objId */
            getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
            putfield org.bouncycastle.jce.provider.JDKDigestSignature.algId:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
         4: .line 67
            return
        end local 3 // org.bouncycastle.crypto.AsymmetricBlockCipher cipher
        end local 2 // org.bouncycastle.crypto.Digest digest
        end local 1 // org.bouncycastle.asn1.DERObjectIdentifier objId
        end local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/bouncycastle/jce/provider/JDKDigestSignature;
            0    5     1   objId  Lorg/bouncycastle/asn1/DERObjectIdentifier;
            0    5     2  digest  Lorg/bouncycastle/crypto/Digest;
            0    5     3  cipher  Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
    MethodParameters:
        Name  Flags
      objId   
      digest  
      cipher  

  protected void engineInitVerify(java.security.PublicKey);
    descriptor: (Ljava/security/PublicKey;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
        start local 1 // java.security.PublicKey publicKey
         0: .line 73
            aload 1 /* publicKey */
            instanceof java.security.interfaces.RSAPublicKey
            ifne 2
         1: .line 75
            new java.security.InvalidKeyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Supplied key ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 1 /* publicKey */
            invokevirtual org.bouncycastle.jce.provider.JDKDigestSignature.getType:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ") is not a RSAPublicKey instance"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 78
      StackMap locals:
      StackMap stack:
            aload 1 /* publicKey */
            checkcast java.security.interfaces.RSAPublicKey
            invokestatic org.bouncycastle.jce.provider.RSAUtil.generatePublicKeyParameter:(Ljava/security/interfaces/RSAPublicKey;)Lorg/bouncycastle/crypto/params/RSAKeyParameters;
            astore 2 /* param */
        start local 2 // org.bouncycastle.crypto.CipherParameters param
         3: .line 80
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKDigestSignature.digest:Lorg/bouncycastle/crypto/Digest;
            invokeinterface org.bouncycastle.crypto.Digest.reset:()V
         4: .line 81
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKDigestSignature.cipher:Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
            iconst_0
            aload 2 /* param */
            invokeinterface org.bouncycastle.crypto.AsymmetricBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
         5: .line 82
            return
        end local 2 // org.bouncycastle.crypto.CipherParameters param
        end local 1 // java.security.PublicKey publicKey
        end local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/bouncycastle/jce/provider/JDKDigestSignature;
            0    6     1  publicKey  Ljava/security/PublicKey;
            3    6     2      param  Lorg/bouncycastle/crypto/CipherParameters;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
           Name  Flags
      publicKey  

  protected void engineInitSign(java.security.PrivateKey);
    descriptor: (Ljava/security/PrivateKey;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
        start local 1 // java.security.PrivateKey privateKey
         0: .line 88
            aload 1 /* privateKey */
            instanceof java.security.interfaces.RSAPrivateKey
            ifne 2
         1: .line 90
            new java.security.InvalidKeyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Supplied key ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 1 /* privateKey */
            invokevirtual org.bouncycastle.jce.provider.JDKDigestSignature.getType:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ") is not a RSAPrivateKey instance"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 93
      StackMap locals:
      StackMap stack:
            aload 1 /* privateKey */
            checkcast java.security.interfaces.RSAPrivateKey
            invokestatic org.bouncycastle.jce.provider.RSAUtil.generatePrivateKeyParameter:(Ljava/security/interfaces/RSAPrivateKey;)Lorg/bouncycastle/crypto/params/RSAKeyParameters;
            astore 2 /* param */
        start local 2 // org.bouncycastle.crypto.CipherParameters param
         3: .line 95
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKDigestSignature.digest:Lorg/bouncycastle/crypto/Digest;
            invokeinterface org.bouncycastle.crypto.Digest.reset:()V
         4: .line 97
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKDigestSignature.cipher:Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
            iconst_1
            aload 2 /* param */
            invokeinterface org.bouncycastle.crypto.AsymmetricBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
         5: .line 98
            return
        end local 2 // org.bouncycastle.crypto.CipherParameters param
        end local 1 // java.security.PrivateKey privateKey
        end local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/bouncycastle/jce/provider/JDKDigestSignature;
            0    6     1  privateKey  Ljava/security/PrivateKey;
            3    6     2       param  Lorg/bouncycastle/crypto/CipherParameters;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
            Name  Flags
      privateKey  

  private java.lang.String getType(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
        start local 1 // java.lang.Object o
         0: .line 103
            aload 1 /* o */
            ifnonnull 2
         1: .line 105
            aconst_null
            areturn
         2: .line 108
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object o
        end local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/jce/provider/JDKDigestSignature;
            0    3     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  protected void engineUpdate(byte);
    descriptor: (B)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
        start local 1 // byte b
         0: .line 115
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKDigestSignature.digest:Lorg/bouncycastle/crypto/Digest;
            iload 1 /* b */
            invokeinterface org.bouncycastle.crypto.Digest.update:(B)V
         1: .line 116
            return
        end local 1 // byte b
        end local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/jce/provider/JDKDigestSignature;
            0    2     1     b  B
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
      Name  Flags
      b     

  protected void engineUpdate(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 124
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKDigestSignature.digest:Lorg/bouncycastle/crypto/Digest;
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
         1: .line 125
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/jce/provider/JDKDigestSignature;
            0    2     1     b  [B
            0    2     2   off  I
            0    2     3   len  I
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  protected byte[] engineSign();
    descriptor: ()[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
         0: .line 130
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKDigestSignature.digest:Lorg/bouncycastle/crypto/Digest;
            invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
            newarray 8
            astore 1 /* hash */
        start local 1 // byte[] hash
         1: .line 132
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKDigestSignature.digest:Lorg/bouncycastle/crypto/Digest;
            aload 1 /* hash */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
         2: .line 136
            aload 0 /* this */
            aload 1 /* hash */
            invokevirtual org.bouncycastle.jce.provider.JDKDigestSignature.derEncode:([B)[B
            astore 2 /* bytes */
        start local 2 // byte[] bytes
         3: .line 138
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKDigestSignature.cipher:Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
            aload 2 /* bytes */
            iconst_0
            aload 2 /* bytes */
            arraylength
            invokeinterface org.bouncycastle.crypto.AsymmetricBlockCipher.processBlock:([BII)[B
         4: areturn
        end local 2 // byte[] bytes
         5: .line 140
      StackMap locals: org.bouncycastle.jce.provider.JDKDigestSignature byte[]
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
            pop
         6: .line 142
            new java.security.SignatureException
            dup
            ldc "key too small for signature type"
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 144
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         8: .line 146
            new java.security.SignatureException
            dup
            aload 2 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Exception e
        end local 1 // byte[] hash
        end local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/bouncycastle/jce/provider/JDKDigestSignature;
            1    9     1   hash  [B
            3    5     2  bytes  [B
            8    9     2      e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     4       5  Class java.lang.ArrayIndexOutOfBoundsException
           2     4       7  Class java.lang.Exception
    Exceptions:
      throws java.security.SignatureException

  protected boolean engineVerify(byte[]);
    descriptor: ([B)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
        start local 1 // byte[] sigBytes
         0: .line 154
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKDigestSignature.digest:Lorg/bouncycastle/crypto/Digest;
            invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
            newarray 8
            astore 2 /* hash */
        start local 2 // byte[] hash
         1: .line 156
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKDigestSignature.digest:Lorg/bouncycastle/crypto/Digest;
            aload 2 /* hash */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
         2: .line 163
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKDigestSignature.cipher:Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
            aload 1 /* sigBytes */
            iconst_0
            aload 1 /* sigBytes */
            arraylength
            invokeinterface org.bouncycastle.crypto.AsymmetricBlockCipher.processBlock:([BII)[B
            astore 3 /* sig */
        start local 3 // byte[] sig
         3: .line 165
            aload 0 /* this */
            aload 2 /* hash */
            invokevirtual org.bouncycastle.jce.provider.JDKDigestSignature.derEncode:([B)[B
            astore 4 /* expected */
        start local 4 // byte[] expected
         4: .line 166
            goto 7
        end local 4 // byte[] expected
        end local 3 // byte[] sig
         5: .line 167
      StackMap locals: org.bouncycastle.jce.provider.JDKDigestSignature byte[] byte[]
      StackMap stack: java.lang.Exception
            pop
         6: .line 169
            iconst_0
            ireturn
        start local 3 // byte[] sig
        start local 4 // byte[] expected
         7: .line 172
      StackMap locals: byte[] byte[]
      StackMap stack:
            aload 3 /* sig */
            arraylength
            aload 4 /* expected */
            arraylength
            if_icmpne 15
         8: .line 174
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         9: goto 13
        10: .line 176
      StackMap locals: int
      StackMap stack:
            aload 3 /* sig */
            iload 5 /* i */
            baload
            aload 4 /* expected */
            iload 5 /* i */
            baload
            if_icmpeq 12
        11: .line 178
            iconst_0
            ireturn
        12: .line 174
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            aload 3 /* sig */
            arraylength
            if_icmplt 10
        end local 5 // int i
        14: .line 181
            goto 34
        15: .line 182
      StackMap locals:
      StackMap stack:
            aload 3 /* sig */
            arraylength
            aload 4 /* expected */
            arraylength
            iconst_2
            isub
            if_icmpne 33
        16: .line 184
            aload 3 /* sig */
            arraylength
            aload 2 /* hash */
            arraylength
            isub
            iconst_2
            isub
            istore 5 /* sigOffset */
        start local 5 // int sigOffset
        17: .line 185
            aload 4 /* expected */
            arraylength
            aload 2 /* hash */
            arraylength
            isub
            iconst_2
            isub
            istore 6 /* expectedOffset */
        start local 6 // int expectedOffset
        18: .line 187
            aload 4 /* expected */
            iconst_1
            dup2
            baload
            iconst_2
            isub
            i2b
            bastore
        19: .line 188
            aload 4 /* expected */
            iconst_3
            dup2
            baload
            iconst_2
            isub
            i2b
            bastore
        20: .line 190
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        21: goto 25
        22: .line 192
      StackMap locals: int int int
      StackMap stack:
            aload 3 /* sig */
            iload 5 /* sigOffset */
            iload 7 /* i */
            iadd
            baload
            aload 4 /* expected */
            iload 6 /* expectedOffset */
            iload 7 /* i */
            iadd
            baload
            if_icmpeq 24
        23: .line 194
            iconst_0
            ireturn
        24: .line 190
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 7 /* i */
            aload 2 /* hash */
            arraylength
            if_icmplt 22
        end local 7 // int i
        26: .line 198
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        27: goto 31
        28: .line 200
      StackMap locals:
      StackMap stack:
            aload 3 /* sig */
            iload 7 /* i */
            baload
            aload 4 /* expected */
            iload 7 /* i */
            baload
            if_icmpeq 30
        29: .line 202
            iconst_0
            ireturn
        30: .line 198
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 7 /* i */
            iload 5 /* sigOffset */
            if_icmplt 28
        end local 7 // int i
        end local 6 // int expectedOffset
        end local 5 // int sigOffset
        32: .line 205
            goto 34
        33: .line 208
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        34: .line 211
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // byte[] expected
        end local 3 // byte[] sig
        end local 2 // byte[] hash
        end local 1 // byte[] sigBytes
        end local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   35     0            this  Lorg/bouncycastle/jce/provider/JDKDigestSignature;
            0   35     1        sigBytes  [B
            1   35     2            hash  [B
            3    5     3             sig  [B
            7   35     3             sig  [B
            4    5     4        expected  [B
            7   35     4        expected  [B
            9   14     5               i  I
           17   32     5       sigOffset  I
           18   32     6  expectedOffset  I
           21   26     7               i  I
           27   32     7               i  I
      Exception table:
        from    to  target  type
           2     4       5  Class java.lang.Exception
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
          Name  Flags
      sigBytes  

  protected void engineSetParameter(java.security.spec.AlgorithmParameterSpec);
    descriptor: (Ljava/security/spec/AlgorithmParameterSpec;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
        start local 1 // java.security.spec.AlgorithmParameterSpec params
         0: .line 217
            new java.lang.UnsupportedOperationException
            dup
            ldc "engineSetParameter unsupported"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.security.spec.AlgorithmParameterSpec params
        end local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/bouncycastle/jce/provider/JDKDigestSignature;
            0    1     1  params  Ljava/security/spec/AlgorithmParameterSpec;
    MethodParameters:
        Name  Flags
      params  

  protected void engineSetParameter(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
        start local 1 // java.lang.String param
        start local 2 // java.lang.Object value
         0: .line 227
            new java.lang.UnsupportedOperationException
            dup
            ldc "engineSetParameter unsupported"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String param
        end local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/bouncycastle/jce/provider/JDKDigestSignature;
            0    1     1  param  Ljava/lang/String;
            0    1     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      param  
      value  

  protected java.lang.Object engineGetParameter(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
        start local 1 // java.lang.String param
         0: .line 236
            aconst_null
            areturn
        end local 1 // java.lang.String param
        end local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/bouncycastle/jce/provider/JDKDigestSignature;
            0    1     1  param  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      param  

  protected java.security.AlgorithmParameters engineGetParameters();
    descriptor: ()Ljava/security/AlgorithmParameters;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
         0: .line 241
            aconst_null
            areturn
        end local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/provider/JDKDigestSignature;

  private byte[] derEncode(byte[]);
    descriptor: ([B)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
        start local 1 // byte[] hash
         0: .line 248
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKDigestSignature.algId:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            ifnonnull 2
         1: .line 251
            aload 1 /* hash */
            areturn
         2: .line 254
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.asn1.x509.DigestInfo
            dup
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKDigestSignature.algId:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            aload 1 /* hash */
            invokespecial org.bouncycastle.asn1.x509.DigestInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B)V
            astore 2 /* dInfo */
        start local 2 // org.bouncycastle.asn1.x509.DigestInfo dInfo
         3: .line 256
            aload 2 /* dInfo */
            ldc "DER"
            invokevirtual org.bouncycastle.asn1.x509.DigestInfo.getEncoded:(Ljava/lang/String;)[B
            areturn
        end local 2 // org.bouncycastle.asn1.x509.DigestInfo dInfo
        end local 1 // byte[] hash
        end local 0 // org.bouncycastle.jce.provider.JDKDigestSignature this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/bouncycastle/jce/provider/JDKDigestSignature;
            0    4     1   hash  [B
            3    4     2  dInfo  Lorg/bouncycastle/asn1/x509/DigestInfo;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      hash  
}
SourceFile: "JDKDigestSignature.java"
NestMembers:
  org.bouncycastle.jce.provider.JDKDigestSignature$MD2WithRSAEncryption  org.bouncycastle.jce.provider.JDKDigestSignature$MD4WithRSAEncryption  org.bouncycastle.jce.provider.JDKDigestSignature$MD5WithRSAEncryption  org.bouncycastle.jce.provider.JDKDigestSignature$RIPEMD128WithRSAEncryption  org.bouncycastle.jce.provider.JDKDigestSignature$RIPEMD160WithRSAEncryption  org.bouncycastle.jce.provider.JDKDigestSignature$RIPEMD256WithRSAEncryption  org.bouncycastle.jce.provider.JDKDigestSignature$SHA1WithRSAEncryption  org.bouncycastle.jce.provider.JDKDigestSignature$SHA224WithRSAEncryption  org.bouncycastle.jce.provider.JDKDigestSignature$SHA256WithRSAEncryption  org.bouncycastle.jce.provider.JDKDigestSignature$SHA384WithRSAEncryption  org.bouncycastle.jce.provider.JDKDigestSignature$SHA512WithRSAEncryption  org.bouncycastle.jce.provider.JDKDigestSignature$noneRSA
InnerClasses:
  public MD2WithRSAEncryption = org.bouncycastle.jce.provider.JDKDigestSignature$MD2WithRSAEncryption of org.bouncycastle.jce.provider.JDKDigestSignature
  public MD4WithRSAEncryption = org.bouncycastle.jce.provider.JDKDigestSignature$MD4WithRSAEncryption of org.bouncycastle.jce.provider.JDKDigestSignature
  public MD5WithRSAEncryption = org.bouncycastle.jce.provider.JDKDigestSignature$MD5WithRSAEncryption of org.bouncycastle.jce.provider.JDKDigestSignature
  public RIPEMD128WithRSAEncryption = org.bouncycastle.jce.provider.JDKDigestSignature$RIPEMD128WithRSAEncryption of org.bouncycastle.jce.provider.JDKDigestSignature
  public RIPEMD160WithRSAEncryption = org.bouncycastle.jce.provider.JDKDigestSignature$RIPEMD160WithRSAEncryption of org.bouncycastle.jce.provider.JDKDigestSignature
  public RIPEMD256WithRSAEncryption = org.bouncycastle.jce.provider.JDKDigestSignature$RIPEMD256WithRSAEncryption of org.bouncycastle.jce.provider.JDKDigestSignature
  public SHA1WithRSAEncryption = org.bouncycastle.jce.provider.JDKDigestSignature$SHA1WithRSAEncryption of org.bouncycastle.jce.provider.JDKDigestSignature
  public SHA224WithRSAEncryption = org.bouncycastle.jce.provider.JDKDigestSignature$SHA224WithRSAEncryption of org.bouncycastle.jce.provider.JDKDigestSignature
  public SHA256WithRSAEncryption = org.bouncycastle.jce.provider.JDKDigestSignature$SHA256WithRSAEncryption of org.bouncycastle.jce.provider.JDKDigestSignature
  public SHA384WithRSAEncryption = org.bouncycastle.jce.provider.JDKDigestSignature$SHA384WithRSAEncryption of org.bouncycastle.jce.provider.JDKDigestSignature
  public SHA512WithRSAEncryption = org.bouncycastle.jce.provider.JDKDigestSignature$SHA512WithRSAEncryption of org.bouncycastle.jce.provider.JDKDigestSignature
  public noneRSA = org.bouncycastle.jce.provider.JDKDigestSignature$noneRSA of org.bouncycastle.jce.provider.JDKDigestSignature