final class sun.security.pkcs11.P11RSAKeyFactory extends sun.security.pkcs11.P11KeyFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.pkcs11.P11RSAKeyFactory
  super_class: sun.security.pkcs11.P11KeyFactory
{
  void <init>(sun.security.pkcs11.Token, java.lang.String);
    descriptor: (Lsun/security/pkcs11/Token;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.pkcs11.P11RSAKeyFactory this
        start local 1 // sun.security.pkcs11.Token token
        start local 2 // java.lang.String algorithm
         0: .line 49
            aload 0 /* this */
            aload 1 /* token */
            aload 2 /* algorithm */
            invokespecial sun.security.pkcs11.P11KeyFactory.<init>:(Lsun/security/pkcs11/Token;Ljava/lang/String;)V
         1: .line 50
            return
        end local 2 // java.lang.String algorithm
        end local 1 // sun.security.pkcs11.Token token
        end local 0 // sun.security.pkcs11.P11RSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lsun/security/pkcs11/P11RSAKeyFactory;
            0    2     1      token  Lsun/security/pkcs11/Token;
            0    2     2  algorithm  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      token      
      algorithm  

  java.security.PublicKey implTranslatePublicKey(java.security.PublicKey);
    descriptor: (Ljava/security/PublicKey;)Ljava/security/PublicKey;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.security.pkcs11.P11RSAKeyFactory this
        start local 1 // java.security.PublicKey key
         0: .line 54
            aload 1 /* key */
            instanceof java.security.interfaces.RSAPublicKey
            ifeq 7
         1: .line 55
            aload 1 /* key */
            checkcast java.security.interfaces.RSAPublicKey
            astore 2 /* rsaKey */
        start local 2 // java.security.interfaces.RSAPublicKey rsaKey
         2: .line 56
            aload 0 /* this */
         3: .line 57
            aload 2 /* rsaKey */
            invokeinterface java.security.interfaces.RSAPublicKey.getModulus:()Ljava/math/BigInteger;
         4: .line 58
            aload 2 /* rsaKey */
            invokeinterface java.security.interfaces.RSAPublicKey.getPublicExponent:()Ljava/math/BigInteger;
         5: .line 56
            invokevirtual sun.security.pkcs11.P11RSAKeyFactory.generatePublic:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/security/PublicKey;
         6: areturn
        end local 2 // java.security.interfaces.RSAPublicKey rsaKey
         7: .line 60
      StackMap locals:
      StackMap stack:
            ldc "X.509"
            aload 1 /* key */
            invokeinterface java.security.PublicKey.getFormat:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
         8: .line 62
            aload 1 /* key */
            invokeinterface java.security.PublicKey.getEncoded:()[B
            astore 2 /* encoded */
        start local 2 // byte[] encoded
         9: .line 63
            new sun.security.rsa.RSAPublicKeyImpl
            dup
            aload 2 /* encoded */
            invokespecial sun.security.rsa.RSAPublicKeyImpl.<init>:([B)V
            astore 1 /* key */
        10: .line 64
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual sun.security.pkcs11.P11RSAKeyFactory.implTranslatePublicKey:(Ljava/security/PublicKey;)Ljava/security/PublicKey;
        11: areturn
        end local 2 // byte[] encoded
        12: .line 66
      StackMap locals:
      StackMap stack:
            new java.security.InvalidKeyException
            dup
            ldc "PublicKey must be instance of RSAPublicKey or have X.509 encoding"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 69
      StackMap locals:
      StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
            astore 2 /* e */
        start local 2 // sun.security.pkcs11.wrapper.PKCS11Exception e
        14: .line 70
            new java.security.InvalidKeyException
            dup
            ldc "Could not create RSA public key"
            aload 2 /* e */
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // sun.security.pkcs11.wrapper.PKCS11Exception e
        end local 1 // java.security.PublicKey key
        end local 0 // sun.security.pkcs11.P11RSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lsun/security/pkcs11/P11RSAKeyFactory;
            0   15     1      key  Ljava/security/PublicKey;
            2    7     2   rsaKey  Ljava/security/interfaces/RSAPublicKey;
            9   12     2  encoded  [B
           14   15     2        e  Lsun/security/pkcs11/wrapper/PKCS11Exception;
      Exception table:
        from    to  target  type
           0     6      13  Class sun.security.pkcs11.wrapper.PKCS11Exception
           7    11      13  Class sun.security.pkcs11.wrapper.PKCS11Exception
          12    13      13  Class sun.security.pkcs11.wrapper.PKCS11Exception
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      key   

  java.security.PrivateKey implTranslatePrivateKey(java.security.PrivateKey);
    descriptor: (Ljava/security/PrivateKey;)Ljava/security/PrivateKey;
    flags: (0x0000) 
    Code:
      stack=9, locals=3, args_size=2
        start local 0 // sun.security.pkcs11.P11RSAKeyFactory this
        start local 1 // java.security.PrivateKey key
         0: .line 77
            aload 1 /* key */
            instanceof java.security.interfaces.RSAPrivateCrtKey
            ifeq 13
         1: .line 78
            aload 1 /* key */
            checkcast java.security.interfaces.RSAPrivateCrtKey
            astore 2 /* rsaKey */
        start local 2 // java.security.interfaces.RSAPrivateCrtKey rsaKey
         2: .line 79
            aload 0 /* this */
         3: .line 80
            aload 2 /* rsaKey */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getModulus:()Ljava/math/BigInteger;
         4: .line 81
            aload 2 /* rsaKey */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getPublicExponent:()Ljava/math/BigInteger;
         5: .line 82
            aload 2 /* rsaKey */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getPrivateExponent:()Ljava/math/BigInteger;
         6: .line 83
            aload 2 /* rsaKey */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getPrimeP:()Ljava/math/BigInteger;
         7: .line 84
            aload 2 /* rsaKey */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getPrimeQ:()Ljava/math/BigInteger;
         8: .line 85
            aload 2 /* rsaKey */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getPrimeExponentP:()Ljava/math/BigInteger;
         9: .line 86
            aload 2 /* rsaKey */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getPrimeExponentQ:()Ljava/math/BigInteger;
        10: .line 87
            aload 2 /* rsaKey */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getCrtCoefficient:()Ljava/math/BigInteger;
        11: .line 79
            invokevirtual sun.security.pkcs11.P11RSAKeyFactory.generatePrivate:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/security/PrivateKey;
        12: areturn
        end local 2 // java.security.interfaces.RSAPrivateCrtKey rsaKey
        13: .line 89
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            instanceof java.security.interfaces.RSAPrivateKey
            ifeq 20
        14: .line 90
            aload 1 /* key */
            checkcast java.security.interfaces.RSAPrivateKey
            astore 2 /* rsaKey */
        start local 2 // java.security.interfaces.RSAPrivateKey rsaKey
        15: .line 91
            aload 0 /* this */
        16: .line 92
            aload 2 /* rsaKey */
            invokeinterface java.security.interfaces.RSAPrivateKey.getModulus:()Ljava/math/BigInteger;
        17: .line 93
            aload 2 /* rsaKey */
            invokeinterface java.security.interfaces.RSAPrivateKey.getPrivateExponent:()Ljava/math/BigInteger;
        18: .line 91
            invokevirtual sun.security.pkcs11.P11RSAKeyFactory.generatePrivate:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/security/PrivateKey;
        19: areturn
        end local 2 // java.security.interfaces.RSAPrivateKey rsaKey
        20: .line 95
      StackMap locals:
      StackMap stack:
            ldc "PKCS#8"
            aload 1 /* key */
            invokeinterface java.security.PrivateKey.getFormat:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 25
        21: .line 97
            aload 1 /* key */
            invokeinterface java.security.PrivateKey.getEncoded:()[B
            astore 2 /* encoded */
        start local 2 // byte[] encoded
        22: .line 98
            aload 2 /* encoded */
            invokestatic sun.security.rsa.RSAPrivateCrtKeyImpl.newKey:([B)Ljava/security/interfaces/RSAPrivateKey;
            astore 1 /* key */
        23: .line 99
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual sun.security.pkcs11.P11RSAKeyFactory.implTranslatePrivateKey:(Ljava/security/PrivateKey;)Ljava/security/PrivateKey;
        24: areturn
        end local 2 // byte[] encoded
        25: .line 101
      StackMap locals:
      StackMap stack:
            new java.security.InvalidKeyException
            dup
            ldc "Private key must be instance of RSAPrivate(Crt)Key or have PKCS#8 encoding"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 104
      StackMap locals:
      StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
            astore 2 /* e */
        start local 2 // sun.security.pkcs11.wrapper.PKCS11Exception e
        27: .line 105
            new java.security.InvalidKeyException
            dup
            ldc "Could not create RSA private key"
            aload 2 /* e */
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // sun.security.pkcs11.wrapper.PKCS11Exception e
        end local 1 // java.security.PrivateKey key
        end local 0 // sun.security.pkcs11.P11RSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   28     0     this  Lsun/security/pkcs11/P11RSAKeyFactory;
            0   28     1      key  Ljava/security/PrivateKey;
            2   13     2   rsaKey  Ljava/security/interfaces/RSAPrivateCrtKey;
           15   20     2   rsaKey  Ljava/security/interfaces/RSAPrivateKey;
           22   25     2  encoded  [B
           27   28     2        e  Lsun/security/pkcs11/wrapper/PKCS11Exception;
      Exception table:
        from    to  target  type
           0    12      26  Class sun.security.pkcs11.wrapper.PKCS11Exception
          13    19      26  Class sun.security.pkcs11.wrapper.PKCS11Exception
          20    24      26  Class sun.security.pkcs11.wrapper.PKCS11Exception
          25    26      26  Class sun.security.pkcs11.wrapper.PKCS11Exception
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      key   

  protected java.security.PublicKey engineGeneratePublic(java.security.spec.KeySpec);
    descriptor: (Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.security.pkcs11.P11RSAKeyFactory this
        start local 1 // java.security.spec.KeySpec keySpec
         0: .line 112
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            invokevirtual sun.security.pkcs11.Token.ensureValid:()V
         1: .line 113
            aload 1 /* keySpec */
            instanceof java.security.spec.X509EncodedKeySpec
            ifeq 10
         2: .line 115
            aload 1 /* keySpec */
            checkcast java.security.spec.X509EncodedKeySpec
            invokevirtual java.security.spec.X509EncodedKeySpec.getEncoded:()[B
            astore 2 /* encoded */
        start local 2 // byte[] encoded
         3: .line 116
            new sun.security.rsa.RSAPublicKeyImpl
            dup
            aload 2 /* encoded */
            invokespecial sun.security.rsa.RSAPublicKeyImpl.<init>:([B)V
            astore 3 /* key */
        start local 3 // java.security.PublicKey key
         4: .line 117
            aload 0 /* this */
            aload 3 /* key */
            invokevirtual sun.security.pkcs11.P11RSAKeyFactory.implTranslatePublicKey:(Ljava/security/PublicKey;)Ljava/security/PublicKey;
         5: areturn
        end local 3 // java.security.PublicKey key
        end local 2 // byte[] encoded
         6: .line 118
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
            astore 2 /* e */
        start local 2 // java.security.InvalidKeyException e
         7: .line 119
            new java.security.spec.InvalidKeySpecException
            dup
         8: .line 120
            ldc "Could not create RSA public key"
            aload 2 /* e */
         9: .line 119
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.InvalidKeyException e
        10: .line 123
      StackMap locals:
      StackMap stack:
            aload 1 /* keySpec */
            instanceof java.security.spec.RSAPublicKeySpec
            ifne 12
        11: .line 124
            new java.security.spec.InvalidKeySpecException
            dup
            ldc "Only RSAPublicKeySpec and X509EncodedKeySpec supported for RSA public keys"
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 128
      StackMap locals:
      StackMap stack:
            aload 1 /* keySpec */
            checkcast java.security.spec.RSAPublicKeySpec
            astore 2 /* rs */
        start local 2 // java.security.spec.RSAPublicKeySpec rs
        13: .line 129
            aload 0 /* this */
        14: .line 130
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPublicKeySpec.getModulus:()Ljava/math/BigInteger;
        15: .line 131
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPublicKeySpec.getPublicExponent:()Ljava/math/BigInteger;
        16: .line 129
            invokevirtual sun.security.pkcs11.P11RSAKeyFactory.generatePublic:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/security/PublicKey;
        17: areturn
        end local 2 // java.security.spec.RSAPublicKeySpec rs
        18: .line 133
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        19: .line 134
            new java.security.spec.InvalidKeySpecException
            dup
        20: .line 135
            ldc "Could not create RSA public key"
            aload 2 /* e */
        21: .line 134
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception e
        end local 1 // java.security.spec.KeySpec keySpec
        end local 0 // sun.security.pkcs11.P11RSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0     this  Lsun/security/pkcs11/P11RSAKeyFactory;
            0   22     1  keySpec  Ljava/security/spec/KeySpec;
            3    6     2  encoded  [B
            4    6     3      key  Ljava/security/PublicKey;
            7   10     2        e  Ljava/security/InvalidKeyException;
           13   18     2       rs  Ljava/security/spec/RSAPublicKeySpec;
           19   22     2        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     5       6  Class java.security.InvalidKeyException
          12    17      18  Class sun.security.pkcs11.wrapper.PKCS11Exception
          12    17      18  Class java.security.InvalidKeyException
    Exceptions:
      throws java.security.spec.InvalidKeySpecException
    MethodParameters:
         Name  Flags
      keySpec  

  protected java.security.PrivateKey engineGeneratePrivate(java.security.spec.KeySpec);
    descriptor: (Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=4, args_size=2
        start local 0 // sun.security.pkcs11.P11RSAKeyFactory this
        start local 1 // java.security.spec.KeySpec keySpec
         0: .line 142
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            invokevirtual sun.security.pkcs11.Token.ensureValid:()V
         1: .line 143
            aload 1 /* keySpec */
            instanceof java.security.spec.PKCS8EncodedKeySpec
            ifeq 11
         2: .line 145
            aload 1 /* keySpec */
            checkcast java.security.spec.PKCS8EncodedKeySpec
            invokevirtual java.security.spec.PKCS8EncodedKeySpec.getEncoded:()[B
            astore 2 /* encoded */
        start local 2 // byte[] encoded
         3: .line 147
            aload 2 /* encoded */
            invokestatic sun.security.rsa.RSAPrivateCrtKeyImpl.newKey:([B)Ljava/security/interfaces/RSAPrivateKey;
         4: .line 146
            astore 3 /* key */
        start local 3 // java.security.PrivateKey key
         5: .line 148
            aload 0 /* this */
            aload 3 /* key */
            invokevirtual sun.security.pkcs11.P11RSAKeyFactory.implTranslatePrivateKey:(Ljava/security/PrivateKey;)Ljava/security/PrivateKey;
         6: areturn
        end local 3 // java.security.PrivateKey key
        end local 2 // byte[] encoded
         7: .line 149
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
            astore 2 /* e */
        start local 2 // java.security.GeneralSecurityException e
         8: .line 150
            new java.security.spec.InvalidKeySpecException
            dup
         9: .line 151
            ldc "Could not create RSA private key"
            aload 2 /* e */
        10: .line 150
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.GeneralSecurityException e
        11: .line 155
      StackMap locals:
      StackMap stack:
            aload 1 /* keySpec */
            instanceof java.security.spec.RSAPrivateCrtKeySpec
            ifeq 24
        12: .line 156
            aload 1 /* keySpec */
            checkcast java.security.spec.RSAPrivateCrtKeySpec
            astore 2 /* rs */
        start local 2 // java.security.spec.RSAPrivateCrtKeySpec rs
        13: .line 157
            aload 0 /* this */
        14: .line 158
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getModulus:()Ljava/math/BigInteger;
        15: .line 159
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getPublicExponent:()Ljava/math/BigInteger;
        16: .line 160
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getPrivateExponent:()Ljava/math/BigInteger;
        17: .line 161
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getPrimeP:()Ljava/math/BigInteger;
        18: .line 162
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getPrimeQ:()Ljava/math/BigInteger;
        19: .line 163
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getPrimeExponentP:()Ljava/math/BigInteger;
        20: .line 164
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getPrimeExponentQ:()Ljava/math/BigInteger;
        21: .line 165
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getCrtCoefficient:()Ljava/math/BigInteger;
        22: .line 157
            invokevirtual sun.security.pkcs11.P11RSAKeyFactory.generatePrivate:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/security/PrivateKey;
        23: areturn
        end local 2 // java.security.spec.RSAPrivateCrtKeySpec rs
        24: .line 167
      StackMap locals:
      StackMap stack:
            aload 1 /* keySpec */
            instanceof java.security.spec.RSAPrivateKeySpec
            ifeq 31
        25: .line 168
            aload 1 /* keySpec */
            checkcast java.security.spec.RSAPrivateKeySpec
            astore 2 /* rs */
        start local 2 // java.security.spec.RSAPrivateKeySpec rs
        26: .line 169
            aload 0 /* this */
        27: .line 170
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateKeySpec.getModulus:()Ljava/math/BigInteger;
        28: .line 171
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateKeySpec.getPrivateExponent:()Ljava/math/BigInteger;
        29: .line 169
            invokevirtual sun.security.pkcs11.P11RSAKeyFactory.generatePrivate:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/security/PrivateKey;
        30: areturn
        end local 2 // java.security.spec.RSAPrivateKeySpec rs
        31: .line 174
      StackMap locals:
      StackMap stack:
            new java.security.spec.InvalidKeySpecException
            dup
            ldc "Only RSAPrivate(Crt)KeySpec and PKCS8EncodedKeySpec supported for RSA private keys"
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        32: .line 177
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        33: .line 178
            new java.security.spec.InvalidKeySpecException
            dup
        34: .line 179
            ldc "Could not create RSA private key"
            aload 2 /* e */
        35: .line 178
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception e
        end local 1 // java.security.spec.KeySpec keySpec
        end local 0 // sun.security.pkcs11.P11RSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   36     0     this  Lsun/security/pkcs11/P11RSAKeyFactory;
            0   36     1  keySpec  Ljava/security/spec/KeySpec;
            3    7     2  encoded  [B
            5    7     3      key  Ljava/security/PrivateKey;
            8   11     2        e  Ljava/security/GeneralSecurityException;
           13   24     2       rs  Ljava/security/spec/RSAPrivateCrtKeySpec;
           26   31     2       rs  Ljava/security/spec/RSAPrivateKeySpec;
           33   36     2        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     6       7  Class java.security.GeneralSecurityException
          11    23      32  Class sun.security.pkcs11.wrapper.PKCS11Exception
          24    30      32  Class sun.security.pkcs11.wrapper.PKCS11Exception
          31    32      32  Class sun.security.pkcs11.wrapper.PKCS11Exception
          11    23      32  Class java.security.InvalidKeyException
          24    30      32  Class java.security.InvalidKeyException
          31    32      32  Class java.security.InvalidKeyException
    Exceptions:
      throws java.security.spec.InvalidKeySpecException
    MethodParameters:
         Name  Flags
      keySpec  

  private java.security.PublicKey generatePublic(java.math.BigInteger, java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/security/PublicKey;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=9, args_size=3
        start local 0 // sun.security.pkcs11.P11RSAKeyFactory this
        start local 1 // java.math.BigInteger n
        start local 2 // java.math.BigInteger e
         0: .line 185
            aload 1 /* n */
            invokevirtual java.math.BigInteger.bitLength:()I
            aload 2 /* e */
            iconst_m1
            ldc 65536
            invokestatic sun.security.rsa.RSAKeyFactory.checkKeyLengths:(ILjava/math/BigInteger;II)V
         1: .line 186
            iconst_4
            anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            iconst_0
         2: .line 187
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            lconst_0
            ldc 2
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JJ)V
            aastore
            dup
            iconst_1
         3: .line 188
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 256
            lconst_0
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JJ)V
            aastore
            dup
            iconst_2
         4: .line 189
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 288
            aload 1 /* n */
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JLjava/math/BigInteger;)V
            aastore
            dup
            iconst_3
         5: .line 190
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 290
            aload 2 /* e */
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JLjava/math/BigInteger;)V
            aastore
         6: .line 186
            astore 3 /* attributes */
        start local 3 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
         7: .line 192
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
         8: .line 193
            ldc "import"
            ldc 2
            lconst_0
            aload 3 /* attributes */
         9: .line 192
            invokevirtual sun.security.pkcs11.Token.getAttributes:(Ljava/lang/String;JJ[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
            astore 3 /* attributes */
        10: .line 194
            aconst_null
            astore 4 /* session */
        start local 4 // sun.security.pkcs11.Session session
        11: .line 196
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            invokevirtual sun.security.pkcs11.Token.getObjSession:()Lsun/security/pkcs11/Session;
            astore 4 /* session */
        12: .line 197
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 4 /* session */
            invokevirtual sun.security.pkcs11.Session.id:()J
            aload 3 /* attributes */
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_CreateObject:(J[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)J
            lstore 5 /* keyID */
        start local 5 // long keyID
        13: .line 199
            aload 4 /* session */
            lload 5 /* keyID */
            ldc "RSA"
            aload 1 /* n */
            invokevirtual java.math.BigInteger.bitLength:()I
            aload 3 /* attributes */
        14: .line 198
            invokestatic sun.security.pkcs11.P11Key.publicKey:(Lsun/security/pkcs11/Session;JLjava/lang/String;I[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)Ljava/security/PublicKey;
            astore 8
        15: .line 201
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            aload 4 /* session */
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            pop
        16: .line 198
            aload 8
            areturn
        end local 5 // long keyID
        17: .line 200
      StackMap locals: sun.security.pkcs11.P11RSAKeyFactory java.math.BigInteger java.math.BigInteger sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] sun.security.pkcs11.Session
      StackMap stack: java.lang.Throwable
            astore 7
        18: .line 201
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            aload 4 /* session */
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            pop
        19: .line 202
            aload 7
            athrow
        end local 4 // sun.security.pkcs11.Session session
        end local 3 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
        end local 2 // java.math.BigInteger e
        end local 1 // java.math.BigInteger n
        end local 0 // sun.security.pkcs11.P11RSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lsun/security/pkcs11/P11RSAKeyFactory;
            0   20     1           n  Ljava/math/BigInteger;
            0   20     2           e  Ljava/math/BigInteger;
            7   20     3  attributes  [Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
           11   20     4     session  Lsun/security/pkcs11/Session;
           13   17     5       keyID  J
      Exception table:
        from    to  target  type
          11    15      17  any
    Exceptions:
      throws sun.security.pkcs11.wrapper.PKCS11Exception, java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      n     
      e     

  private java.security.PrivateKey generatePrivate(java.math.BigInteger, java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/security/PrivateKey;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=9, args_size=3
        start local 0 // sun.security.pkcs11.P11RSAKeyFactory this
        start local 1 // java.math.BigInteger n
        start local 2 // java.math.BigInteger d
         0: .line 207
            aload 1 /* n */
            invokevirtual java.math.BigInteger.bitLength:()I
            aconst_null
            iconst_m1
            ldc 65536
            invokestatic sun.security.rsa.RSAKeyFactory.checkKeyLengths:(ILjava/math/BigInteger;II)V
         1: .line 208
            iconst_4
            anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            iconst_0
         2: .line 209
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            lconst_0
            ldc 3
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JJ)V
            aastore
            dup
            iconst_1
         3: .line 210
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 256
            lconst_0
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JJ)V
            aastore
            dup
            iconst_2
         4: .line 211
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 288
            aload 1 /* n */
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JLjava/math/BigInteger;)V
            aastore
            dup
            iconst_3
         5: .line 212
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 291
            aload 2 /* d */
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JLjava/math/BigInteger;)V
            aastore
         6: .line 208
            astore 3 /* attributes */
        start local 3 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
         7: .line 214
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
         8: .line 215
            ldc "import"
            ldc 3
            lconst_0
            aload 3 /* attributes */
         9: .line 214
            invokevirtual sun.security.pkcs11.Token.getAttributes:(Ljava/lang/String;JJ[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
            astore 3 /* attributes */
        10: .line 216
            aconst_null
            astore 4 /* session */
        start local 4 // sun.security.pkcs11.Session session
        11: .line 218
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            invokevirtual sun.security.pkcs11.Token.getObjSession:()Lsun/security/pkcs11/Session;
            astore 4 /* session */
        12: .line 219
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 4 /* session */
            invokevirtual sun.security.pkcs11.Session.id:()J
            aload 3 /* attributes */
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_CreateObject:(J[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)J
            lstore 5 /* keyID */
        start local 5 // long keyID
        13: .line 221
            aload 4 /* session */
            lload 5 /* keyID */
            ldc "RSA"
            aload 1 /* n */
            invokevirtual java.math.BigInteger.bitLength:()I
            aload 3 /* attributes */
        14: .line 220
            invokestatic sun.security.pkcs11.P11Key.privateKey:(Lsun/security/pkcs11/Session;JLjava/lang/String;I[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)Ljava/security/PrivateKey;
            astore 8
        15: .line 223
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            aload 4 /* session */
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            pop
        16: .line 220
            aload 8
            areturn
        end local 5 // long keyID
        17: .line 222
      StackMap locals: sun.security.pkcs11.P11RSAKeyFactory java.math.BigInteger java.math.BigInteger sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] sun.security.pkcs11.Session
      StackMap stack: java.lang.Throwable
            astore 7
        18: .line 223
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            aload 4 /* session */
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            pop
        19: .line 224
            aload 7
            athrow
        end local 4 // sun.security.pkcs11.Session session
        end local 3 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
        end local 2 // java.math.BigInteger d
        end local 1 // java.math.BigInteger n
        end local 0 // sun.security.pkcs11.P11RSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lsun/security/pkcs11/P11RSAKeyFactory;
            0   20     1           n  Ljava/math/BigInteger;
            0   20     2           d  Ljava/math/BigInteger;
            7   20     3  attributes  [Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
           11   20     4     session  Lsun/security/pkcs11/Session;
           13   17     5       keyID  J
      Exception table:
        from    to  target  type
          11    15      17  any
    Exceptions:
      throws sun.security.pkcs11.wrapper.PKCS11Exception, java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      n     
      d     

  private java.security.PrivateKey generatePrivate(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/security/PrivateKey;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=15, args_size=9
        start local 0 // sun.security.pkcs11.P11RSAKeyFactory this
        start local 1 // java.math.BigInteger n
        start local 2 // java.math.BigInteger e
        start local 3 // java.math.BigInteger d
        start local 4 // java.math.BigInteger p
        start local 5 // java.math.BigInteger q
        start local 6 // java.math.BigInteger pe
        start local 7 // java.math.BigInteger qe
        start local 8 // java.math.BigInteger coeff
         0: .line 231
            aload 1 /* n */
            invokevirtual java.math.BigInteger.bitLength:()I
            aload 2 /* e */
            iconst_m1
            ldc 65536
            invokestatic sun.security.rsa.RSAKeyFactory.checkKeyLengths:(ILjava/math/BigInteger;II)V
         1: .line 232
            bipush 10
            anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            iconst_0
         2: .line 233
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            lconst_0
            ldc 3
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JJ)V
            aastore
            dup
            iconst_1
         3: .line 234
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 256
            lconst_0
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JJ)V
            aastore
            dup
            iconst_2
         4: .line 235
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 288
            aload 1 /* n */
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JLjava/math/BigInteger;)V
            aastore
            dup
            iconst_3
         5: .line 236
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 290
            aload 2 /* e */
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JLjava/math/BigInteger;)V
            aastore
            dup
            iconst_4
         6: .line 237
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 291
            aload 3 /* d */
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JLjava/math/BigInteger;)V
            aastore
            dup
            iconst_5
         7: .line 238
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 292
            aload 4 /* p */
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JLjava/math/BigInteger;)V
            aastore
            dup
            bipush 6
         8: .line 239
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 293
            aload 5 /* q */
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JLjava/math/BigInteger;)V
            aastore
            dup
            bipush 7
         9: .line 240
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 294
            aload 6 /* pe */
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JLjava/math/BigInteger;)V
            aastore
            dup
            bipush 8
        10: .line 241
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 295
            aload 7 /* qe */
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JLjava/math/BigInteger;)V
            aastore
            dup
            bipush 9
        11: .line 242
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 296
            aload 8 /* coeff */
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JLjava/math/BigInteger;)V
            aastore
        12: .line 232
            astore 9 /* attributes */
        start local 9 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
        13: .line 244
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
        14: .line 245
            ldc "import"
            ldc 3
            lconst_0
            aload 9 /* attributes */
        15: .line 244
            invokevirtual sun.security.pkcs11.Token.getAttributes:(Ljava/lang/String;JJ[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
            astore 9 /* attributes */
        16: .line 246
            aconst_null
            astore 10 /* session */
        start local 10 // sun.security.pkcs11.Session session
        17: .line 248
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            invokevirtual sun.security.pkcs11.Token.getObjSession:()Lsun/security/pkcs11/Session;
            astore 10 /* session */
        18: .line 249
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 10 /* session */
            invokevirtual sun.security.pkcs11.Session.id:()J
            aload 9 /* attributes */
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_CreateObject:(J[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)J
            lstore 11 /* keyID */
        start local 11 // long keyID
        19: .line 251
            aload 10 /* session */
            lload 11 /* keyID */
            ldc "RSA"
            aload 1 /* n */
            invokevirtual java.math.BigInteger.bitLength:()I
            aload 9 /* attributes */
        20: .line 250
            invokestatic sun.security.pkcs11.P11Key.privateKey:(Lsun/security/pkcs11/Session;JLjava/lang/String;I[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)Ljava/security/PrivateKey;
            astore 14
        21: .line 253
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            aload 10 /* session */
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            pop
        22: .line 250
            aload 14
            areturn
        end local 11 // long keyID
        23: .line 252
      StackMap locals: sun.security.pkcs11.P11RSAKeyFactory java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] sun.security.pkcs11.Session
      StackMap stack: java.lang.Throwable
            astore 13
        24: .line 253
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            aload 10 /* session */
            invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
            pop
        25: .line 254
            aload 13
            athrow
        end local 10 // sun.security.pkcs11.Session session
        end local 9 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
        end local 8 // java.math.BigInteger coeff
        end local 7 // java.math.BigInteger qe
        end local 6 // java.math.BigInteger pe
        end local 5 // java.math.BigInteger q
        end local 4 // java.math.BigInteger p
        end local 3 // java.math.BigInteger d
        end local 2 // java.math.BigInteger e
        end local 1 // java.math.BigInteger n
        end local 0 // sun.security.pkcs11.P11RSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   26     0        this  Lsun/security/pkcs11/P11RSAKeyFactory;
            0   26     1           n  Ljava/math/BigInteger;
            0   26     2           e  Ljava/math/BigInteger;
            0   26     3           d  Ljava/math/BigInteger;
            0   26     4           p  Ljava/math/BigInteger;
            0   26     5           q  Ljava/math/BigInteger;
            0   26     6          pe  Ljava/math/BigInteger;
            0   26     7          qe  Ljava/math/BigInteger;
            0   26     8       coeff  Ljava/math/BigInteger;
           13   26     9  attributes  [Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
           17   26    10     session  Lsun/security/pkcs11/Session;
           19   23    11       keyID  J
      Exception table:
        from    to  target  type
          17    21      23  any
    Exceptions:
      throws sun.security.pkcs11.wrapper.PKCS11Exception, java.security.InvalidKeyException
    MethodParameters:
       Name  Flags
      n      
      e      
      d      
      p      
      q      
      pe     
      qe     
      coeff  

  <T extends java.security.spec.KeySpec> T implGetPublicKeySpec(sun.security.pkcs11.P11Key, java.lang.Class<T>, sun.security.pkcs11.Session[]);
    descriptor: (Lsun/security/pkcs11/P11Key;Ljava/lang/Class;[Lsun/security/pkcs11/Session;)Ljava/security/spec/KeySpec;
    flags: (0x0000) 
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // sun.security.pkcs11.P11RSAKeyFactory this
        start local 1 // sun.security.pkcs11.P11Key key
        start local 2 // java.lang.Class keySpec
        start local 3 // sun.security.pkcs11.Session[] session
         0: .line 259
            ldc Ljava/security/spec/RSAPublicKeySpec;
            aload 2 /* keySpec */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 12
         1: .line 260
            aload 3 /* session */
            iconst_0
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            invokevirtual sun.security.pkcs11.Token.getObjSession:()Lsun/security/pkcs11/Session;
            aastore
         2: .line 261
            iconst_2
            anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            iconst_0
         3: .line 262
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 288
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(J)V
            aastore
            dup
            iconst_1
         4: .line 263
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 290
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(J)V
            aastore
         5: .line 261
            astore 4 /* attributes */
        start local 4 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
         6: .line 265
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 3 /* session */
            iconst_0
            aaload
            invokevirtual sun.security.pkcs11.Session.id:()J
            aload 1 /* key */
            getfield sun.security.pkcs11.P11Key.keyID:J
            aload 4 /* attributes */
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_GetAttributeValue:(JJ[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)V
         7: .line 266
            new java.security.spec.RSAPublicKeySpec
            dup
         8: .line 267
            aload 4 /* attributes */
            iconst_0
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
         9: .line 268
            aload 4 /* attributes */
            iconst_1
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        10: .line 266
            invokespecial java.security.spec.RSAPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 5 /* spec */
        start local 5 // java.security.spec.KeySpec spec
        11: .line 270
            aload 2 /* keySpec */
            aload 5 /* spec */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.spec.KeySpec
            areturn
        end local 5 // java.security.spec.KeySpec spec
        end local 4 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
        12: .line 272
      StackMap locals:
      StackMap stack:
            new java.security.spec.InvalidKeySpecException
            dup
            ldc "Only RSAPublicKeySpec and X509EncodedKeySpec supported for RSA public keys"
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // sun.security.pkcs11.Session[] session
        end local 2 // java.lang.Class keySpec
        end local 1 // sun.security.pkcs11.P11Key key
        end local 0 // sun.security.pkcs11.P11RSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lsun/security/pkcs11/P11RSAKeyFactory;
            0   13     1         key  Lsun/security/pkcs11/P11Key;
            0   13     2     keySpec  Ljava/lang/Class<TT;>;
            0   13     3     session  [Lsun/security/pkcs11/Session;
            6   12     4  attributes  [Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
           11   12     5        spec  Ljava/security/spec/KeySpec;
    Exceptions:
      throws sun.security.pkcs11.wrapper.PKCS11Exception, java.security.spec.InvalidKeySpecException
    Signature: <T::Ljava/security/spec/KeySpec;>(Lsun/security/pkcs11/P11Key;Ljava/lang/Class<TT;>;[Lsun/security/pkcs11/Session;)TT;
    MethodParameters:
         Name  Flags
      key      
      keySpec  
      session  

  <T extends java.security.spec.KeySpec> T implGetPrivateKeySpec(sun.security.pkcs11.P11Key, java.lang.Class<T>, sun.security.pkcs11.Session[]);
    descriptor: (Lsun/security/pkcs11/P11Key;Ljava/lang/Class;[Lsun/security/pkcs11/Session;)Ljava/security/spec/KeySpec;
    flags: (0x0000) 
    Code:
      stack=11, locals=6, args_size=4
        start local 0 // sun.security.pkcs11.P11RSAKeyFactory this
        start local 1 // sun.security.pkcs11.P11Key key
        start local 2 // java.lang.Class keySpec
        start local 3 // sun.security.pkcs11.Session[] session
         0: .line 279
            ldc Ljava/security/spec/RSAPrivateCrtKeySpec;
            aload 2 /* keySpec */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 24
         1: .line 280
            aload 3 /* session */
            iconst_0
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            invokevirtual sun.security.pkcs11.Token.getObjSession:()Lsun/security/pkcs11/Session;
            aastore
         2: .line 281
            bipush 8
            anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            iconst_0
         3: .line 282
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 288
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(J)V
            aastore
            dup
            iconst_1
         4: .line 283
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 290
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(J)V
            aastore
            dup
            iconst_2
         5: .line 284
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 291
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(J)V
            aastore
            dup
            iconst_3
         6: .line 285
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 292
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(J)V
            aastore
            dup
            iconst_4
         7: .line 286
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 293
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(J)V
            aastore
            dup
            iconst_5
         8: .line 287
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 294
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(J)V
            aastore
            dup
            bipush 6
         9: .line 288
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 295
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(J)V
            aastore
            dup
            bipush 7
        10: .line 289
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 296
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(J)V
            aastore
        11: .line 281
            astore 4 /* attributes */
        start local 4 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
        12: .line 291
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 3 /* session */
            iconst_0
            aaload
            invokevirtual sun.security.pkcs11.Session.id:()J
            aload 1 /* key */
            getfield sun.security.pkcs11.P11Key.keyID:J
            aload 4 /* attributes */
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_GetAttributeValue:(JJ[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)V
        13: .line 292
            new java.security.spec.RSAPrivateCrtKeySpec
            dup
        14: .line 293
            aload 4 /* attributes */
            iconst_0
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        15: .line 294
            aload 4 /* attributes */
            iconst_1
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        16: .line 295
            aload 4 /* attributes */
            iconst_2
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        17: .line 296
            aload 4 /* attributes */
            iconst_3
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        18: .line 297
            aload 4 /* attributes */
            iconst_4
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        19: .line 298
            aload 4 /* attributes */
            iconst_5
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        20: .line 299
            aload 4 /* attributes */
            bipush 6
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        21: .line 300
            aload 4 /* attributes */
            bipush 7
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        22: .line 292
            invokespecial java.security.spec.RSAPrivateCrtKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 5 /* spec */
        start local 5 // java.security.spec.KeySpec spec
        23: .line 302
            aload 2 /* keySpec */
            aload 5 /* spec */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.spec.KeySpec
            areturn
        end local 5 // java.security.spec.KeySpec spec
        end local 4 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
        24: .line 303
      StackMap locals:
      StackMap stack:
            ldc Ljava/security/spec/RSAPrivateKeySpec;
            aload 2 /* keySpec */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 36
        25: .line 304
            aload 3 /* session */
            iconst_0
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            invokevirtual sun.security.pkcs11.Token.getObjSession:()Lsun/security/pkcs11/Session;
            aastore
        26: .line 305
            iconst_2
            anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            iconst_0
        27: .line 306
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 288
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(J)V
            aastore
            dup
            iconst_1
        28: .line 307
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 291
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(J)V
            aastore
        29: .line 305
            astore 4 /* attributes */
        start local 4 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
        30: .line 309
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
            aload 3 /* session */
            iconst_0
            aaload
            invokevirtual sun.security.pkcs11.Session.id:()J
            aload 1 /* key */
            getfield sun.security.pkcs11.P11Key.keyID:J
            aload 4 /* attributes */
            invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_GetAttributeValue:(JJ[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)V
        31: .line 310
            new java.security.spec.RSAPrivateKeySpec
            dup
        32: .line 311
            aload 4 /* attributes */
            iconst_0
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        33: .line 312
            aload 4 /* attributes */
            iconst_1
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        34: .line 310
            invokespecial java.security.spec.RSAPrivateKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 5 /* spec */
        start local 5 // java.security.spec.KeySpec spec
        35: .line 314
            aload 2 /* keySpec */
            aload 5 /* spec */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.spec.KeySpec
            areturn
        end local 5 // java.security.spec.KeySpec spec
        end local 4 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
        36: .line 316
      StackMap locals:
      StackMap stack:
            new java.security.spec.InvalidKeySpecException
            dup
            ldc "Only RSAPrivate(Crt)KeySpec and PKCS8EncodedKeySpec supported for RSA private keys"
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // sun.security.pkcs11.Session[] session
        end local 2 // java.lang.Class keySpec
        end local 1 // sun.security.pkcs11.P11Key key
        end local 0 // sun.security.pkcs11.P11RSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   37     0        this  Lsun/security/pkcs11/P11RSAKeyFactory;
            0   37     1         key  Lsun/security/pkcs11/P11Key;
            0   37     2     keySpec  Ljava/lang/Class<TT;>;
            0   37     3     session  [Lsun/security/pkcs11/Session;
           12   24     4  attributes  [Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
           23   24     5        spec  Ljava/security/spec/KeySpec;
           30   36     4  attributes  [Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
           35   36     5        spec  Ljava/security/spec/KeySpec;
    Exceptions:
      throws sun.security.pkcs11.wrapper.PKCS11Exception, java.security.spec.InvalidKeySpecException
    Signature: <T::Ljava/security/spec/KeySpec;>(Lsun/security/pkcs11/P11Key;Ljava/lang/Class<TT;>;[Lsun/security/pkcs11/Session;)TT;
    MethodParameters:
         Name  Flags
      key      
      keySpec  
      session  

  java.security.KeyFactory implGetSoftwareFactory();
    descriptor: ()Ljava/security/KeyFactory;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.pkcs11.P11RSAKeyFactory this
         0: .line 322
            ldc "RSA"
            invokestatic sun.security.pkcs11.P11Util.getSunRsaSignProvider:()Ljava/security/Provider;
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/KeyFactory;
            areturn
        end local 0 // sun.security.pkcs11.P11RSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs11/P11RSAKeyFactory;
    Exceptions:
      throws java.security.GeneralSecurityException
}
SourceFile: "P11RSAKeyFactory.java"