public final class sun.security.ssl.RSASignature extends java.security.SignatureSpi
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.RSASignature
  super_class: java.security.SignatureSpi
{
  private final java.security.Signature rawRsa;
    descriptor: Ljava/security/Signature;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.security.MessageDigest mdMD5;
    descriptor: Ljava/security/MessageDigest;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.security.MessageDigest mdSHA;
    descriptor: Ljava/security/MessageDigest;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.RSASignature this
         0: .line 55
            aload 0 /* this */
            invokespecial java.security.SignatureSpi.<init>:()V
         1: .line 56
            aload 0 /* this */
            ldc "NONEwithRSA"
            invokestatic sun.security.ssl.JsseJce.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
            putfield sun.security.ssl.RSASignature.rawRsa:Ljava/security/Signature;
         2: .line 57
            aload 0 /* this */
            ldc "MD5"
            invokestatic sun.security.ssl.JsseJce.getMessageDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
            putfield sun.security.ssl.RSASignature.mdMD5:Ljava/security/MessageDigest;
         3: .line 58
            aload 0 /* this */
            ldc "SHA"
            invokestatic sun.security.ssl.JsseJce.getMessageDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
            putfield sun.security.ssl.RSASignature.mdSHA:Ljava/security/MessageDigest;
         4: .line 59
            return
        end local 0 // sun.security.ssl.RSASignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/RSASignature;
    Exceptions:
      throws java.security.NoSuchAlgorithmException

  static java.security.Signature getInstance();
    descriptor: ()Ljava/security/Signature;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 69
            ldc "MD5andSHA1withRSA"
            invokestatic sun.security.ssl.JsseJce.getSignature:(Ljava/lang/String;)Ljava/security/Signature;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.security.NoSuchAlgorithmException

  protected void engineInitVerify(java.security.PublicKey);
    descriptor: (Ljava/security/PublicKey;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.RSASignature this
        start local 1 // java.security.PublicKey publicKey
         0: .line 75
            aload 1 /* publicKey */
            ifnonnull 2
         1: .line 76
            new java.security.InvalidKeyException
            dup
            ldc "Public key must not be null"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 78
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.mdMD5:Ljava/security/MessageDigest;
            invokevirtual java.security.MessageDigest.reset:()V
         3: .line 79
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.mdSHA:Ljava/security/MessageDigest;
            invokevirtual java.security.MessageDigest.reset:()V
         4: .line 80
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.rawRsa:Ljava/security/Signature;
            aload 1 /* publicKey */
            invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
         5: .line 81
            return
        end local 1 // java.security.PublicKey publicKey
        end local 0 // sun.security.ssl.RSASignature this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lsun/security/ssl/RSASignature;
            0    6     1  publicKey  Ljava/security/PublicKey;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
           Name  Flags
      publicKey  

  protected void engineInitSign(java.security.PrivateKey);
    descriptor: (Ljava/security/PrivateKey;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.RSASignature this
        start local 1 // java.security.PrivateKey privateKey
         0: .line 86
            aload 0 /* this */
            aload 1 /* privateKey */
            aconst_null
            invokevirtual sun.security.ssl.RSASignature.engineInitSign:(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
         1: .line 87
            return
        end local 1 // java.security.PrivateKey privateKey
        end local 0 // sun.security.ssl.RSASignature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lsun/security/ssl/RSASignature;
            0    2     1  privateKey  Ljava/security/PrivateKey;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
            Name  Flags
      privateKey  

  protected void engineInitSign(java.security.PrivateKey, java.security.SecureRandom);
    descriptor: (Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.ssl.RSASignature this
        start local 1 // java.security.PrivateKey privateKey
        start local 2 // java.security.SecureRandom random
         0: .line 92
            aload 1 /* privateKey */
            ifnonnull 2
         1: .line 93
            new java.security.InvalidKeyException
            dup
            ldc "Private key must not be null"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.mdMD5:Ljava/security/MessageDigest;
            invokevirtual java.security.MessageDigest.reset:()V
         3: .line 96
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.mdSHA:Ljava/security/MessageDigest;
            invokevirtual java.security.MessageDigest.reset:()V
         4: .line 97
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.rawRsa:Ljava/security/Signature;
            aload 1 /* privateKey */
            aload 2 /* random */
            invokevirtual java.security.Signature.initSign:(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
         5: .line 98
            return
        end local 2 // java.security.SecureRandom random
        end local 1 // java.security.PrivateKey privateKey
        end local 0 // sun.security.ssl.RSASignature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lsun/security/ssl/RSASignature;
            0    6     1  privateKey  Ljava/security/PrivateKey;
            0    6     2      random  Ljava/security/SecureRandom;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
            Name  Flags
      privateKey  
      random      

  protected void engineUpdate(byte);
    descriptor: (B)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.RSASignature this
        start local 1 // byte b
         0: .line 102
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.mdMD5:Ljava/security/MessageDigest;
            iload 1 /* b */
            invokevirtual java.security.MessageDigest.update:(B)V
         1: .line 103
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.mdSHA:Ljava/security/MessageDigest;
            iload 1 /* b */
            invokevirtual java.security.MessageDigest.update:(B)V
         2: .line 104
            return
        end local 1 // byte b
        end local 0 // sun.security.ssl.RSASignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ssl/RSASignature;
            0    3     1     b  B
    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.ssl.RSASignature this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 108
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.mdMD5:Ljava/security/MessageDigest;
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual java.security.MessageDigest.update:([BII)V
         1: .line 109
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.mdSHA:Ljava/security/MessageDigest;
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual java.security.MessageDigest.update:([BII)V
         2: .line 110
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // sun.security.ssl.RSASignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ssl/RSASignature;
            0    3     1     b  [B
            0    3     2   off  I
            0    3     3   len  I
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  private byte[] getDigest();
    descriptor: ()[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.security.ssl.RSASignature this
         0: .line 114
            bipush 36
            newarray 8
            astore 1 /* data */
        start local 1 // byte[] data
         1: .line 115
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.mdMD5:Ljava/security/MessageDigest;
            aload 1 /* data */
            iconst_0
            bipush 16
            invokevirtual java.security.MessageDigest.digest:([BII)I
            pop
         2: .line 116
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.mdSHA:Ljava/security/MessageDigest;
            aload 1 /* data */
            bipush 16
            bipush 20
            invokevirtual java.security.MessageDigest.digest:([BII)I
            pop
         3: .line 117
            aload 1 /* data */
         4: areturn
        end local 1 // byte[] data
         5: .line 118
      StackMap locals:
      StackMap stack: java.security.DigestException
            astore 1 /* e */
        start local 1 // java.security.DigestException e
         6: .line 120
            new java.security.SignatureException
            dup
            aload 1 /* e */
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.security.DigestException e
        end local 0 // sun.security.ssl.RSASignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/RSASignature;
            1    5     1  data  [B
            6    7     1     e  Ljava/security/DigestException;
      Exception table:
        from    to  target  type
           0     4       5  Class java.security.DigestException
    Exceptions:
      throws java.security.SignatureException

  protected byte[] engineSign();
    descriptor: ()[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.RSASignature this
         0: .line 126
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.rawRsa:Ljava/security/Signature;
            aload 0 /* this */
            invokevirtual sun.security.ssl.RSASignature.getDigest:()[B
            invokevirtual java.security.Signature.update:([B)V
         1: .line 127
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.rawRsa:Ljava/security/Signature;
            invokevirtual java.security.Signature.sign:()[B
            areturn
        end local 0 // sun.security.ssl.RSASignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/RSASignature;
    Exceptions:
      throws java.security.SignatureException

  protected boolean engineVerify(byte[]);
    descriptor: ([B)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.ssl.RSASignature this
        start local 1 // byte[] sigBytes
         0: .line 132
            aload 0 /* this */
            aload 1 /* sigBytes */
            iconst_0
            aload 1 /* sigBytes */
            arraylength
            invokevirtual sun.security.ssl.RSASignature.engineVerify:([BII)Z
            ireturn
        end local 1 // byte[] sigBytes
        end local 0 // sun.security.ssl.RSASignature this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lsun/security/ssl/RSASignature;
            0    1     1  sigBytes  [B
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
          Name  Flags
      sigBytes  

  protected boolean engineVerify(byte[], int, int);
    descriptor: ([BII)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // sun.security.ssl.RSASignature this
        start local 1 // byte[] sigBytes
        start local 2 // int offset
        start local 3 // int length
         0: .line 138
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.rawRsa:Ljava/security/Signature;
            aload 0 /* this */
            invokevirtual sun.security.ssl.RSASignature.getDigest:()[B
            invokevirtual java.security.Signature.update:([B)V
         1: .line 139
            aload 0 /* this */
            getfield sun.security.ssl.RSASignature.rawRsa:Ljava/security/Signature;
            aload 1 /* sigBytes */
            iload 2 /* offset */
            iload 3 /* length */
            invokevirtual java.security.Signature.verify:([BII)Z
            ireturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] sigBytes
        end local 0 // sun.security.ssl.RSASignature this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lsun/security/ssl/RSASignature;
            0    2     1  sigBytes  [B
            0    2     2    offset  I
            0    2     3    length  I
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
          Name  Flags
      sigBytes  
      offset    
      length    

  protected void engineSetParameter(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.ssl.RSASignature this
        start local 1 // java.lang.String param
        start local 2 // java.lang.Object value
         0: .line 146
            new java.security.InvalidParameterException
            dup
            ldc "Parameters not supported"
            invokespecial java.security.InvalidParameterException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String param
        end local 0 // sun.security.ssl.RSASignature this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lsun/security/ssl/RSASignature;
            0    1     1  param  Ljava/lang/String;
            0    1     2  value  Ljava/lang/Object;
    Exceptions:
      throws java.security.InvalidParameterException
    MethodParameters:
       Name  Flags
      param  
      value  

  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.ssl.RSASignature this
        start local 1 // java.security.spec.AlgorithmParameterSpec params
         0: .line 152
            aload 1 /* params */
            ifnull 2
         1: .line 153
            new java.security.InvalidAlgorithmParameterException
            dup
            ldc "No parameters accepted"
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 155
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.security.spec.AlgorithmParameterSpec params
        end local 0 // sun.security.ssl.RSASignature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lsun/security/ssl/RSASignature;
            0    3     1  params  Ljava/security/spec/AlgorithmParameterSpec;
    Exceptions:
      throws java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      params  

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

  protected java.security.AlgorithmParameters engineGetParameters();
    descriptor: ()Ljava/security/AlgorithmParameters;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.RSASignature this
         0: .line 166
            aconst_null
            areturn
        end local 0 // sun.security.ssl.RSASignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/RSASignature;
}
SourceFile: "RSASignature.java"