public final class sun.security.mscapi.CSignature$PSS extends sun.security.mscapi.CSignature$RSA
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.security.mscapi.CSignature$PSS
  super_class: sun.security.mscapi.CSignature$RSA
{
  private java.security.spec.PSSParameterSpec pssParams;
    descriptor: Ljava/security/spec/PSSParameterSpec;
    flags: (0x0002) ACC_PRIVATE

  private java.security.Signature fallbackSignature;
    descriptor: Ljava/security/Signature;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.mscapi.CSignature$PSS this
         0: .line 513
            aload 0 /* this */
            aconst_null
            invokespecial sun.security.mscapi.CSignature$RSA.<init>:(Ljava/lang/String;)V
         1: .line 506
            aload 0 /* this */
            aconst_null
            putfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
         2: .line 514
            return
        end local 0 // sun.security.mscapi.CSignature$PSS this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/mscapi/CSignature$PSS;

  protected void engineInitSign(java.security.PrivateKey);
    descriptor: (Ljava/security/PrivateKey;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.mscapi.CSignature$PSS this
        start local 1 // java.security.PrivateKey key
         0: .line 518
            aload 0 /* this */
            aload 1 /* key */
            invokespecial sun.security.mscapi.CSignature$RSA.engineInitSign:(Ljava/security/PrivateKey;)V
         1: .line 519
            aload 0 /* this */
            aconst_null
            putfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
         2: .line 520
            return
        end local 1 // java.security.PrivateKey key
        end local 0 // sun.security.mscapi.CSignature$PSS this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/mscapi/CSignature$PSS;
            0    3     1   key  Ljava/security/PrivateKey;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      key   

  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 // sun.security.mscapi.CSignature$PSS this
        start local 1 // java.security.PublicKey key
         0: .line 524
            aload 1 /* key */
            ifnonnull 2
         1: .line 525
            new java.security.InvalidKeyException
            dup
            ldc "Key cannot be null"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 528
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            instanceof java.security.interfaces.RSAPublicKey
            ifne 6
         3: .line 529
            new java.security.InvalidKeyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Key type not supported: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 530
            aload 1 /* key */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 529
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 533
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.mscapi.CSignature$PSS.privateKey:Lsun/security/mscapi/CPrivateKey;
         7: .line 535
            aload 1 /* key */
            instanceof sun.security.mscapi.CPublicKey
            ifeq 11
         8: .line 536
            aload 0 /* this */
            aconst_null
            putfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
         9: .line 537
            aload 0 /* this */
            aload 1 /* key */
            checkcast sun.security.mscapi.CPublicKey
            putfield sun.security.mscapi.CSignature$PSS.publicKey:Lsun/security/mscapi/CPublicKey;
        10: .line 538
            goto 25
        11: .line 539
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            ifnonnull 18
        12: .line 541
            aload 0 /* this */
        13: .line 542
            ldc "RSASSA-PSS"
            ldc "SunRsaSign"
        14: .line 541
            invokestatic java.security.Signature.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Signature;
            putfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
        15: .line 543
            goto 18
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        16: astore 2 /* e */
        start local 2 // java.security.GeneralSecurityException e
        17: .line 544
            new java.security.InvalidKeyException
            dup
            ldc "Invalid key"
            aload 2 /* e */
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.GeneralSecurityException e
        18: .line 547
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            aload 1 /* key */
            invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
        19: .line 548
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            ifnull 24
        20: .line 550
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.Signature.setParameter:(Ljava/security/spec/AlgorithmParameterSpec;)V
        21: .line 551
            goto 24
      StackMap locals:
      StackMap stack: java.security.InvalidAlgorithmParameterException
        22: astore 2 /* e */
        start local 2 // java.security.InvalidAlgorithmParameterException e
        23: .line 552
            new java.security.InvalidKeyException
            dup
            ldc "Invalid params"
            aload 2 /* e */
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.InvalidAlgorithmParameterException e
        24: .line 555
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.mscapi.CSignature$PSS.publicKey:Lsun/security/mscapi/CPublicKey;
        25: .line 557
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CSignature$PSS.resetDigest:()V
        26: .line 558
            return
        end local 1 // java.security.PublicKey key
        end local 0 // sun.security.mscapi.CSignature$PSS this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   27     0  this  Lsun/security/mscapi/CSignature$PSS;
            0   27     1   key  Ljava/security/PublicKey;
           17   18     2     e  Ljava/security/GeneralSecurityException;
           23   24     2     e  Ljava/security/InvalidAlgorithmParameterException;
      Exception table:
        from    to  target  type
          12    15      16  Class java.security.NoSuchAlgorithmException
          12    15      16  Class java.security.NoSuchProviderException
          20    21      22  Class java.security.InvalidAlgorithmParameterException
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      key   

  protected void engineUpdate(byte);
    descriptor: (B)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.mscapi.CSignature$PSS this
        start local 1 // byte b
         0: .line 562
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CSignature$PSS.ensureInit:()V
         1: .line 563
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            ifnull 4
         2: .line 564
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            iload 1 /* b */
            invokevirtual java.security.Signature.update:(B)V
         3: .line 565
            goto 5
         4: .line 566
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.messageDigest:Ljava/security/MessageDigest;
            iload 1 /* b */
            invokevirtual java.security.MessageDigest.update:(B)V
         5: .line 568
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.mscapi.CSignature$PSS.needsReset:Z
         6: .line 569
            return
        end local 1 // byte b
        end local 0 // sun.security.mscapi.CSignature$PSS this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/mscapi/CSignature$PSS;
            0    7     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.mscapi.CSignature$PSS this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 573
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CSignature$PSS.ensureInit:()V
         1: .line 574
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            ifnull 4
         2: .line 575
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual java.security.Signature.update:([BII)V
         3: .line 576
            goto 5
         4: .line 577
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.messageDigest:Ljava/security/MessageDigest;
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual java.security.MessageDigest.update:([BII)V
         5: .line 579
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.mscapi.CSignature$PSS.needsReset:Z
         6: .line 580
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // sun.security.mscapi.CSignature$PSS this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/mscapi/CSignature$PSS;
            0    7     1     b  [B
            0    7     2   off  I
            0    7     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.mscapi.CSignature$PSS this
        start local 1 // java.nio.ByteBuffer input
         0: .line 585
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CSignature$PSS.ensureInit:()V
         1: .line 586
            goto 4
      StackMap locals:
      StackMap stack: java.security.SignatureException
         2: astore 2 /* se */
        start local 2 // java.security.SignatureException se
         3: .line 588
            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 590
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            ifnull 9
         5: .line 592
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            aload 1 /* input */
            invokevirtual java.security.Signature.update:(Ljava/nio/ByteBuffer;)V
         6: .line 593
            goto 10
      StackMap locals:
      StackMap stack: java.security.SignatureException
         7: astore 2 /* se */
        start local 2 // java.security.SignatureException se
         8: .line 595
            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
         9: .line 598
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.messageDigest:Ljava/security/MessageDigest;
            aload 1 /* input */
            invokevirtual java.security.MessageDigest.update:(Ljava/nio/ByteBuffer;)V
        10: .line 600
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.mscapi.CSignature$PSS.needsReset:Z
        11: .line 601
            return
        end local 1 // java.nio.ByteBuffer input
        end local 0 // sun.security.mscapi.CSignature$PSS this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lsun/security/mscapi/CSignature$PSS;
            0   12     1  input  Ljava/nio/ByteBuffer;
            3    4     2     se  Ljava/security/SignatureException;
            8    9     2     se  Ljava/security/SignatureException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.security.SignatureException
           5     6       7  Class java.security.SignatureException
    MethodParameters:
       Name  Flags
      input  

  protected byte[] engineSign();
    descriptor: ()[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=2, args_size=1
        start local 0 // sun.security.mscapi.CSignature$PSS this
         0: .line 605
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CSignature$PSS.ensureInit:()V
         1: .line 606
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CSignature$PSS.getDigestValue:()[B
            astore 1 /* hash */
        start local 1 // byte[] hash
         2: .line 607
            iconst_2
            aload 1 /* hash */
            aload 1 /* hash */
            arraylength
         3: .line 608
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
         4: .line 610
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.spec.PSSParameterSpec.getMGFParameters:()Ljava/security/spec/AlgorithmParameterSpec;
         5: .line 609
            checkcast java.security.spec.MGF1ParameterSpec
         6: .line 610
            invokevirtual java.security.spec.MGF1ParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
         7: .line 611
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.privateKey:Lsun/security/mscapi/CPrivateKey;
            invokevirtual sun.security.mscapi.CPrivateKey.getHCryptProvider:()J
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.privateKey:Lsun/security/mscapi/CPrivateKey;
            invokevirtual sun.security.mscapi.CPrivateKey.getHCryptKey:()J
         8: .line 607
            invokestatic sun.security.mscapi.CSignature$PSS.signCngHash:(I[BIILjava/lang/String;JJ)[B
            areturn
        end local 1 // byte[] hash
        end local 0 // sun.security.mscapi.CSignature$PSS this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/security/mscapi/CSignature$PSS;
            2    9     1  hash  [B
    Exceptions:
      throws java.security.SignatureException

  protected boolean engineVerify(byte[]);
    descriptor: ([B)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=3, args_size=2
        start local 0 // sun.security.mscapi.CSignature$PSS this
        start local 1 // byte[] sigBytes
         0: .line 616
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CSignature$PSS.ensureInit:()V
         1: .line 617
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            ifnull 4
         2: .line 618
            aload 0 /* this */
            iconst_0
            putfield sun.security.mscapi.CSignature$PSS.needsReset:Z
         3: .line 619
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            aload 1 /* sigBytes */
            invokevirtual java.security.Signature.verify:([B)Z
            ireturn
         4: .line 621
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CSignature$PSS.getDigestValue:()[B
            astore 2 /* hash */
        start local 2 // byte[] hash
         5: .line 623
            iconst_2
            aload 2 /* hash */
            aload 2 /* hash */
            arraylength
         6: .line 624
            aload 1 /* sigBytes */
            aload 1 /* sigBytes */
            arraylength
         7: .line 625
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
         8: .line 627
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.spec.PSSParameterSpec.getMGFParameters:()Ljava/security/spec/AlgorithmParameterSpec;
         9: .line 626
            checkcast java.security.spec.MGF1ParameterSpec
        10: .line 627
            invokevirtual java.security.spec.MGF1ParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
        11: .line 628
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.publicKey:Lsun/security/mscapi/CPublicKey;
            invokevirtual sun.security.mscapi.CPublicKey.getHCryptProvider:()J
        12: .line 629
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.publicKey:Lsun/security/mscapi/CPublicKey;
            invokevirtual sun.security.mscapi.CPublicKey.getHCryptKey:()J
        13: .line 622
            invokestatic sun.security.mscapi.CSignature.verifyCngSignedHash:(I[BI[BIILjava/lang/String;JJ)Z
            ireturn
        end local 2 // byte[] hash
        end local 1 // byte[] sigBytes
        end local 0 // sun.security.mscapi.CSignature$PSS this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lsun/security/mscapi/CSignature$PSS;
            0   14     1  sigBytes  [B
            5   14     2      hash  [B
    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 // sun.security.mscapi.CSignature$PSS this
        start local 1 // java.security.spec.AlgorithmParameterSpec params
         0: .line 637
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.needsReset:Z
            ifeq 4
         1: .line 638
            new java.security.ProviderException
            dup
         2: .line 639
            ldc "Cannot set parameters during operations"
         3: .line 638
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 641
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* params */
            invokevirtual sun.security.mscapi.CSignature$PSS.validateSigParams:(Ljava/security/spec/AlgorithmParameterSpec;)Ljava/security/spec/PSSParameterSpec;
            putfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
         5: .line 642
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            ifnull 7
         6: .line 643
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            aload 1 /* params */
            invokevirtual java.security.Signature.setParameter:(Ljava/security/spec/AlgorithmParameterSpec;)V
         7: .line 645
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.security.spec.AlgorithmParameterSpec params
        end local 0 // sun.security.mscapi.CSignature$PSS this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lsun/security/mscapi/CSignature$PSS;
            0    8     1  params  Ljava/security/spec/AlgorithmParameterSpec;
    Exceptions:
      throws java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      params  

  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.mscapi.CSignature$PSS this
         0: .line 649
            aconst_null
            astore 1 /* ap */
        start local 1 // java.security.AlgorithmParameters ap
         1: .line 650
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            ifnull 7
         2: .line 652
            ldc "RSASSA-PSS"
            invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
            astore 1 /* ap */
         3: .line 653
            aload 1 /* ap */
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
         4: .line 654
            goto 7
      StackMap locals: sun.security.mscapi.CSignature$PSS java.security.AlgorithmParameters
      StackMap stack: java.security.GeneralSecurityException
         5: astore 2 /* gse */
        start local 2 // java.security.GeneralSecurityException gse
         6: .line 655
            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 658
      StackMap locals:
      StackMap stack:
            aload 1 /* ap */
            areturn
        end local 1 // java.security.AlgorithmParameters ap
        end local 0 // sun.security.mscapi.CSignature$PSS this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/mscapi/CSignature$PSS;
            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

  private void ensureInit();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.security.mscapi.CSignature$PSS this
         0: .line 662
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.privateKey:Lsun/security/mscapi/CPrivateKey;
            ifnonnull 3
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.publicKey:Lsun/security/mscapi/CPublicKey;
            ifnonnull 3
         1: .line 663
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            ifnonnull 3
         2: .line 664
            new java.security.SignatureException
            dup
            ldc "Missing key"
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 666
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            ifnonnull 7
         4: .line 668
            new java.security.SignatureException
            dup
         5: .line 669
            ldc "Parameters required for RSASSA-PSS signatures"
         6: .line 668
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 671
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            ifnonnull 14
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.messageDigest:Ljava/security/MessageDigest;
            ifnonnull 14
         8: .line 675
            aload 0 /* this */
         9: .line 676
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.spec.PSSParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
        10: .line 675
            putfield sun.security.mscapi.CSignature$PSS.messageDigest:Ljava/security/MessageDigest;
        11: .line 677
            goto 14
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
        12: astore 1 /* e */
        start local 1 // java.security.NoSuchAlgorithmException e
        13: .line 678
            new java.security.SignatureException
            dup
            aload 1 /* e */
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.security.NoSuchAlgorithmException e
        14: .line 681
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.mscapi.CSignature$PSS this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lsun/security/mscapi/CSignature$PSS;
           13   14     1     e  Ljava/security/NoSuchAlgorithmException;
      Exception table:
        from    to  target  type
           8    11      12  Class java.security.NoSuchAlgorithmException
    Exceptions:
      throws java.security.SignatureException

  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=7, args_size=2
        start local 0 // sun.security.mscapi.CSignature$PSS this
        start local 1 // java.security.spec.AlgorithmParameterSpec p
         0: .line 689
            aload 1 /* p */
            ifnonnull 4
         1: .line 690
            new java.security.InvalidAlgorithmParameterException
            dup
         2: .line 691
            ldc "Parameters cannot be null"
         3: .line 690
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 694
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            instanceof java.security.spec.PSSParameterSpec
            ifne 8
         5: .line 695
            new java.security.InvalidAlgorithmParameterException
            dup
         6: .line 696
            ldc "parameters must be type PSSParameterSpec"
         7: .line 695
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 700
      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 701
            aload 2 /* params */
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            if_acmpne 10
            aload 2 /* params */
            areturn
        10: .line 704
      StackMap locals: java.security.spec.PSSParameterSpec
      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 12
        11: .line 705
            new java.security.InvalidAlgorithmParameterException
            dup
            ldc "Only supports MGF1"
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 709
      StackMap locals:
      StackMap stack:
            aload 2 /* params */
            invokevirtual java.security.spec.PSSParameterSpec.getTrailerField:()I
            iconst_1
            if_icmpeq 16
        13: .line 710
            new java.security.InvalidAlgorithmParameterException
            dup
        14: .line 711
            ldc "Only supports TrailerFieldBC(1)"
        15: .line 710
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 714
      StackMap locals:
      StackMap stack:
            aload 2 /* params */
            invokevirtual java.security.spec.PSSParameterSpec.getMGFParameters:()Ljava/security/spec/AlgorithmParameterSpec;
            astore 3 /* algSpec */
        start local 3 // java.security.spec.AlgorithmParameterSpec algSpec
        17: .line 715
            aload 3 /* algSpec */
            instanceof java.security.spec.MGF1ParameterSpec
            ifne 21
        18: .line 716
            new java.security.InvalidAlgorithmParameterException
            dup
        19: .line 717
            ldc "Only support MGF1ParameterSpec"
        20: .line 716
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 720
      StackMap locals: java.security.spec.AlgorithmParameterSpec
      StackMap stack:
            aload 3 /* algSpec */
            checkcast java.security.spec.MGF1ParameterSpec
            astore 4 /* mgfSpec */
        start local 4 // java.security.spec.MGF1ParameterSpec mgfSpec
        22: .line 722
            aload 2 /* params */
            invokevirtual java.security.spec.PSSParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
        23: .line 723
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "-"
            ldc ""
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
        24: .line 722
            astore 5 /* msgHashAlg */
        start local 5 // java.lang.String msgHashAlg
        25: .line 724
            aload 5 /* msgHashAlg */
            ldc "sha"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 27
        26: .line 725
            ldc "sha1"
            astore 5 /* msgHashAlg */
        27: .line 727
      StackMap locals: java.security.spec.MGF1ParameterSpec java.lang.String
      StackMap stack:
            aload 4 /* mgfSpec */
            invokevirtual java.security.spec.MGF1ParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
        28: .line 728
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "-"
            ldc ""
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
        29: .line 727
            astore 6 /* mgf1HashAlg */
        start local 6 // java.lang.String mgf1HashAlg
        30: .line 729
            aload 6 /* mgf1HashAlg */
            ldc "sha"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        31: .line 730
            ldc "sha1"
            astore 6 /* mgf1HashAlg */
        32: .line 733
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* mgf1HashAlg */
            aload 5 /* msgHashAlg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 36
        33: .line 734
            new java.security.InvalidAlgorithmParameterException
            dup
        34: .line 735
            ldc "MGF1 hash must be the same as message hash"
        35: .line 734
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 738
      StackMap locals:
      StackMap stack:
            aload 2 /* params */
            areturn
        end local 6 // java.lang.String mgf1HashAlg
        end local 5 // java.lang.String msgHashAlg
        end local 4 // java.security.spec.MGF1ParameterSpec mgfSpec
        end local 3 // java.security.spec.AlgorithmParameterSpec algSpec
        end local 2 // java.security.spec.PSSParameterSpec params
        end local 1 // java.security.spec.AlgorithmParameterSpec p
        end local 0 // sun.security.mscapi.CSignature$PSS this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   37     0         this  Lsun/security/mscapi/CSignature$PSS;
            0   37     1            p  Ljava/security/spec/AlgorithmParameterSpec;
            9   37     2       params  Ljava/security/spec/PSSParameterSpec;
           17   37     3      algSpec  Ljava/security/spec/AlgorithmParameterSpec;
           22   37     4      mgfSpec  Ljava/security/spec/MGF1ParameterSpec;
           25   37     5   msgHashAlg  Ljava/lang/String;
           30   37     6  mgf1HashAlg  Ljava/lang/String;
    Exceptions:
      throws java.security.InvalidAlgorithmParameterException
    MethodParameters:
      Name  Flags
      p     
}
SourceFile: "CSignature.java"
NestHost: sun.security.mscapi.CSignature
InnerClasses:
  public final PSS = sun.security.mscapi.CSignature$PSS of sun.security.mscapi.CSignature
  RSA = sun.security.mscapi.CSignature$RSA of sun.security.mscapi.CSignature