public class sun.security.rsa.RSAPSSSignature extends java.security.SignatureSpi
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.rsa.RSAPSSSignature
  super_class: java.security.SignatureSpi
{
  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final byte[] EIGHT_BYTES_OF_ZEROS;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.Hashtable<java.lang.String, java.lang.Integer> DIGEST_LENGTHS;
    descriptor: Ljava/util/Hashtable;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Integer;>;

  private java.security.MessageDigest md;
    descriptor: Ljava/security/MessageDigest;
    flags: (0x0002) ACC_PRIVATE

  private boolean digestReset;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.security.interfaces.RSAPrivateKey privKey;
    descriptor: Ljava/security/interfaces/RSAPrivateKey;
    flags: (0x0002) ACC_PRIVATE

  private java.security.interfaces.RSAPublicKey pubKey;
    descriptor: Ljava/security/interfaces/RSAPublicKey;
    flags: (0x0002) ACC_PRIVATE

  private java.security.spec.PSSParameterSpec sigParams;
    descriptor: Ljava/security/spec/PSSParameterSpec;
    flags: (0x0002) ACC_PRIVATE

  private java.security.SecureRandom random;
    descriptor: Ljava/security/SecureRandom;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 82
            bipush 8
            newarray 8
            putstatic sun.security.rsa.RSAPSSSignature.EIGHT_BYTES_OF_ZEROS:[B
         1: .line 85
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
         2: .line 84
            putstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
         3: .line 87
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            ldc "SHA-1"
            bipush 20
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 88
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            ldc "SHA"
            bipush 20
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 89
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            ldc "SHA1"
            bipush 20
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 90
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            ldc "SHA-224"
            bipush 28
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 91
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            ldc "SHA224"
            bipush 28
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 92
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            ldc "SHA-256"
            bipush 32
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 93
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            ldc "SHA256"
            bipush 32
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 94
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            ldc "SHA-384"
            bipush 48
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 95
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            ldc "SHA384"
            bipush 48
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 96
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            ldc "SHA-512"
            bipush 64
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 97
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            ldc "SHA512"
            bipush 64
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 98
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            ldc "SHA-512/224"
            bipush 28
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 99
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            ldc "SHA512/224"
            bipush 28
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 100
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            ldc "SHA-512/256"
            bipush 32
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 101
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            ldc "SHA512/256"
            bipush 32
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 102
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private boolean isDigestEqual(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // sun.security.rsa.RSAPSSSignature this
        start local 1 // java.lang.String stdAlg
        start local 2 // java.lang.String givenAlg
         0: .line 60
            aload 1 /* stdAlg */
            ifnull 1
            aload 2 /* givenAlg */
            ifnonnull 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
         2: .line 62
      StackMap locals:
      StackMap stack:
            aload 2 /* givenAlg */
            ldc "-"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_m1
            if_icmpeq 4
         3: .line 63
            aload 1 /* stdAlg */
            aload 2 /* givenAlg */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ireturn
         4: .line 65
      StackMap locals:
      StackMap stack:
            aload 1 /* stdAlg */
            ldc "SHA-1"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         5: .line 66
            aload 2 /* givenAlg */
            ldc "SHA"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 8
         6: .line 67
            aload 2 /* givenAlg */
            ldc "SHA1"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 8
         7: .line 66
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         8: iconst_1
            ireturn
         9: .line 69
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 2 /* givenAlg */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
        10: .line 71
            aload 2 /* givenAlg */
            iconst_1
            iconst_0
            ldc "SHA"
            iconst_0
            iconst_3
            invokevirtual java.lang.String.regionMatches:(ZILjava/lang/String;II)Z
            ifeq 13
        11: .line 72
            aload 3 /* sb */
            iconst_3
            ldc "-"
            invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* givenAlg */
        12: .line 73
            aload 1 /* stdAlg */
            aload 2 /* givenAlg */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ireturn
        13: .line 75
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            new java.security.ProviderException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported digest algorithm "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 76
            aload 2 /* givenAlg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 75
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.StringBuilder sb
        end local 2 // java.lang.String givenAlg
        end local 1 // java.lang.String stdAlg
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lsun/security/rsa/RSAPSSSignature;
            0   16     1    stdAlg  Ljava/lang/String;
            0   16     2  givenAlg  Ljava/lang/String;
           10   16     3        sb  Ljava/lang/StringBuilder;
    MethodParameters:
          Name  Flags
      stdAlg    
      givenAlg  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.rsa.RSAPSSSignature this
         0: .line 122
            aload 0 /* this */
            invokespecial java.security.SignatureSpi.<init>:()V
         1: .line 107
            aload 0 /* this */
            iconst_1
            putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
         2: .line 110
            aload 0 /* this */
            aconst_null
            putfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
         3: .line 112
            aload 0 /* this */
            aconst_null
            putfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
         4: .line 114
            aload 0 /* this */
            aconst_null
            putfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
         5: .line 123
            aload 0 /* this */
            aconst_null
            putfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
         6: .line 124
            return
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/rsa/RSAPSSSignature;

  protected void engineInitVerify(java.security.PublicKey);
    descriptor: (Ljava/security/PublicKey;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.rsa.RSAPSSSignature this
        start local 1 // java.security.PublicKey publicKey
         0: .line 130
            aload 1 /* publicKey */
            instanceof java.security.interfaces.RSAPublicKey
            ifne 2
         1: .line 131
            new java.security.InvalidKeyException
            dup
            ldc "key must be RSAPublicKey"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* publicKey */
            checkcast java.security.interfaces.RSAKey
            invokevirtual sun.security.rsa.RSAPSSSignature.isValid:(Ljava/security/interfaces/RSAKey;)Ljava/security/interfaces/RSAKey;
            checkcast java.security.interfaces.RSAPublicKey
            putfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
         3: .line 134
            aload 0 /* this */
            aconst_null
            putfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
         4: .line 135
            aload 0 /* this */
            invokevirtual sun.security.rsa.RSAPSSSignature.resetDigest:()V
         5: .line 136
            return
        end local 1 // java.security.PublicKey publicKey
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lsun/security/rsa/RSAPSSSignature;
            0    6     1  publicKey  Ljava/security/PublicKey;
    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=3, locals=2, args_size=2
        start local 0 // sun.security.rsa.RSAPSSSignature this
        start local 1 // java.security.PrivateKey privateKey
         0: .line 142
            aload 0 /* this */
            aload 1 /* privateKey */
            aconst_null
            invokevirtual sun.security.rsa.RSAPSSSignature.engineInitSign:(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
         1: .line 143
            return
        end local 1 // java.security.PrivateKey privateKey
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lsun/security/rsa/RSAPSSSignature;
            0    2     1  privateKey  Ljava/security/PrivateKey;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
            Name  Flags
      privateKey  

  protected void engineInitSign(java.security.PrivateKey, java.security.SecureRandom);
    descriptor: (Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.rsa.RSAPSSSignature this
        start local 1 // java.security.PrivateKey privateKey
        start local 2 // java.security.SecureRandom random
         0: .line 149
            aload 1 /* privateKey */
            instanceof java.security.interfaces.RSAPrivateKey
            ifne 2
         1: .line 150
            new java.security.InvalidKeyException
            dup
            ldc "key must be RSAPrivateKey"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* privateKey */
            checkcast java.security.interfaces.RSAKey
            invokevirtual sun.security.rsa.RSAPSSSignature.isValid:(Ljava/security/interfaces/RSAKey;)Ljava/security/interfaces/RSAKey;
            checkcast java.security.interfaces.RSAPrivateKey
            putfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
         3: .line 153
            aload 0 /* this */
            aconst_null
            putfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
         4: .line 154
            aload 0 /* this */
         5: .line 155
            aload 2 /* random */
            ifnonnull 6
            invokestatic sun.security.jca.JCAUtil.getSecureRandom:()Ljava/security/SecureRandom;
            goto 7
      StackMap locals:
      StackMap stack: sun.security.rsa.RSAPSSSignature
         6: aload 2 /* random */
         7: .line 154
      StackMap locals: sun.security.rsa.RSAPSSSignature java.security.PrivateKey java.security.SecureRandom
      StackMap stack: sun.security.rsa.RSAPSSSignature java.security.SecureRandom
            putfield sun.security.rsa.RSAPSSSignature.random:Ljava/security/SecureRandom;
         8: .line 156
            aload 0 /* this */
            invokevirtual sun.security.rsa.RSAPSSSignature.resetDigest:()V
         9: .line 157
            return
        end local 2 // java.security.SecureRandom random
        end local 1 // java.security.PrivateKey privateKey
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lsun/security/rsa/RSAPSSSignature;
            0   10     1  privateKey  Ljava/security/PrivateKey;
            0   10     2      random  Ljava/security/SecureRandom;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
            Name  Flags
      privateKey  
      random      

  private static boolean isCompatible(java.security.spec.AlgorithmParameterSpec, java.security.spec.PSSParameterSpec);
    descriptor: (Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/spec/PSSParameterSpec;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=2
        start local 0 // java.security.spec.AlgorithmParameterSpec keyParams
        start local 1 // java.security.spec.PSSParameterSpec sigParams
         0: .line 168
            aload 0 /* keyParams */
            ifnonnull 2
         1: .line 170
            iconst_1
            ireturn
         2: .line 172
      StackMap locals:
      StackMap stack:
            aload 0 /* keyParams */
            instanceof java.security.spec.PSSParameterSpec
            ifne 4
         3: .line 173
            iconst_0
            ireturn
         4: .line 176
      StackMap locals:
      StackMap stack:
            aload 1 /* sigParams */
            ifnonnull 6
         5: .line 177
            iconst_1
            ireturn
         6: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* keyParams */
            checkcast java.security.spec.PSSParameterSpec
            astore 2 /* pssKeyParams */
        start local 2 // java.security.spec.PSSParameterSpec pssKeyParams
         7: .line 181
            aload 2 /* pssKeyParams */
            invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
            aload 1 /* sigParams */
            invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
            if_icmple 9
         8: .line 182
            iconst_0
            ireturn
         9: .line 187
      StackMap locals: java.security.spec.PSSParameterSpec
      StackMap stack:
            new java.security.spec.PSSParameterSpec
            dup
            aload 2 /* pssKeyParams */
            invokevirtual java.security.spec.PSSParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
        10: .line 188
            aload 2 /* pssKeyParams */
            invokevirtual java.security.spec.PSSParameterSpec.getMGFAlgorithm:()Ljava/lang/String;
        11: .line 189
            aload 2 /* pssKeyParams */
            invokevirtual java.security.spec.PSSParameterSpec.getMGFParameters:()Ljava/security/spec/AlgorithmParameterSpec;
        12: .line 190
            aload 1 /* sigParams */
            invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
        13: .line 191
            aload 2 /* pssKeyParams */
            invokevirtual java.security.spec.PSSParameterSpec.getTrailerField:()I
        14: .line 187
            invokespecial java.security.spec.PSSParameterSpec.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;II)V
        15: .line 186
            astore 3 /* keyParams2 */
        start local 3 // java.security.spec.PSSParameterSpec keyParams2
        16: .line 192
            new sun.security.rsa.PSSParameters
            dup
            invokespecial sun.security.rsa.PSSParameters.<init>:()V
            astore 4 /* ap */
        start local 4 // sun.security.rsa.PSSParameters ap
        17: .line 195
            aload 4 /* ap */
            aload 3 /* keyParams2 */
            invokevirtual sun.security.rsa.PSSParameters.engineInit:(Ljava/security/spec/AlgorithmParameterSpec;)V
        18: .line 196
            aload 4 /* ap */
            invokevirtual sun.security.rsa.PSSParameters.engineGetEncoded:()[B
            astore 5 /* encoded */
        start local 5 // byte[] encoded
        19: .line 197
            aload 4 /* ap */
            aload 1 /* sigParams */
            invokevirtual sun.security.rsa.PSSParameters.engineInit:(Ljava/security/spec/AlgorithmParameterSpec;)V
        20: .line 198
            aload 4 /* ap */
            invokevirtual sun.security.rsa.PSSParameters.engineGetEncoded:()[B
            astore 6 /* encoded2 */
        start local 6 // byte[] encoded2
        21: .line 199
            aload 5 /* encoded */
            aload 6 /* encoded2 */
            invokestatic java.util.Arrays.equals:([B[B)Z
        22: ireturn
        end local 6 // byte[] encoded2
        end local 5 // byte[] encoded
        23: .line 200
      StackMap locals: java.security.spec.AlgorithmParameterSpec java.security.spec.PSSParameterSpec java.security.spec.PSSParameterSpec java.security.spec.PSSParameterSpec sun.security.rsa.PSSParameters
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
        24: .line 204
            iconst_0
            ireturn
        end local 5 // java.lang.Exception e
        end local 4 // sun.security.rsa.PSSParameters ap
        end local 3 // java.security.spec.PSSParameterSpec keyParams2
        end local 2 // java.security.spec.PSSParameterSpec pssKeyParams
        end local 1 // java.security.spec.PSSParameterSpec sigParams
        end local 0 // java.security.spec.AlgorithmParameterSpec keyParams
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   25     0     keyParams  Ljava/security/spec/AlgorithmParameterSpec;
            0   25     1     sigParams  Ljava/security/spec/PSSParameterSpec;
            7   25     2  pssKeyParams  Ljava/security/spec/PSSParameterSpec;
           16   25     3    keyParams2  Ljava/security/spec/PSSParameterSpec;
           17   25     4            ap  Lsun/security/rsa/PSSParameters;
           19   23     5       encoded  [B
           21   23     6      encoded2  [B
           24   25     5             e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          17    22      23  Class java.lang.Exception
    MethodParameters:
           Name  Flags
      keyParams  
      sigParams  

  private java.security.interfaces.RSAKey isValid(java.security.interfaces.RSAKey);
    descriptor: (Ljava/security/interfaces/RSAKey;)Ljava/security/interfaces/RSAKey;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // sun.security.rsa.RSAPSSSignature this
        start local 1 // java.security.interfaces.RSAKey rsaKey
         0: .line 214
            aload 1 /* rsaKey */
            invokeinterface java.security.interfaces.RSAKey.getParams:()Ljava/security/spec/AlgorithmParameterSpec;
            pop
         1: .line 216
            aload 1 /* rsaKey */
            invokeinterface java.security.interfaces.RSAKey.getParams:()Ljava/security/spec/AlgorithmParameterSpec;
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
            invokestatic sun.security.rsa.RSAPSSSignature.isCompatible:(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/spec/PSSParameterSpec;)Z
            ifne 5
         2: .line 217
            new java.security.InvalidKeyException
            dup
         3: .line 218
            ldc "Key contains incompatible PSS parameter values"
         4: .line 217
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 221
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
            ifnull 13
         6: .line 223
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.spec.PSSParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
         7: .line 222
            astore 2 /* hLen */
        start local 2 // java.lang.Integer hLen
         8: .line 224
            aload 2 /* hLen */
            ifnonnull 12
         9: .line 225
            new java.security.ProviderException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported digest algo: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 226
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.spec.PSSParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 225
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 228
      StackMap locals: java.lang.Integer
      StackMap stack:
            aload 1 /* rsaKey */
            aload 2 /* hLen */
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
            invokestatic sun.security.rsa.RSAPSSSignature.checkKeyLength:(Ljava/security/interfaces/RSAKey;II)V
        end local 2 // java.lang.Integer hLen
        13: .line 230
      StackMap locals:
      StackMap stack:
            aload 1 /* rsaKey */
        14: areturn
        15: .line 231
      StackMap locals:
      StackMap stack: java.security.SignatureException
            astore 2 /* e */
        start local 2 // java.security.SignatureException e
        16: .line 232
            new java.security.InvalidKeyException
            dup
            aload 2 /* e */
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.SignatureException e
        end local 1 // java.security.interfaces.RSAKey rsaKey
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Lsun/security/rsa/RSAPSSSignature;
            0   17     1  rsaKey  Ljava/security/interfaces/RSAKey;
            8   13     2    hLen  Ljava/lang/Integer;
           16   17     2       e  Ljava/security/SignatureException;
      Exception table:
        from    to  target  type
           0    14      15  Class java.security.SignatureException
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
        Name  Flags
      rsaKey  

  private java.security.spec.PSSParameterSpec validateSigParams(java.security.spec.AlgorithmParameterSpec);
    descriptor: (Ljava/security/spec/AlgorithmParameterSpec;)Ljava/security/spec/PSSParameterSpec;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // sun.security.rsa.RSAPSSSignature this
        start local 1 // java.security.spec.AlgorithmParameterSpec p
         0: .line 241
            aload 1 /* p */
            ifnonnull 4
         1: .line 242
            new java.security.InvalidAlgorithmParameterException
            dup
         2: .line 243
            ldc "Parameters cannot be null"
         3: .line 242
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 245
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            instanceof java.security.spec.PSSParameterSpec
            ifne 8
         5: .line 246
            new java.security.InvalidAlgorithmParameterException
            dup
         6: .line 247
            ldc "parameters must be type PSSParameterSpec"
         7: .line 246
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 250
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            checkcast java.security.spec.PSSParameterSpec
            astore 2 /* params */
        start local 2 // java.security.spec.PSSParameterSpec params
         9: .line 251
            aload 2 /* params */
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
            if_acmpne 10
            aload 2 /* params */
            areturn
        10: .line 253
      StackMap locals: java.security.spec.PSSParameterSpec
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
            ifnonnull 11
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
      StackMap locals:
      StackMap stack: java.security.interfaces.RSAKey
        12: astore 3 /* key */
        start local 3 // java.security.interfaces.RSAKey key
        13: .line 255
            aload 3 /* key */
            ifnull 18
        14: .line 256
            aload 3 /* key */
            invokeinterface java.security.interfaces.RSAKey.getParams:()Ljava/security/spec/AlgorithmParameterSpec;
            aload 2 /* params */
            invokestatic sun.security.rsa.RSAPSSSignature.isCompatible:(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/spec/PSSParameterSpec;)Z
            ifne 18
        15: .line 257
            new java.security.InvalidAlgorithmParameterException
            dup
        16: .line 258
            ldc "Signature parameters does not match key parameters"
        17: .line 257
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 262
      StackMap locals: java.security.interfaces.RSAKey
      StackMap stack:
            aload 2 /* params */
            invokevirtual java.security.spec.PSSParameterSpec.getMGFAlgorithm:()Ljava/lang/String;
            ldc "MGF1"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 20
        19: .line 263
            new java.security.InvalidAlgorithmParameterException
            dup
            ldc "Only supports MGF1"
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 266
      StackMap locals:
      StackMap stack:
            aload 2 /* params */
            invokevirtual java.security.spec.PSSParameterSpec.getTrailerField:()I
            iconst_1
            if_icmpeq 24
        21: .line 267
            new java.security.InvalidAlgorithmParameterException
            dup
        22: .line 268
            ldc "Only supports TrailerFieldBC(1)"
        23: .line 267
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 271
      StackMap locals:
      StackMap stack:
            aload 2 /* params */
            invokevirtual java.security.spec.PSSParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
            astore 4 /* digestAlgo */
        start local 4 // java.lang.String digestAlgo
        25: .line 273
            aload 3 /* key */
            ifnull 31
        26: .line 275
            getstatic sun.security.rsa.RSAPSSSignature.DIGEST_LENGTHS:Ljava/util/Hashtable;
            aload 4 /* digestAlgo */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 5 /* hLen */
        start local 5 // int hLen
        27: .line 276
            aload 3 /* key */
            iload 5 /* hLen */
            aload 2 /* params */
            invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
            invokestatic sun.security.rsa.RSAPSSSignature.checkKeyLength:(Ljava/security/interfaces/RSAKey;II)V
        end local 5 // int hLen
        28: .line 277
            goto 31
      StackMap locals: sun.security.rsa.RSAPSSSignature java.security.spec.AlgorithmParameterSpec java.security.spec.PSSParameterSpec java.security.interfaces.RSAKey java.lang.String
      StackMap stack: java.security.SignatureException
        29: astore 5 /* e */
        start local 5 // java.security.SignatureException e
        30: .line 278
            new java.security.InvalidAlgorithmParameterException
            dup
            aload 5 /* e */
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.security.SignatureException e
        31: .line 281
      StackMap locals:
      StackMap stack:
            aload 2 /* params */
            areturn
        end local 4 // java.lang.String digestAlgo
        end local 3 // java.security.interfaces.RSAKey key
        end local 2 // java.security.spec.PSSParameterSpec params
        end local 1 // java.security.spec.AlgorithmParameterSpec p
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   32     0        this  Lsun/security/rsa/RSAPSSSignature;
            0   32     1           p  Ljava/security/spec/AlgorithmParameterSpec;
            9   32     2      params  Ljava/security/spec/PSSParameterSpec;
           13   32     3         key  Ljava/security/interfaces/RSAKey;
           25   32     4  digestAlgo  Ljava/lang/String;
           27   28     5        hLen  I
           30   31     5           e  Ljava/security/SignatureException;
      Exception table:
        from    to  target  type
          26    28      29  Class java.security.SignatureException
    Exceptions:
      throws java.security.InvalidAlgorithmParameterException
    MethodParameters:
      Name  Flags
      p     

  private void ensureInit();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.security.rsa.RSAPSSSignature this
         0: .line 289
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
            ifnonnull 1
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
      StackMap locals:
      StackMap stack: java.security.interfaces.RSAKey
         2: astore 1 /* key */
        start local 1 // java.security.interfaces.RSAKey key
         3: .line 290
            aload 1 /* key */
            ifnonnull 5
         4: .line 291
            new java.security.SignatureException
            dup
            ldc "Missing key"
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 293
      StackMap locals: java.security.interfaces.RSAKey
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
            ifnonnull 9
         6: .line 295
            new java.security.SignatureException
            dup
         7: .line 296
            ldc "Parameters required for RSASSA-PSS signatures"
         8: .line 295
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 298
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.security.interfaces.RSAKey key
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/security/rsa/RSAPSSSignature;
            3   10     1   key  Ljava/security/interfaces/RSAKey;
    Exceptions:
      throws java.security.SignatureException

  private static void checkKeyLength(java.security.interfaces.RSAKey, int, int);
    descriptor: (Ljava/security/interfaces/RSAKey;II)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.security.interfaces.RSAKey key
        start local 1 // int digestLen
        start local 2 // int saltLen
         0: .line 306
            aload 0 /* key */
            ifnull 7
         1: .line 307
            aload 0 /* key */
            invokestatic sun.security.rsa.RSAPSSSignature.getKeyLengthInBits:(Ljava/security/interfaces/RSAKey;)I
            bipush 7
            iadd
            iconst_3
            ishr
            istore 3 /* keyLength */
        start local 3 // int keyLength
         2: .line 308
            iload 1 /* digestLen */
            iload 2 /* saltLen */
            invokestatic java.lang.Math.addExact:(II)I
            iconst_2
            invokestatic java.lang.Math.addExact:(II)I
            istore 4 /* minLength */
        start local 4 // int minLength
         3: .line 309
            iload 3 /* keyLength */
            iload 4 /* minLength */
            if_icmpge 7
         4: .line 310
            new java.security.SignatureException
            dup
         5: .line 311
            new java.lang.StringBuilder
            dup
            ldc "Key is too short, need min "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* minLength */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " bytes"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 310
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // int minLength
        end local 3 // int keyLength
         7: .line 314
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int saltLen
        end local 1 // int digestLen
        end local 0 // java.security.interfaces.RSAKey key
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0        key  Ljava/security/interfaces/RSAKey;
            0    8     1  digestLen  I
            0    8     2    saltLen  I
            2    7     3  keyLength  I
            3    7     4  minLength  I
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
           Name  Flags
      key        
      digestLen  
      saltLen    

  private void resetDigest();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.rsa.RSAPSSSignature this
         0: .line 320
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.digestReset:Z
            ifne 3
         1: .line 321
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            invokevirtual java.security.MessageDigest.reset:()V
         2: .line 322
            aload 0 /* this */
            iconst_1
            putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
         3: .line 324
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/rsa/RSAPSSSignature;

  private byte[] getDigestValue();
    descriptor: ()[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.rsa.RSAPSSSignature this
         0: .line 330
            aload 0 /* this */
            iconst_1
            putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
         1: .line 331
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            invokevirtual java.security.MessageDigest.digest:()[B
            areturn
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/rsa/RSAPSSSignature;

  protected void engineUpdate(byte);
    descriptor: (B)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.rsa.RSAPSSSignature this
        start local 1 // byte b
         0: .line 337
            aload 0 /* this */
            invokevirtual sun.security.rsa.RSAPSSSignature.ensureInit:()V
         1: .line 338
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            iload 1 /* b */
            invokevirtual java.security.MessageDigest.update:(B)V
         2: .line 339
            aload 0 /* this */
            iconst_0
            putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
         3: .line 340
            return
        end local 1 // byte b
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/rsa/RSAPSSSignature;
            0    4     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 // sun.security.rsa.RSAPSSSignature this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 346
            aload 0 /* this */
            invokevirtual sun.security.rsa.RSAPSSSignature.ensureInit:()V
         1: .line 347
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual java.security.MessageDigest.update:([BII)V
         2: .line 348
            aload 0 /* this */
            iconst_0
            putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
         3: .line 349
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/rsa/RSAPSSSignature;
            0    4     1     b  [B
            0    4     2   off  I
            0    4     3   len  I
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  protected void engineUpdate(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.rsa.RSAPSSSignature this
        start local 1 // java.nio.ByteBuffer b
         0: .line 355
            aload 0 /* this */
            invokevirtual sun.security.rsa.RSAPSSSignature.ensureInit:()V
         1: .line 356
            goto 4
      StackMap locals:
      StackMap stack: java.security.SignatureException
         2: astore 2 /* se */
        start local 2 // java.security.SignatureException se
         3: .line 358
            new java.lang.RuntimeException
            dup
            aload 2 /* se */
            invokevirtual java.security.SignatureException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.security.SignatureException se
         4: .line 360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            aload 1 /* b */
            invokevirtual java.security.MessageDigest.update:(Ljava/nio/ByteBuffer;)V
         5: .line 361
            aload 0 /* this */
            iconst_0
            putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
         6: .line 362
            return
        end local 1 // java.nio.ByteBuffer b
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/rsa/RSAPSSSignature;
            0    7     1     b  Ljava/nio/ByteBuffer;
            3    4     2    se  Ljava/security/SignatureException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.security.SignatureException
    MethodParameters:
      Name  Flags
      b     

  protected byte[] engineSign();
    descriptor: ()[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // sun.security.rsa.RSAPSSSignature this
         0: .line 367
            aload 0 /* this */
            invokevirtual sun.security.rsa.RSAPSSSignature.ensureInit:()V
         1: .line 368
            aload 0 /* this */
            invokevirtual sun.security.rsa.RSAPSSSignature.getDigestValue:()[B
            astore 1 /* mHash */
        start local 1 // byte[] mHash
         2: .line 370
            aload 0 /* this */
            aload 1 /* mHash */
            invokevirtual sun.security.rsa.RSAPSSSignature.encodeSignature:([B)[B
            astore 2 /* encoded */
        start local 2 // byte[] encoded
         3: .line 371
            aload 2 /* encoded */
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
            iconst_1
            invokestatic sun.security.rsa.RSACore.rsa:([BLjava/security/interfaces/RSAPrivateKey;Z)[B
            astore 3 /* encrypted */
        start local 3 // byte[] encrypted
         4: .line 372
            aload 3 /* encrypted */
         5: areturn
        end local 3 // byte[] encrypted
        end local 2 // byte[] encoded
         6: .line 373
      StackMap locals: sun.security.rsa.RSAPSSSignature byte[]
      StackMap stack: java.security.GeneralSecurityException
            astore 2 /* e */
        start local 2 // java.security.GeneralSecurityException e
         7: .line 374
            new java.security.SignatureException
            dup
            ldc "Could not sign data"
            aload 2 /* e */
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.GeneralSecurityException e
         8: .line 375
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         9: .line 376
            new java.security.SignatureException
            dup
            ldc "Could not encode data"
            aload 2 /* e */
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
        end local 1 // byte[] mHash
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lsun/security/rsa/RSAPSSSignature;
            2   10     1      mHash  [B
            3    6     2    encoded  [B
            4    6     3  encrypted  [B
            7    8     2          e  Ljava/security/GeneralSecurityException;
            9   10     2          e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.security.GeneralSecurityException
           2     5       8  Class java.io.IOException
    Exceptions:
      throws java.security.SignatureException

  protected boolean engineVerify(byte[]);
    descriptor: ([B)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // sun.security.rsa.RSAPSSSignature this
        start local 1 // byte[] sigBytes
         0: .line 384
            aload 0 /* this */
            invokevirtual sun.security.rsa.RSAPSSSignature.ensureInit:()V
         1: .line 386
            aload 1 /* sigBytes */
            arraylength
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
            invokestatic sun.security.rsa.RSACore.getByteLength:(Ljava/security/interfaces/RSAKey;)I
            if_icmpeq 8
         2: .line 387
            new java.security.SignatureException
            dup
         3: .line 388
            new java.lang.StringBuilder
            dup
            ldc "Signature length not correct: got "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 389
            aload 1 /* sigBytes */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " but was expecting "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 390
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
            invokestatic sun.security.rsa.RSACore.getByteLength:(Ljava/security/interfaces/RSAKey;)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         6: .line 388
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 387
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 392
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.rsa.RSAPSSSignature.getDigestValue:()[B
            astore 2 /* mHash */
        start local 2 // byte[] mHash
         9: .line 393
            aload 1 /* sigBytes */
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
            invokestatic sun.security.rsa.RSACore.rsa:([BLjava/security/interfaces/RSAPublicKey;)[B
            astore 3 /* decrypted */
        start local 3 // byte[] decrypted
        10: .line 394
            aload 0 /* this */
            aload 2 /* mHash */
            aload 3 /* decrypted */
            invokevirtual sun.security.rsa.RSAPSSSignature.decodeSignature:([B[B)Z
            istore 5
        11: .line 404
            aload 0 /* this */
            invokevirtual sun.security.rsa.RSAPSSSignature.resetDigest:()V
        12: .line 394
            iload 5
            ireturn
        end local 3 // byte[] decrypted
        end local 2 // byte[] mHash
        13: .line 395
      StackMap locals:
      StackMap stack: javax.crypto.BadPaddingException
            pop
        14: .line 404
            aload 0 /* this */
            invokevirtual sun.security.rsa.RSAPSSSignature.resetDigest:()V
        15: .line 400
            iconst_0
            ireturn
        16: .line 401
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
        17: .line 402
            new java.security.SignatureException
            dup
            ldc "Signature encoding error"
            aload 2 /* e */
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
        18: .line 403
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        19: .line 404
            aload 0 /* this */
            invokevirtual sun.security.rsa.RSAPSSSignature.resetDigest:()V
        20: .line 405
            aload 4
            athrow
        end local 1 // byte[] sigBytes
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   21     0       this  Lsun/security/rsa/RSAPSSSignature;
            0   21     1   sigBytes  [B
            9   13     2      mHash  [B
           10   13     3  decrypted  [B
           17   18     2          e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1    11      13  Class javax.crypto.BadPaddingException
           1    11      16  Class java.io.IOException
           1    11      18  any
          13    14      18  any
          16    18      18  any
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
          Name  Flags
      sigBytes  

  private static int getKeyLengthInBits(java.security.interfaces.RSAKey);
    descriptor: (Ljava/security/interfaces/RSAKey;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.security.interfaces.RSAKey k
         0: .line 410
            aload 0 /* k */
            ifnull 2
         1: .line 411
            aload 0 /* k */
            invokeinterface java.security.interfaces.RSAKey.getModulus:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.bitLength:()I
            ireturn
         2: .line 413
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 0 // java.security.interfaces.RSAKey k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     k  Ljava/security/interfaces/RSAKey;
    MethodParameters:
      Name  Flags
      k     

  private byte[] encodeSignature(byte[]);
    descriptor: ([B)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=13, args_size=2
        start local 0 // sun.security.rsa.RSAPSSSignature this
        start local 1 // byte[] mHash
         0: .line 422
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.spec.PSSParameterSpec.getMGFParameters:()Ljava/security/spec/AlgorithmParameterSpec;
            astore 2 /* mgfParams */
        start local 2 // java.security.spec.AlgorithmParameterSpec mgfParams
         1: .line 424
            aload 2 /* mgfParams */
            ifnull 5
         2: .line 426
            aload 2 /* mgfParams */
            checkcast java.security.spec.MGF1ParameterSpec
            invokevirtual java.security.spec.MGF1ParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
         3: .line 425
            astore 3 /* mgfDigestAlgo */
        start local 3 // java.lang.String mgfDigestAlgo
         4: .line 427
            goto 6
        end local 3 // java.lang.String mgfDigestAlgo
         5: .line 428
      StackMap locals: java.security.spec.AlgorithmParameterSpec
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            invokevirtual java.security.MessageDigest.getAlgorithm:()Ljava/lang/String;
            astore 3 /* mgfDigestAlgo */
        start local 3 // java.lang.String mgfDigestAlgo
         6: .line 431
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.privKey:Ljava/security/interfaces/RSAPrivateKey;
            invokestatic sun.security.rsa.RSAPSSSignature.getKeyLengthInBits:(Ljava/security/interfaces/RSAKey;)I
            iconst_1
            isub
            istore 4 /* emBits */
        start local 4 // int emBits
         7: .line 432
            iload 4 /* emBits */
            bipush 7
            iadd
            iconst_3
            ishr
            istore 5 /* emLen */
        start local 5 // int emLen
         8: .line 433
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            invokevirtual java.security.MessageDigest.getDigestLength:()I
            istore 6 /* hLen */
        start local 6 // int hLen
         9: .line 434
            iload 5 /* emLen */
            iload 6 /* hLen */
            isub
            iconst_1
            isub
            istore 7 /* dbLen */
        start local 7 // int dbLen
        10: .line 435
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
            istore 8 /* sLen */
        start local 8 // int sLen
        11: .line 439
            iload 5 /* emLen */
            newarray 8
            astore 9 /* em */
        start local 9 // byte[] em
        12: .line 442
            aload 9 /* em */
            iload 7 /* dbLen */
            iload 8 /* sLen */
            isub
            iconst_1
            isub
            iconst_1
            bastore
        13: .line 443
            aload 9 /* em */
            aload 9 /* em */
            arraylength
            iconst_1
            isub
            bipush -68
            bastore
        14: .line 445
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.digestReset:Z
            ifne 16
        15: .line 446
            new java.security.ProviderException
            dup
            ldc "Digest should be reset"
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 449
      StackMap locals: sun.security.rsa.RSAPSSSignature byte[] java.security.spec.AlgorithmParameterSpec java.lang.String int int int int int byte[]
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            getstatic sun.security.rsa.RSAPSSSignature.EIGHT_BYTES_OF_ZEROS:[B
            invokevirtual java.security.MessageDigest.update:([B)V
        17: .line 450
            aload 0 /* this */
            iconst_0
            putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
        18: .line 451
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            aload 1 /* mHash */
            invokevirtual java.security.MessageDigest.update:([B)V
        19: .line 452
            iload 8 /* sLen */
            ifeq 24
        20: .line 454
            iload 8 /* sLen */
            newarray 8
            astore 10 /* salt */
        start local 10 // byte[] salt
        21: .line 455
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.random:Ljava/security/SecureRandom;
            aload 10 /* salt */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
        22: .line 456
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            aload 10 /* salt */
            invokevirtual java.security.MessageDigest.update:([B)V
        23: .line 459
            aload 10 /* salt */
            iconst_0
            aload 9 /* em */
            iload 7 /* dbLen */
            iload 8 /* sLen */
            isub
            iload 8 /* sLen */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 10 // byte[] salt
        24: .line 462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            aload 9 /* em */
            iload 7 /* dbLen */
            iload 6 /* hLen */
            invokevirtual java.security.MessageDigest.digest:([BII)I
            pop
        25: .line 463
            aload 0 /* this */
            iconst_1
            putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
        26: .line 469
            new sun.security.rsa.MGF1
            dup
            aload 3 /* mgfDigestAlgo */
            invokespecial sun.security.rsa.MGF1.<init>:(Ljava/lang/String;)V
            astore 10 /* mgf1 */
        start local 10 // sun.security.rsa.MGF1 mgf1
        27: .line 470
            aload 10 /* mgf1 */
            aload 9 /* em */
            iload 7 /* dbLen */
            iload 6 /* hLen */
            iload 7 /* dbLen */
            aload 9 /* em */
            iconst_0
            invokevirtual sun.security.rsa.MGF1.generateAndXor:([BIII[BI)V
        28: .line 474
            iload 5 /* emLen */
            iconst_3
            ishl
            iload 4 /* emBits */
            isub
            istore 11 /* numZeroBits */
        start local 11 // int numZeroBits
        29: .line 476
            iload 11 /* numZeroBits */
            ifeq 32
        30: .line 477
            sipush 255
            iload 11 /* numZeroBits */
            iushr
            i2b
            istore 12 /* MASK */
        start local 12 // byte MASK
        31: .line 478
            aload 9 /* em */
            iconst_0
            aload 9 /* em */
            iconst_0
            baload
            iload 12 /* MASK */
            iand
            i2b
            bastore
        end local 12 // byte MASK
        32: .line 482
      StackMap locals: sun.security.rsa.MGF1 int
      StackMap stack:
            aload 9 /* em */
        33: areturn
        end local 11 // int numZeroBits
        end local 10 // sun.security.rsa.MGF1 mgf1
        end local 9 // byte[] em
        end local 8 // int sLen
        end local 7 // int dbLen
        end local 6 // int hLen
        end local 5 // int emLen
        end local 4 // int emBits
        34: .line 483
      StackMap locals: sun.security.rsa.RSAPSSSignature byte[] java.security.spec.AlgorithmParameterSpec java.lang.String
      StackMap stack: java.security.NoSuchAlgorithmException
            astore 4 /* e */
        start local 4 // java.security.NoSuchAlgorithmException e
        35: .line 484
            new java.io.IOException
            dup
            aload 4 /* e */
            invokevirtual java.security.NoSuchAlgorithmException.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.security.NoSuchAlgorithmException e
        end local 3 // java.lang.String mgfDigestAlgo
        end local 2 // java.security.spec.AlgorithmParameterSpec mgfParams
        end local 1 // byte[] mHash
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   36     0           this  Lsun/security/rsa/RSAPSSSignature;
            0   36     1          mHash  [B
            1   36     2      mgfParams  Ljava/security/spec/AlgorithmParameterSpec;
            4    5     3  mgfDigestAlgo  Ljava/lang/String;
            6   36     3  mgfDigestAlgo  Ljava/lang/String;
            7   34     4         emBits  I
            8   34     5          emLen  I
            9   34     6           hLen  I
           10   34     7          dbLen  I
           11   34     8           sLen  I
           12   34     9             em  [B
           21   24    10           salt  [B
           27   34    10           mgf1  Lsun/security/rsa/MGF1;
           29   34    11    numZeroBits  I
           31   32    12           MASK  B
           35   36     4              e  Ljava/security/NoSuchAlgorithmException;
      Exception table:
        from    to  target  type
           6    33      34  Class java.security.NoSuchAlgorithmException
    Exceptions:
      throws java.io.IOException, java.security.DigestException
    MethodParameters:
       Name  Flags
      mHash  

  private boolean decodeSignature(byte[], byte[]);
    descriptor: ([B[B)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=15, args_size=3
        start local 0 // sun.security.rsa.RSAPSSSignature this
        start local 1 // byte[] mHash
        start local 2 // byte[] em
         0: .line 493
            aload 1 /* mHash */
            arraylength
            istore 3 /* hLen */
        start local 3 // int hLen
         1: .line 494
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
            istore 4 /* sLen */
        start local 4 // int sLen
         2: .line 495
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.pubKey:Ljava/security/interfaces/RSAPublicKey;
            invokestatic sun.security.rsa.RSAPSSSignature.getKeyLengthInBits:(Ljava/security/interfaces/RSAKey;)I
            iconst_1
            isub
            istore 5 /* emBits */
        start local 5 // int emBits
         3: .line 496
            iload 5 /* emBits */
            bipush 7
            iadd
            iconst_3
            ishr
            istore 6 /* emLen */
        start local 6 // int emLen
         4: .line 501
            aload 2 /* em */
            arraylength
            iload 6 /* emLen */
            isub
            istore 7 /* emOfs */
        start local 7 // int emOfs
         5: .line 502
            iload 7 /* emOfs */
            iconst_1
            if_icmpne 7
            aload 2 /* em */
            iconst_0
            baload
            ifeq 7
         6: .line 503
            iconst_0
            ireturn
         7: .line 507
      StackMap locals: sun.security.rsa.RSAPSSSignature byte[] byte[] int int int int int
      StackMap stack:
            iload 6 /* emLen */
            iload 3 /* hLen */
            iload 4 /* sLen */
            iadd
            iconst_2
            iadd
            if_icmpge 9
         8: .line 508
            iconst_0
            ireturn
         9: .line 512
      StackMap locals:
      StackMap stack:
            aload 2 /* em */
            iload 7 /* emOfs */
            iload 6 /* emLen */
            iadd
            iconst_1
            isub
            baload
            bipush -68
            if_icmpeq 11
        10: .line 513
            iconst_0
            ireturn
        11: .line 518
      StackMap locals:
      StackMap stack:
            iload 6 /* emLen */
            iconst_3
            ishl
            iload 5 /* emBits */
            isub
            istore 8 /* numZeroBits */
        start local 8 // int numZeroBits
        12: .line 520
            iload 8 /* numZeroBits */
            ifeq 16
        13: .line 521
            sipush 255
            bipush 8
            iload 8 /* numZeroBits */
            isub
            ishl
            i2b
            istore 9 /* MASK */
        start local 9 // byte MASK
        14: .line 522
            aload 2 /* em */
            iload 7 /* emOfs */
            baload
            iload 9 /* MASK */
            iand
            ifeq 16
        15: .line 523
            iconst_0
            ireturn
        end local 9 // byte MASK
        16: .line 527
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.spec.PSSParameterSpec.getMGFParameters:()Ljava/security/spec/AlgorithmParameterSpec;
            astore 10 /* mgfParams */
        start local 10 // java.security.spec.AlgorithmParameterSpec mgfParams
        17: .line 528
            aload 10 /* mgfParams */
            ifnull 21
        18: .line 530
            aload 10 /* mgfParams */
            checkcast java.security.spec.MGF1ParameterSpec
            invokevirtual java.security.spec.MGF1ParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
        19: .line 529
            astore 9 /* mgfDigestAlgo */
        start local 9 // java.lang.String mgfDigestAlgo
        20: .line 531
            goto 22
        end local 9 // java.lang.String mgfDigestAlgo
        21: .line 532
      StackMap locals: sun.security.rsa.RSAPSSSignature byte[] byte[] int int int int int int top java.security.spec.AlgorithmParameterSpec
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            invokevirtual java.security.MessageDigest.getAlgorithm:()Ljava/lang/String;
            astore 9 /* mgfDigestAlgo */
        start local 9 // java.lang.String mgfDigestAlgo
        22: .line 535
      StackMap locals: sun.security.rsa.RSAPSSSignature byte[] byte[] int int int int int int java.lang.String java.security.spec.AlgorithmParameterSpec
      StackMap stack:
            iload 6 /* emLen */
            iload 3 /* hLen */
            isub
            iconst_1
            isub
            istore 11 /* dbLen */
        start local 11 // int dbLen
        23: .line 537
            new sun.security.rsa.MGF1
            dup
            aload 9 /* mgfDigestAlgo */
            invokespecial sun.security.rsa.MGF1.<init>:(Ljava/lang/String;)V
            astore 12 /* mgf1 */
        start local 12 // sun.security.rsa.MGF1 mgf1
        24: .line 538
            aload 12 /* mgf1 */
            aload 2 /* em */
            iload 7 /* emOfs */
            iload 11 /* dbLen */
            iadd
            iload 3 /* hLen */
            iload 11 /* dbLen */
        25: .line 539
            aload 2 /* em */
            iload 7 /* emOfs */
        26: .line 538
            invokevirtual sun.security.rsa.MGF1.generateAndXor:([BIII[BI)V
        end local 12 // sun.security.rsa.MGF1 mgf1
        27: .line 540
            goto 30
      StackMap locals: sun.security.rsa.RSAPSSSignature byte[] byte[] int int int int int int java.lang.String java.security.spec.AlgorithmParameterSpec int
      StackMap stack: java.security.NoSuchAlgorithmException
        28: astore 12 /* nsae */
        start local 12 // java.security.NoSuchAlgorithmException nsae
        29: .line 541
            new java.io.IOException
            dup
            aload 12 /* nsae */
            invokevirtual java.security.NoSuchAlgorithmException.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 12 // java.security.NoSuchAlgorithmException nsae
        30: .line 546
      StackMap locals:
      StackMap stack:
            iload 8 /* numZeroBits */
            ifeq 33
        31: .line 547
            sipush 255
            iload 8 /* numZeroBits */
            iushr
            i2b
            istore 12 /* MASK */
        start local 12 // byte MASK
        32: .line 548
            aload 2 /* em */
            iload 7 /* emOfs */
            aload 2 /* em */
            iload 7 /* emOfs */
            baload
            iload 12 /* MASK */
            iand
            i2b
            bastore
        end local 12 // byte MASK
        33: .line 552
      StackMap locals:
      StackMap stack:
            iload 7 /* emOfs */
            istore 12 /* i */
        start local 12 // int i
        34: .line 553
            goto 38
        35: .line 554
      StackMap locals: int
      StackMap stack:
            aload 2 /* em */
            iload 12 /* i */
            baload
            ifeq 37
        36: .line 555
            iconst_0
            ireturn
        37: .line 553
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 12 /* i */
            iload 7 /* emOfs */
            iload 11 /* dbLen */
            iload 4 /* sLen */
            isub
            iconst_1
            isub
            iadd
            if_icmplt 35
        39: .line 558
            aload 2 /* em */
            iload 12 /* i */
            baload
            iconst_1
            if_icmpeq 41
        40: .line 559
            iconst_0
            ireturn
        41: .line 562
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            getstatic sun.security.rsa.RSAPSSSignature.EIGHT_BYTES_OF_ZEROS:[B
            invokevirtual java.security.MessageDigest.update:([B)V
        42: .line 563
            aload 0 /* this */
            iconst_0
            putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
        43: .line 564
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            aload 1 /* mHash */
            invokevirtual java.security.MessageDigest.update:([B)V
        44: .line 565
            iload 4 /* sLen */
            ifle 46
        45: .line 566
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            aload 2 /* em */
            iload 7 /* emOfs */
            iload 11 /* dbLen */
            iload 4 /* sLen */
            isub
            iadd
            iload 4 /* sLen */
            invokevirtual java.security.MessageDigest.update:([BII)V
        46: .line 568
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            invokevirtual java.security.MessageDigest.digest:()[B
            astore 13 /* digest2 */
        start local 13 // byte[] digest2
        47: .line 569
            aload 0 /* this */
            iconst_1
            putfield sun.security.rsa.RSAPSSSignature.digestReset:Z
        48: .line 572
            aload 2 /* em */
            iload 7 /* emOfs */
            iload 11 /* dbLen */
            iadd
        49: .line 573
            iload 7 /* emOfs */
            iload 6 /* emLen */
            iadd
            iconst_1
            isub
        50: .line 572
            invokestatic java.util.Arrays.copyOfRange:([BII)[B
            astore 14 /* digestInEM */
        start local 14 // byte[] digestInEM
        51: .line 574
            aload 13 /* digest2 */
            aload 14 /* digestInEM */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ireturn
        end local 14 // byte[] digestInEM
        end local 13 // byte[] digest2
        end local 12 // int i
        end local 11 // int dbLen
        end local 10 // java.security.spec.AlgorithmParameterSpec mgfParams
        end local 9 // java.lang.String mgfDigestAlgo
        end local 8 // int numZeroBits
        end local 7 // int emOfs
        end local 6 // int emLen
        end local 5 // int emBits
        end local 4 // int sLen
        end local 3 // int hLen
        end local 2 // byte[] em
        end local 1 // byte[] mHash
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   52     0           this  Lsun/security/rsa/RSAPSSSignature;
            0   52     1          mHash  [B
            0   52     2             em  [B
            1   52     3           hLen  I
            2   52     4           sLen  I
            3   52     5         emBits  I
            4   52     6          emLen  I
            5   52     7          emOfs  I
           12   52     8    numZeroBits  I
           14   16     9           MASK  B
           20   21     9  mgfDigestAlgo  Ljava/lang/String;
           22   52     9  mgfDigestAlgo  Ljava/lang/String;
           17   52    10      mgfParams  Ljava/security/spec/AlgorithmParameterSpec;
           23   52    11          dbLen  I
           24   27    12           mgf1  Lsun/security/rsa/MGF1;
           29   30    12           nsae  Ljava/security/NoSuchAlgorithmException;
           32   33    12           MASK  B
           34   52    12              i  I
           47   52    13        digest2  [B
           51   52    14     digestInEM  [B
      Exception table:
        from    to  target  type
          23    27      28  Class java.security.NoSuchAlgorithmException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      mHash  
      em     

  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 // sun.security.rsa.RSAPSSSignature this
        start local 1 // java.lang.String param
        start local 2 // java.lang.Object value
         0: .line 582
            new java.lang.UnsupportedOperationException
            dup
            ldc "setParameter() not supported"
            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 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lsun/security/rsa/RSAPSSSignature;
            0    1     1  param  Ljava/lang/String;
            0    1     2  value  Ljava/lang/Object;
    Exceptions:
      throws java.security.InvalidParameterException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      param  
      value  

  protected void engineSetParameter(java.security.spec.AlgorithmParameterSpec);
    descriptor: (Ljava/security/spec/AlgorithmParameterSpec;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // sun.security.rsa.RSAPSSSignature this
        start local 1 // java.security.spec.AlgorithmParameterSpec params
         0: .line 588
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* params */
            invokevirtual sun.security.rsa.RSAPSSSignature.validateSigParams:(Ljava/security/spec/AlgorithmParameterSpec;)Ljava/security/spec/PSSParameterSpec;
            putfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
         1: .line 590
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.digestReset:Z
            ifne 5
         2: .line 591
            new java.security.ProviderException
            dup
         3: .line 592
            ldc "Cannot set parameters during operations"
         4: .line 591
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 594
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.spec.PSSParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
            astore 2 /* newHashAlg */
        start local 2 // java.lang.String newHashAlg
         6: .line 596
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            ifnull 8
         7: .line 597
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
            invokevirtual java.security.MessageDigest.getAlgorithm:()Ljava/lang/String;
            aload 2 /* newHashAlg */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 17
         8: .line 599
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* newHashAlg */
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            putfield sun.security.rsa.RSAPSSSignature.md:Ljava/security/MessageDigest;
         9: .line 600
            goto 17
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
        10: astore 3 /* nsae */
        start local 3 // java.security.NoSuchAlgorithmException nsae
        11: .line 602
            new java.security.InvalidAlgorithmParameterException
            dup
        12: .line 603
            new java.lang.StringBuilder
            dup
            ldc "Unsupported digest algorithm "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 604
            aload 2 /* newHashAlg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 603
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 604
            aload 3 /* nsae */
        16: .line 602
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.security.NoSuchAlgorithmException nsae
        17: .line 607
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String newHashAlg
        end local 1 // java.security.spec.AlgorithmParameterSpec params
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lsun/security/rsa/RSAPSSSignature;
            0   18     1      params  Ljava/security/spec/AlgorithmParameterSpec;
            6   18     2  newHashAlg  Ljava/lang/String;
           11   17     3        nsae  Ljava/security/NoSuchAlgorithmException;
      Exception table:
        from    to  target  type
           8     9      10  Class java.security.NoSuchAlgorithmException
    Exceptions:
      throws java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      params  

  protected java.lang.Object engineGetParameter(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.rsa.RSAPSSSignature this
        start local 1 // java.lang.String param
         0: .line 614
            new java.lang.UnsupportedOperationException
            dup
            ldc "getParameter() not supported"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String param
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lsun/security/rsa/RSAPSSSignature;
            0    1     1  param  Ljava/lang/String;
    Exceptions:
      throws java.security.InvalidParameterException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      param  

  protected java.security.AlgorithmParameters engineGetParameters();
    descriptor: ()Ljava/security/AlgorithmParameters;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.security.rsa.RSAPSSSignature this
         0: .line 619
            aconst_null
            astore 1 /* ap */
        start local 1 // java.security.AlgorithmParameters ap
         1: .line 620
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
            ifnull 7
         2: .line 622
            ldc "RSASSA-PSS"
            invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
            astore 1 /* ap */
         3: .line 623
            aload 1 /* ap */
            aload 0 /* this */
            getfield sun.security.rsa.RSAPSSSignature.sigParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
         4: .line 624
            goto 7
      StackMap locals: sun.security.rsa.RSAPSSSignature java.security.AlgorithmParameters
      StackMap stack: java.security.GeneralSecurityException
         5: astore 2 /* gse */
        start local 2 // java.security.GeneralSecurityException gse
         6: .line 625
            new java.security.ProviderException
            dup
            aload 2 /* gse */
            invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.security.GeneralSecurityException gse
         7: .line 628
      StackMap locals:
      StackMap stack:
            aload 1 /* ap */
            areturn
        end local 1 // java.security.AlgorithmParameters ap
        end local 0 // sun.security.rsa.RSAPSSSignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/rsa/RSAPSSSignature;
            1    8     1    ap  Ljava/security/AlgorithmParameters;
            6    7     2   gse  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
           2     4       5  Class java.security.GeneralSecurityException
}
SourceFile: "RSAPSSSignature.java"