public class org.bouncycastle.crypto.signers.PSSSigner implements org.bouncycastle.crypto.Signer
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.crypto.signers.PSSSigner
  super_class: java.lang.Object
{
  public static final byte TRAILER_IMPLICIT;
    descriptor: B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -68

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

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

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

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

  private int hLen;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mgfhLen;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int sLen;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int emBits;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private byte[] salt;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private byte[] mDash;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private byte[] block;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private byte trailer;
    descriptor: B
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.bouncycastle.crypto.AsymmetricBlockCipher, org.bouncycastle.crypto.Digest, int);
    descriptor: (Lorg/bouncycastle/crypto/AsymmetricBlockCipher;Lorg/bouncycastle/crypto/Digest;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.bouncycastle.crypto.signers.PSSSigner this
        start local 1 // org.bouncycastle.crypto.AsymmetricBlockCipher cipher
        start local 2 // org.bouncycastle.crypto.Digest digest
        start local 3 // int sLen
         0: .line 52
            aload 0 /* this */
            aload 1 /* cipher */
            aload 2 /* digest */
            iload 3 /* sLen */
            bipush -68
            invokespecial org.bouncycastle.crypto.signers.PSSSigner.<init>:(Lorg/bouncycastle/crypto/AsymmetricBlockCipher;Lorg/bouncycastle/crypto/Digest;IB)V
         1: .line 53
            return
        end local 3 // int sLen
        end local 2 // org.bouncycastle.crypto.Digest digest
        end local 1 // org.bouncycastle.crypto.AsymmetricBlockCipher cipher
        end local 0 // org.bouncycastle.crypto.signers.PSSSigner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/bouncycastle/crypto/signers/PSSSigner;
            0    2     1  cipher  Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
            0    2     2  digest  Lorg/bouncycastle/crypto/Digest;
            0    2     3    sLen  I
    MethodParameters:
        Name  Flags
      cipher  
      digest  
      sLen    

  public void <init>(org.bouncycastle.crypto.AsymmetricBlockCipher, org.bouncycastle.crypto.Digest, org.bouncycastle.crypto.Digest, int);
    descriptor: (Lorg/bouncycastle/crypto/AsymmetricBlockCipher;Lorg/bouncycastle/crypto/Digest;Lorg/bouncycastle/crypto/Digest;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.bouncycastle.crypto.signers.PSSSigner this
        start local 1 // org.bouncycastle.crypto.AsymmetricBlockCipher cipher
        start local 2 // org.bouncycastle.crypto.Digest contentDigest
        start local 3 // org.bouncycastle.crypto.Digest mgfDigest
        start local 4 // int sLen
         0: .line 61
            aload 0 /* this */
            aload 1 /* cipher */
            aload 2 /* contentDigest */
            aload 3 /* mgfDigest */
            iload 4 /* sLen */
            bipush -68
            invokespecial org.bouncycastle.crypto.signers.PSSSigner.<init>:(Lorg/bouncycastle/crypto/AsymmetricBlockCipher;Lorg/bouncycastle/crypto/Digest;Lorg/bouncycastle/crypto/Digest;IB)V
         1: .line 62
            return
        end local 4 // int sLen
        end local 3 // org.bouncycastle.crypto.Digest mgfDigest
        end local 2 // org.bouncycastle.crypto.Digest contentDigest
        end local 1 // org.bouncycastle.crypto.AsymmetricBlockCipher cipher
        end local 0 // org.bouncycastle.crypto.signers.PSSSigner this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/bouncycastle/crypto/signers/PSSSigner;
            0    2     1         cipher  Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
            0    2     2  contentDigest  Lorg/bouncycastle/crypto/Digest;
            0    2     3      mgfDigest  Lorg/bouncycastle/crypto/Digest;
            0    2     4           sLen  I
    MethodParameters:
               Name  Flags
      cipher         
      contentDigest  
      mgfDigest      
      sLen           

  public void <init>(org.bouncycastle.crypto.AsymmetricBlockCipher, org.bouncycastle.crypto.Digest, int, byte);
    descriptor: (Lorg/bouncycastle/crypto/AsymmetricBlockCipher;Lorg/bouncycastle/crypto/Digest;IB)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.bouncycastle.crypto.signers.PSSSigner this
        start local 1 // org.bouncycastle.crypto.AsymmetricBlockCipher cipher
        start local 2 // org.bouncycastle.crypto.Digest digest
        start local 3 // int sLen
        start local 4 // byte trailer
         0: .line 70
            aload 0 /* this */
            aload 1 /* cipher */
            aload 2 /* digest */
            aload 2 /* digest */
            iload 3 /* sLen */
            iload 4 /* trailer */
            invokespecial org.bouncycastle.crypto.signers.PSSSigner.<init>:(Lorg/bouncycastle/crypto/AsymmetricBlockCipher;Lorg/bouncycastle/crypto/Digest;Lorg/bouncycastle/crypto/Digest;IB)V
         1: .line 71
            return
        end local 4 // byte trailer
        end local 3 // int sLen
        end local 2 // org.bouncycastle.crypto.Digest digest
        end local 1 // org.bouncycastle.crypto.AsymmetricBlockCipher cipher
        end local 0 // org.bouncycastle.crypto.signers.PSSSigner this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/bouncycastle/crypto/signers/PSSSigner;
            0    2     1   cipher  Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
            0    2     2   digest  Lorg/bouncycastle/crypto/Digest;
            0    2     3     sLen  I
            0    2     4  trailer  B
    MethodParameters:
         Name  Flags
      cipher   
      digest   
      sLen     
      trailer  

  public void <init>(org.bouncycastle.crypto.AsymmetricBlockCipher, org.bouncycastle.crypto.Digest, org.bouncycastle.crypto.Digest, int, byte);
    descriptor: (Lorg/bouncycastle/crypto/AsymmetricBlockCipher;Lorg/bouncycastle/crypto/Digest;Lorg/bouncycastle/crypto/Digest;IB)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // org.bouncycastle.crypto.signers.PSSSigner this
        start local 1 // org.bouncycastle.crypto.AsymmetricBlockCipher cipher
        start local 2 // org.bouncycastle.crypto.Digest contentDigest
        start local 3 // org.bouncycastle.crypto.Digest mgfDigest
        start local 4 // int sLen
        start local 5 // byte trailer
         0: .line 73
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 80
            aload 0 /* this */
            aload 1 /* cipher */
            putfield org.bouncycastle.crypto.signers.PSSSigner.cipher:Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
         2: .line 81
            aload 0 /* this */
            aload 2 /* contentDigest */
            putfield org.bouncycastle.crypto.signers.PSSSigner.contentDigest:Lorg/bouncycastle/crypto/Digest;
         3: .line 82
            aload 0 /* this */
            aload 3 /* mgfDigest */
            putfield org.bouncycastle.crypto.signers.PSSSigner.mgfDigest:Lorg/bouncycastle/crypto/Digest;
         4: .line 83
            aload 0 /* this */
            aload 2 /* contentDigest */
            invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
            putfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
         5: .line 84
            aload 0 /* this */
            aload 3 /* mgfDigest */
            invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
            putfield org.bouncycastle.crypto.signers.PSSSigner.mgfhLen:I
         6: .line 85
            aload 0 /* this */
            iload 4 /* sLen */
            putfield org.bouncycastle.crypto.signers.PSSSigner.sLen:I
         7: .line 86
            aload 0 /* this */
            iload 4 /* sLen */
            newarray 8
            putfield org.bouncycastle.crypto.signers.PSSSigner.salt:[B
         8: .line 87
            aload 0 /* this */
            bipush 8
            iload 4 /* sLen */
            iadd
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            iadd
            newarray 8
            putfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
         9: .line 88
            aload 0 /* this */
            iload 5 /* trailer */
            putfield org.bouncycastle.crypto.signers.PSSSigner.trailer:B
        10: .line 89
            return
        end local 5 // byte trailer
        end local 4 // int sLen
        end local 3 // org.bouncycastle.crypto.Digest mgfDigest
        end local 2 // org.bouncycastle.crypto.Digest contentDigest
        end local 1 // org.bouncycastle.crypto.AsymmetricBlockCipher cipher
        end local 0 // org.bouncycastle.crypto.signers.PSSSigner this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lorg/bouncycastle/crypto/signers/PSSSigner;
            0   11     1         cipher  Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
            0   11     2  contentDigest  Lorg/bouncycastle/crypto/Digest;
            0   11     3      mgfDigest  Lorg/bouncycastle/crypto/Digest;
            0   11     4           sLen  I
            0   11     5        trailer  B
    MethodParameters:
               Name  Flags
      cipher         
      contentDigest  
      mgfDigest      
      sLen           
      trailer        

  public void init(boolean, org.bouncycastle.crypto.CipherParameters);
    descriptor: (ZLorg/bouncycastle/crypto/CipherParameters;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.bouncycastle.crypto.signers.PSSSigner this
        start local 1 // boolean forSigning
        start local 2 // org.bouncycastle.crypto.CipherParameters param
         0: .line 97
            aload 2 /* param */
            instanceof org.bouncycastle.crypto.params.ParametersWithRandom
            ifeq 5
         1: .line 99
            aload 2 /* param */
            checkcast org.bouncycastle.crypto.params.ParametersWithRandom
            astore 4 /* p */
        start local 4 // org.bouncycastle.crypto.params.ParametersWithRandom p
         2: .line 101
            aload 4 /* p */
            invokevirtual org.bouncycastle.crypto.params.ParametersWithRandom.getParameters:()Lorg/bouncycastle/crypto/CipherParameters;
            astore 3 /* params */
        start local 3 // org.bouncycastle.crypto.CipherParameters params
         3: .line 102
            aload 0 /* this */
            aload 4 /* p */
            invokevirtual org.bouncycastle.crypto.params.ParametersWithRandom.getRandom:()Ljava/security/SecureRandom;
            putfield org.bouncycastle.crypto.signers.PSSSigner.random:Ljava/security/SecureRandom;
        end local 4 // org.bouncycastle.crypto.params.ParametersWithRandom p
         4: .line 103
            goto 8
        end local 3 // org.bouncycastle.crypto.CipherParameters params
         5: .line 106
      StackMap locals:
      StackMap stack:
            aload 2 /* param */
            astore 3 /* params */
        start local 3 // org.bouncycastle.crypto.CipherParameters params
         6: .line 107
            iload 1 /* forSigning */
            ifeq 8
         7: .line 109
            aload 0 /* this */
            new java.security.SecureRandom
            dup
            invokespecial java.security.SecureRandom.<init>:()V
            putfield org.bouncycastle.crypto.signers.PSSSigner.random:Ljava/security/SecureRandom;
         8: .line 113
      StackMap locals: org.bouncycastle.crypto.CipherParameters
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.cipher:Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
            iload 1 /* forSigning */
            aload 3 /* params */
            invokeinterface org.bouncycastle.crypto.AsymmetricBlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
         9: .line 117
            aload 3 /* params */
            instanceof org.bouncycastle.crypto.params.RSABlindingParameters
            ifeq 12
        10: .line 119
            aload 3 /* params */
            checkcast org.bouncycastle.crypto.params.RSABlindingParameters
            invokevirtual org.bouncycastle.crypto.params.RSABlindingParameters.getPublicKey:()Lorg/bouncycastle/crypto/params/RSAKeyParameters;
            astore 4 /* kParam */
        start local 4 // org.bouncycastle.crypto.params.RSAKeyParameters kParam
        11: .line 120
            goto 13
        end local 4 // org.bouncycastle.crypto.params.RSAKeyParameters kParam
        12: .line 123
      StackMap locals:
      StackMap stack:
            aload 3 /* params */
            checkcast org.bouncycastle.crypto.params.RSAKeyParameters
            astore 4 /* kParam */
        start local 4 // org.bouncycastle.crypto.params.RSAKeyParameters kParam
        13: .line 126
      StackMap locals: org.bouncycastle.crypto.params.RSAKeyParameters
      StackMap stack:
            aload 0 /* this */
            aload 4 /* kParam */
            invokevirtual org.bouncycastle.crypto.params.RSAKeyParameters.getModulus:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.bitLength:()I
            iconst_1
            isub
            putfield org.bouncycastle.crypto.signers.PSSSigner.emBits:I
        14: .line 128
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.emBits:I
            bipush 8
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            imul
            bipush 8
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.sLen:I
            imul
            iadd
            bipush 9
            iadd
            if_icmpge 16
        15: .line 130
            new java.lang.IllegalArgumentException
            dup
            ldc "key too small for specified hash and salt lengths"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.emBits:I
            bipush 7
            iadd
            bipush 8
            idiv
            newarray 8
            putfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
        17: .line 135
            aload 0 /* this */
            invokevirtual org.bouncycastle.crypto.signers.PSSSigner.reset:()V
        18: .line 136
            return
        end local 4 // org.bouncycastle.crypto.params.RSAKeyParameters kParam
        end local 3 // org.bouncycastle.crypto.CipherParameters params
        end local 2 // org.bouncycastle.crypto.CipherParameters param
        end local 1 // boolean forSigning
        end local 0 // org.bouncycastle.crypto.signers.PSSSigner this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lorg/bouncycastle/crypto/signers/PSSSigner;
            0   19     1  forSigning  Z
            0   19     2       param  Lorg/bouncycastle/crypto/CipherParameters;
            3    5     3      params  Lorg/bouncycastle/crypto/CipherParameters;
            6   19     3      params  Lorg/bouncycastle/crypto/CipherParameters;
            2    4     4           p  Lorg/bouncycastle/crypto/params/ParametersWithRandom;
           11   12     4      kParam  Lorg/bouncycastle/crypto/params/RSAKeyParameters;
           13   19     4      kParam  Lorg/bouncycastle/crypto/params/RSAKeyParameters;
    MethodParameters:
            Name  Flags
      forSigning  
      param       

  private void clearBlock(byte[]);
    descriptor: ([B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.bouncycastle.crypto.signers.PSSSigner this
        start local 1 // byte[] block
         0: .line 144
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 4
         2: .line 146
      StackMap locals: int
      StackMap stack:
            aload 1 /* block */
            iload 2 /* i */
            iconst_0
            bastore
         3: .line 144
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 2 /* i */
            aload 1 /* block */
            arraylength
            if_icmpne 2
        end local 2 // int i
         5: .line 148
            return
        end local 1 // byte[] block
        end local 0 // org.bouncycastle.crypto.signers.PSSSigner this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/bouncycastle/crypto/signers/PSSSigner;
            0    6     1  block  [B
            1    5     2      i  I
    MethodParameters:
       Name  Flags
      block  

  public void update(byte);
    descriptor: (B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.crypto.signers.PSSSigner this
        start local 1 // byte b
         0: .line 156
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.contentDigest:Lorg/bouncycastle/crypto/Digest;
            iload 1 /* b */
            invokeinterface org.bouncycastle.crypto.Digest.update:(B)V
         1: .line 157
            return
        end local 1 // byte b
        end local 0 // org.bouncycastle.crypto.signers.PSSSigner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/crypto/signers/PSSSigner;
            0    2     1     b  B
    MethodParameters:
      Name  Flags
      b     

  public void update(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.bouncycastle.crypto.signers.PSSSigner this
        start local 1 // byte[] in
        start local 2 // int off
        start local 3 // int len
         0: .line 167
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.contentDigest:Lorg/bouncycastle/crypto/Digest;
            aload 1 /* in */
            iload 2 /* off */
            iload 3 /* len */
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
         1: .line 168
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] in
        end local 0 // org.bouncycastle.crypto.signers.PSSSigner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/crypto/signers/PSSSigner;
            0    2     1    in  [B
            0    2     2   off  I
            0    2     3   len  I
    MethodParameters:
      Name  Flags
      in    
      off   
      len   

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.signers.PSSSigner this
         0: .line 175
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.contentDigest:Lorg/bouncycastle/crypto/Digest;
            invokeinterface org.bouncycastle.crypto.Digest.reset:()V
         1: .line 176
            return
        end local 0 // org.bouncycastle.crypto.signers.PSSSigner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/crypto/signers/PSSSigner;

  public byte[] generateSignature();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // org.bouncycastle.crypto.signers.PSSSigner this
         0: .line 185
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.contentDigest:Lorg/bouncycastle/crypto/Digest;
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            isub
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.sLen:I
            isub
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
         1: .line 187
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.sLen:I
            ifeq 4
         2: .line 189
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.random:Ljava/security/SecureRandom;
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.salt:[B
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
         3: .line 191
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.salt:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.sLen:I
            isub
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.sLen:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            newarray 8
            astore 1 /* h */
        start local 1 // byte[] h
         5: .line 196
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.contentDigest:Lorg/bouncycastle/crypto/Digest;
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            arraylength
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
         6: .line 198
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.contentDigest:Lorg/bouncycastle/crypto/Digest;
            aload 1 /* h */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
         7: .line 200
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.sLen:I
            isub
            iconst_1
            isub
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            isub
            iconst_1
            isub
            iconst_1
            bastore
         8: .line 201
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.salt:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.sLen:I
            isub
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            isub
            iconst_1
            isub
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.sLen:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         9: .line 203
            aload 0 /* this */
            aload 1 /* h */
            iconst_0
            aload 1 /* h */
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            isub
            iconst_1
            isub
            invokevirtual org.bouncycastle.crypto.signers.PSSSigner.maskGeneratorFunction1:([BIII)[B
            astore 2 /* dbMask */
        start local 2 // byte[] dbMask
        10: .line 204
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        11: goto 14
        12: .line 206
      StackMap locals: byte[] byte[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            iload 3 /* i */
            dup2
            baload
            aload 2 /* dbMask */
            iload 3 /* i */
            baload
            ixor
            i2b
            bastore
        13: .line 204
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 3 /* i */
            aload 2 /* dbMask */
            arraylength
            if_icmpne 12
        end local 3 // int i
        15: .line 209
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            iconst_0
            dup2
            baload
            sipush 255
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            bipush 8
            imul
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.emBits:I
            isub
            ishr
            iand
            i2b
            bastore
        16: .line 211
            aload 1 /* h */
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            isub
            iconst_1
            isub
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 213
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            iconst_1
            isub
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.trailer:B
            bastore
        18: .line 215
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.cipher:Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            invokeinterface org.bouncycastle.crypto.AsymmetricBlockCipher.processBlock:([BII)[B
            astore 3 /* b */
        start local 3 // byte[] b
        19: .line 217
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            invokevirtual org.bouncycastle.crypto.signers.PSSSigner.clearBlock:([B)V
        20: .line 219
            aload 3 /* b */
            areturn
        end local 3 // byte[] b
        end local 2 // byte[] dbMask
        end local 1 // byte[] h
        end local 0 // org.bouncycastle.crypto.signers.PSSSigner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   21     0    this  Lorg/bouncycastle/crypto/signers/PSSSigner;
            5   21     1       h  [B
           10   21     2  dbMask  [B
           11   15     3       i  I
           19   21     3       b  [B
    Exceptions:
      throws org.bouncycastle.crypto.CryptoException, org.bouncycastle.crypto.DataLengthException

  public boolean verifySignature(byte[]);
    descriptor: ([B)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // org.bouncycastle.crypto.signers.PSSSigner this
        start local 1 // byte[] signature
         0: .line 229
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.contentDigest:Lorg/bouncycastle/crypto/Digest;
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            isub
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.sLen:I
            isub
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
         1: .line 233
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.cipher:Lorg/bouncycastle/crypto/AsymmetricBlockCipher;
            aload 1 /* signature */
            iconst_0
            aload 1 /* signature */
            arraylength
            invokeinterface org.bouncycastle.crypto.AsymmetricBlockCipher.processBlock:([BII)[B
            astore 2 /* b */
        start local 2 // byte[] b
         2: .line 234
            aload 2 /* b */
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            aload 2 /* b */
            arraylength
            isub
            aload 2 /* b */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 2 // byte[] b
         3: .line 235
            goto 6
         4: .line 236
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         5: .line 238
            iconst_0
            ireturn
         6: .line 241
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            iconst_1
            isub
            baload
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.trailer:B
            if_icmpeq 9
         7: .line 243
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            invokevirtual org.bouncycastle.crypto.signers.PSSSigner.clearBlock:([B)V
         8: .line 244
            iconst_0
            ireturn
         9: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            isub
            iconst_1
            isub
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            isub
            iconst_1
            isub
            invokevirtual org.bouncycastle.crypto.signers.PSSSigner.maskGeneratorFunction1:([BIII)[B
            astore 2 /* dbMask */
        start local 2 // byte[] dbMask
        10: .line 249
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        11: goto 14
        12: .line 251
      StackMap locals: byte[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            iload 3 /* i */
            dup2
            baload
            aload 2 /* dbMask */
            iload 3 /* i */
            baload
            ixor
            i2b
            bastore
        13: .line 249
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 3 /* i */
            aload 2 /* dbMask */
            arraylength
            if_icmpne 12
        end local 3 // int i
        15: .line 254
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            iconst_0
            dup2
            baload
            sipush 255
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            bipush 8
            imul
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.emBits:I
            isub
            ishr
            iand
            i2b
            bastore
        16: .line 256
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        17: goto 22
        18: .line 258
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            iload 3 /* i */
            baload
            ifeq 21
        19: .line 260
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            invokevirtual org.bouncycastle.crypto.signers.PSSSigner.clearBlock:([B)V
        20: .line 261
            iconst_0
            ireturn
        21: .line 256
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 3 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            isub
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.sLen:I
            isub
            iconst_2
            isub
            if_icmpne 18
        end local 3 // int i
        23: .line 265
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            isub
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.sLen:I
            isub
            iconst_2
            isub
            baload
            iconst_1
            if_icmpeq 26
        24: .line 267
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            invokevirtual org.bouncycastle.crypto.signers.PSSSigner.clearBlock:([B)V
        25: .line 268
            iconst_0
            ireturn
        26: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.sLen:I
            isub
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            isub
            iconst_1
            isub
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.sLen:I
            isub
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.sLen:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        27: .line 273
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.contentDigest:Lorg/bouncycastle/crypto/Digest;
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            arraylength
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
        28: .line 274
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.contentDigest:Lorg/bouncycastle/crypto/Digest;
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            isub
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
        29: .line 276
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            isub
            iconst_1
            isub
            istore 3 /* i */
        start local 3 // int i
        30: aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.hLen:I
            isub
            istore 4 /* j */
        start local 4 // int j
        31: .line 277
            goto 37
        32: .line 279
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            iload 3 /* i */
            baload
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            iload 4 /* j */
            baload
            ixor
            ifeq 36
        33: .line 281
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            invokevirtual org.bouncycastle.crypto.signers.PSSSigner.clearBlock:([B)V
        34: .line 282
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            invokevirtual org.bouncycastle.crypto.signers.PSSSigner.clearBlock:([B)V
        35: .line 283
            iconst_0
            ireturn
        36: .line 277
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
            iinc 4 /* j */ 1
      StackMap locals:
      StackMap stack:
        37: iload 4 /* j */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            arraylength
            if_icmpne 32
        end local 4 // int j
        end local 3 // int i
        38: .line 287
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mDash:[B
            invokevirtual org.bouncycastle.crypto.signers.PSSSigner.clearBlock:([B)V
        39: .line 288
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.block:[B
            invokevirtual org.bouncycastle.crypto.signers.PSSSigner.clearBlock:([B)V
        40: .line 290
            iconst_1
            ireturn
        end local 2 // byte[] dbMask
        end local 1 // byte[] signature
        end local 0 // org.bouncycastle.crypto.signers.PSSSigner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   41     0       this  Lorg/bouncycastle/crypto/signers/PSSSigner;
            0   41     1  signature  [B
            2    3     2          b  [B
           10   41     2     dbMask  [B
           11   15     3          i  I
           17   23     3          i  I
           30   38     3          i  I
           31   38     4          j  I
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.Exception
    MethodParameters:
           Name  Flags
      signature  

  private void ItoOSP(int, byte[]);
    descriptor: (I[B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.bouncycastle.crypto.signers.PSSSigner this
        start local 1 // int i
        start local 2 // byte[] sp
         0: .line 300
            aload 2 /* sp */
            iconst_0
            iload 1 /* i */
            bipush 24
            iushr
            i2b
            bastore
         1: .line 301
            aload 2 /* sp */
            iconst_1
            iload 1 /* i */
            bipush 16
            iushr
            i2b
            bastore
         2: .line 302
            aload 2 /* sp */
            iconst_2
            iload 1 /* i */
            bipush 8
            iushr
            i2b
            bastore
         3: .line 303
            aload 2 /* sp */
            iconst_3
            iload 1 /* i */
            iconst_0
            iushr
            i2b
            bastore
         4: .line 304
            return
        end local 2 // byte[] sp
        end local 1 // int i
        end local 0 // org.bouncycastle.crypto.signers.PSSSigner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bouncycastle/crypto/signers/PSSSigner;
            0    5     1     i  I
            0    5     2    sp  [B
    MethodParameters:
      Name  Flags
      i     
      sp    

  private byte[] maskGeneratorFunction1(byte[], int, int, int);
    descriptor: ([BIII)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // org.bouncycastle.crypto.signers.PSSSigner this
        start local 1 // byte[] Z
        start local 2 // int zOff
        start local 3 // int zLen
        start local 4 // int length
         0: .line 315
            iload 4 /* length */
            newarray 8
            astore 5 /* mask */
        start local 5 // byte[] mask
         1: .line 316
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mgfhLen:I
            newarray 8
            astore 6 /* hashBuf */
        start local 6 // byte[] hashBuf
         2: .line 317
            iconst_4
            newarray 8
            astore 7 /* C */
        start local 7 // byte[] C
         3: .line 318
            iconst_0
            istore 8 /* counter */
        start local 8 // int counter
         4: .line 320
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mgfDigest:Lorg/bouncycastle/crypto/Digest;
            invokeinterface org.bouncycastle.crypto.Digest.reset:()V
         5: .line 322
            goto 12
         6: .line 324
      StackMap locals: org.bouncycastle.crypto.signers.PSSSigner byte[] int int int byte[] byte[] byte[] int
      StackMap stack:
            aload 0 /* this */
            iload 8 /* counter */
            aload 7 /* C */
            invokevirtual org.bouncycastle.crypto.signers.PSSSigner.ItoOSP:(I[B)V
         7: .line 326
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mgfDigest:Lorg/bouncycastle/crypto/Digest;
            aload 1 /* Z */
            iload 2 /* zOff */
            iload 3 /* zLen */
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
         8: .line 327
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mgfDigest:Lorg/bouncycastle/crypto/Digest;
            aload 7 /* C */
            iconst_0
            aload 7 /* C */
            arraylength
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
         9: .line 328
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mgfDigest:Lorg/bouncycastle/crypto/Digest;
            aload 6 /* hashBuf */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
        10: .line 330
            aload 6 /* hashBuf */
            iconst_0
            aload 5 /* mask */
            iload 8 /* counter */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mgfhLen:I
            imul
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mgfhLen:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        11: .line 332
            iinc 8 /* counter */ 1
        12: .line 322
      StackMap locals:
      StackMap stack:
            iload 8 /* counter */
            iload 4 /* length */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mgfhLen:I
            idiv
            if_icmplt 6
        13: .line 335
            iload 8 /* counter */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mgfhLen:I
            imul
            iload 4 /* length */
            if_icmpge 19
        14: .line 337
            aload 0 /* this */
            iload 8 /* counter */
            aload 7 /* C */
            invokevirtual org.bouncycastle.crypto.signers.PSSSigner.ItoOSP:(I[B)V
        15: .line 339
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mgfDigest:Lorg/bouncycastle/crypto/Digest;
            aload 1 /* Z */
            iload 2 /* zOff */
            iload 3 /* zLen */
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
        16: .line 340
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mgfDigest:Lorg/bouncycastle/crypto/Digest;
            aload 7 /* C */
            iconst_0
            aload 7 /* C */
            arraylength
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
        17: .line 341
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mgfDigest:Lorg/bouncycastle/crypto/Digest;
            aload 6 /* hashBuf */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
        18: .line 343
            aload 6 /* hashBuf */
            iconst_0
            aload 5 /* mask */
            iload 8 /* counter */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mgfhLen:I
            imul
            aload 5 /* mask */
            arraylength
            iload 8 /* counter */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.signers.PSSSigner.mgfhLen:I
            imul
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        19: .line 346
      StackMap locals:
      StackMap stack:
            aload 5 /* mask */
            areturn
        end local 8 // int counter
        end local 7 // byte[] C
        end local 6 // byte[] hashBuf
        end local 5 // byte[] mask
        end local 4 // int length
        end local 3 // int zLen
        end local 2 // int zOff
        end local 1 // byte[] Z
        end local 0 // org.bouncycastle.crypto.signers.PSSSigner this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lorg/bouncycastle/crypto/signers/PSSSigner;
            0   20     1        Z  [B
            0   20     2     zOff  I
            0   20     3     zLen  I
            0   20     4   length  I
            1   20     5     mask  [B
            2   20     6  hashBuf  [B
            3   20     7        C  [B
            4   20     8  counter  I
    MethodParameters:
        Name  Flags
      Z       
      zOff    
      zLen    
      length  
}
SourceFile: "PSSSigner.java"