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 483
            aload 0 /* this */
            aconst_null
            invokespecial sun.security.mscapi.CSignature$RSA.<init>:(Ljava/lang/String;)V
         1: .line 476
            aload 0 /* this */
            aconst_null
            putfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
         2: .line 484
            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 488
            aload 0 /* this */
            aload 1 /* key */
            invokespecial sun.security.mscapi.CSignature$RSA.engineInitSign:(Ljava/security/PrivateKey;)V
         1: .line 489
            aload 0 /* this */
            aconst_null
            putfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
         2: .line 490
            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=4, locals=3, args_size=2
        start local 0 // sun.security.mscapi.CSignature$PSS this
        start local 1 // java.security.PublicKey key
         0: .line 495
            aload 1 /* key */
            instanceof java.security.interfaces.RSAPublicKey
            ifne 2
         1: .line 496
            new java.security.InvalidKeyException
            dup
            ldc "Key type not supported"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 499
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.mscapi.CSignature$PSS.privateKey:Lsun/security/mscapi/CPrivateKey;
         3: .line 501
            aload 1 /* key */
            instanceof sun.security.mscapi.CPublicKey
            ifeq 7
         4: .line 502
            aload 0 /* this */
            aconst_null
            putfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
         5: .line 503
            aload 0 /* this */
            aload 1 /* key */
            checkcast sun.security.mscapi.CPublicKey
            putfield sun.security.mscapi.CSignature$PSS.publicKey:Lsun/security/mscapi/CPublicKey;
         6: .line 504
            goto 21
         7: .line 505
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            ifnonnull 14
         8: .line 507
            aload 0 /* this */
         9: .line 508
            ldc "RSASSA-PSS"
            ldc "SunRsaSign"
        10: .line 507
            invokestatic java.security.Signature.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Signature;
            putfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
        11: .line 509
            goto 14
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
        12: astore 2 /* e */
        start local 2 // java.security.GeneralSecurityException e
        13: .line 510
            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
        14: .line 513
      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
        15: .line 514
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            ifnull 20
        16: .line 516
            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
        17: .line 517
            goto 20
      StackMap locals:
      StackMap stack: java.security.InvalidAlgorithmParameterException
        18: astore 2 /* e */
        start local 2 // java.security.InvalidAlgorithmParameterException e
        19: .line 518
            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
        20: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.security.mscapi.CSignature$PSS.publicKey:Lsun/security/mscapi/CPublicKey;
        21: .line 523
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CSignature$PSS.resetDigest:()V
        22: .line 524
            return
        end local 1 // java.security.PublicKey key
        end local 0 // sun.security.mscapi.CSignature$PSS this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   23     0  this  Lsun/security/mscapi/CSignature$PSS;
            0   23     1   key  Ljava/security/PublicKey;
           13   14     2     e  Ljava/security/GeneralSecurityException;
           19   20     2     e  Ljava/security/InvalidAlgorithmParameterException;
      Exception table:
        from    to  target  type
           8    11      12  Class java.security.NoSuchAlgorithmException
           8    11      12  Class java.security.NoSuchProviderException
          16    17      18  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 528
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CSignature$PSS.ensureInit:()V
         1: .line 529
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            ifnull 4
         2: .line 530
            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 531
            goto 5
         4: .line 532
      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 534
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.mscapi.CSignature$PSS.needsReset:Z
         6: .line 535
            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 539
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CSignature$PSS.ensureInit:()V
         1: .line 540
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            ifnull 4
         2: .line 541
            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 542
            goto 5
         4: .line 543
      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 545
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.mscapi.CSignature$PSS.needsReset:Z
         6: .line 546
            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 551
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CSignature$PSS.ensureInit:()V
         1: .line 552
            goto 4
      StackMap locals:
      StackMap stack: java.security.SignatureException
         2: astore 2 /* se */
        start local 2 // java.security.SignatureException se
         3: .line 554
            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 556
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            ifnull 9
         5: .line 558
            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 559
            goto 10
      StackMap locals:
      StackMap stack: java.security.SignatureException
         7: astore 2 /* se */
        start local 2 // java.security.SignatureException se
         8: .line 561
            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 564
      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 566
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.mscapi.CSignature$PSS.needsReset:Z
        11: .line 567
            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 571
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CSignature$PSS.ensureInit:()V
         1: .line 572
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CSignature$PSS.getDigestValue:()[B
            astore 1 /* hash */
        start local 1 // byte[] hash
         2: .line 573
            iconst_2
            aload 1 /* hash */
            aload 1 /* hash */
            arraylength
         3: .line 574
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
         4: .line 576
            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 575
            checkcast java.security.spec.MGF1ParameterSpec
         6: .line 576
            invokevirtual java.security.spec.MGF1ParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
         7: .line 577
            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 573
            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 582
            aload 0 /* this */
            invokevirtual sun.security.mscapi.CSignature$PSS.ensureInit:()V
         1: .line 583
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            ifnull 4
         2: .line 584
            aload 0 /* this */
            iconst_0
            putfield sun.security.mscapi.CSignature$PSS.needsReset:Z
         3: .line 585
            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 587
      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 589
            iconst_2
            aload 2 /* hash */
            aload 2 /* hash */
            arraylength
         6: .line 590
            aload 1 /* sigBytes */
            aload 1 /* sigBytes */
            arraylength
         7: .line 591
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            invokevirtual java.security.spec.PSSParameterSpec.getSaltLength:()I
         8: .line 593
            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 592
            checkcast java.security.spec.MGF1ParameterSpec
        10: .line 593
            invokevirtual java.security.spec.MGF1ParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
        11: .line 594
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.publicKey:Lsun/security/mscapi/CPublicKey;
            invokevirtual sun.security.mscapi.CPublicKey.getHCryptProvider:()J
        12: .line 595
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.publicKey:Lsun/security/mscapi/CPublicKey;
            invokevirtual sun.security.mscapi.CPublicKey.getHCryptKey:()J
        13: .line 588
            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 603
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.needsReset:Z
            ifeq 4
         1: .line 604
            new java.security.ProviderException
            dup
         2: .line 605
            ldc "Cannot set parameters during operations"
         3: .line 604
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 607
      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 608
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            ifnull 7
         6: .line 609
            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 611
      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 615
            aconst_null
            astore 1 /* ap */
        start local 1 // java.security.AlgorithmParameters ap
         1: .line 616
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            ifnull 7
         2: .line 618
            ldc "RSASSA-PSS"
            invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
            astore 1 /* ap */
         3: .line 619
            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 620
            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 621
            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 624
      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 628
            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 629
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.fallbackSignature:Ljava/security/Signature;
            ifnonnull 3
         2: .line 630
            new java.security.SignatureException
            dup
            ldc "Missing key"
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 632
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.mscapi.CSignature$PSS.pssParams:Ljava/security/spec/PSSParameterSpec;
            ifnonnull 7
         4: .line 634
            new java.security.SignatureException
            dup
         5: .line 635
            ldc "Parameters required for RSASSA-PSS signatures"
         6: .line 634
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 637
      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 641
            aload 0 /* this */
         9: .line 642
            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 641
            putfield sun.security.mscapi.CSignature$PSS.messageDigest:Ljava/security/MessageDigest;
        11: .line 643
            goto 14
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
        12: astore 1 /* e */
        start local 1 // java.security.NoSuchAlgorithmException e
        13: .line 644
            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 647
      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 655
            aload 1 /* p */
            ifnonnull 4
         1: .line 656
            new java.security.InvalidAlgorithmParameterException
            dup
         2: .line 657
            ldc "Parameters cannot be null"
         3: .line 656
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 660
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            instanceof java.security.spec.PSSParameterSpec
            ifne 8
         5: .line 661
            new java.security.InvalidAlgorithmParameterException
            dup
         6: .line 662
            ldc "parameters must be type PSSParameterSpec"
         7: .line 661
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 666
      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 667
            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 670
      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 671
            new java.security.InvalidAlgorithmParameterException
            dup
            ldc "Only supports MGF1"
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 675
      StackMap locals:
      StackMap stack:
            aload 2 /* params */
            invokevirtual java.security.spec.PSSParameterSpec.getTrailerField:()I
            iconst_1
            if_icmpeq 16
        13: .line 676
            new java.security.InvalidAlgorithmParameterException
            dup
        14: .line 677
            ldc "Only supports TrailerFieldBC(1)"
        15: .line 676
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 680
      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 681
            aload 3 /* algSpec */
            instanceof java.security.spec.MGF1ParameterSpec
            ifne 21
        18: .line 682
            new java.security.InvalidAlgorithmParameterException
            dup
        19: .line 683
            ldc "Only support MGF1ParameterSpec"
        20: .line 682
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 686
      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 688
            aload 2 /* params */
            invokevirtual java.security.spec.PSSParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
        23: .line 689
            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 688
            astore 5 /* msgHashAlg */
        start local 5 // java.lang.String msgHashAlg
        25: .line 690
            aload 5 /* msgHashAlg */
            ldc "sha"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 27
        26: .line 691
            ldc "sha1"
            astore 5 /* msgHashAlg */
        27: .line 693
      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 694
            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 693
            astore 6 /* mgf1HashAlg */
        start local 6 // java.lang.String mgf1HashAlg
        30: .line 695
            aload 6 /* mgf1HashAlg */
            ldc "sha"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        31: .line 696
            ldc "sha1"
            astore 6 /* mgf1HashAlg */
        32: .line 699
      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 700
            new java.security.InvalidAlgorithmParameterException
            dup
        34: .line 701
            ldc "MGF1 hash must be the same as message hash"
        35: .line 700
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 704
      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