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: sun.security.pkcs11.wrapper.PKCS11Exception
            astore 2 /* e */
        start local 2 // sun.security.pkcs11.wrapper.PKCS11Exception 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 // sun.security.pkcs11.wrapper.PKCS11Exception e
        22: .line 136
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
            astore 2 /* e */
        start local 2 // java.security.InvalidKeyException e
        23: .line 137
            new java.security.spec.InvalidKeySpecException
            dup
        24: .line 138
            ldc "Could not create RSA public key"
            aload 2 /* e */
        25: .line 137
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.InvalidKeyException e
        end local 1 // java.security.spec.KeySpec keySpec
        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  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  Lsun/security/pkcs11/wrapper/PKCS11Exception;
           23   26     2        e  Ljava/security/InvalidKeyException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.security.InvalidKeyException
          12    17      18  Class sun.security.pkcs11.wrapper.PKCS11Exception
          12    17      22  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 145
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
            invokevirtual sun.security.pkcs11.Token.ensureValid:()V
         1: .line 146
            aload 1 /* keySpec */
            instanceof java.security.spec.PKCS8EncodedKeySpec
            ifeq 11
         2: .line 148
            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 150
            aload 2 /* encoded */
            invokestatic sun.security.rsa.RSAPrivateCrtKeyImpl.newKey:([B)Ljava/security/interfaces/RSAPrivateKey;
         4: .line 149
            astore 3 /* key */
        start local 3 // java.security.PrivateKey key
         5: .line 151
            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 152
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
            astore 2 /* e */
        start local 2 // java.security.GeneralSecurityException e
         8: .line 153
            new java.security.spec.InvalidKeySpecException
            dup
         9: .line 154
            ldc "Could not create RSA private key"
            aload 2 /* e */
        10: .line 153
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.GeneralSecurityException e
        11: .line 158
      StackMap locals:
      StackMap stack:
            aload 1 /* keySpec */
            instanceof java.security.spec.RSAPrivateCrtKeySpec
            ifeq 24
        12: .line 159
            aload 1 /* keySpec */
            checkcast java.security.spec.RSAPrivateCrtKeySpec
            astore 2 /* rs */
        start local 2 // java.security.spec.RSAPrivateCrtKeySpec rs
        13: .line 160
            aload 0 /* this */
        14: .line 161
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getModulus:()Ljava/math/BigInteger;
        15: .line 162
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getPublicExponent:()Ljava/math/BigInteger;
        16: .line 163
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getPrivateExponent:()Ljava/math/BigInteger;
        17: .line 164
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getPrimeP:()Ljava/math/BigInteger;
        18: .line 165
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getPrimeQ:()Ljava/math/BigInteger;
        19: .line 166
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getPrimeExponentP:()Ljava/math/BigInteger;
        20: .line 167
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getPrimeExponentQ:()Ljava/math/BigInteger;
        21: .line 168
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateCrtKeySpec.getCrtCoefficient:()Ljava/math/BigInteger;
        22: .line 160
            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 170
      StackMap locals:
      StackMap stack:
            aload 1 /* keySpec */
            instanceof java.security.spec.RSAPrivateKeySpec
            ifeq 31
        25: .line 171
            aload 1 /* keySpec */
            checkcast java.security.spec.RSAPrivateKeySpec
            astore 2 /* rs */
        start local 2 // java.security.spec.RSAPrivateKeySpec rs
        26: .line 172
            aload 0 /* this */
        27: .line 173
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateKeySpec.getModulus:()Ljava/math/BigInteger;
        28: .line 174
            aload 2 /* rs */
            invokevirtual java.security.spec.RSAPrivateKeySpec.getPrivateExponent:()Ljava/math/BigInteger;
        29: .line 172
            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 177
      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 180
      StackMap locals:
      StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
            astore 2 /* e */
        start local 2 // sun.security.pkcs11.wrapper.PKCS11Exception e
        33: .line 181
            new java.security.spec.InvalidKeySpecException
            dup
        34: .line 182
            ldc "Could not create RSA private key"
            aload 2 /* e */
        35: .line 181
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // sun.security.pkcs11.wrapper.PKCS11Exception e
        36: .line 183
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
            astore 2 /* e */
        start local 2 // java.security.InvalidKeyException e
        37: .line 184
            new java.security.spec.InvalidKeySpecException
            dup
        38: .line 185
            ldc "Could not create RSA private key"
            aload 2 /* e */
        39: .line 184
            invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.security.InvalidKeyException e
        end local 1 // java.security.spec.KeySpec keySpec
        end local 0 // sun.security.pkcs11.P11RSAKeyFactory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   40     0     this  Lsun/security/pkcs11/P11RSAKeyFactory;
            0   40     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  Lsun/security/pkcs11/wrapper/PKCS11Exception;
           37   40     2        e  Ljava/security/InvalidKeyException;
      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      36  Class java.security.InvalidKeyException
          24    30      36  Class java.security.InvalidKeyException
          31    32      36  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 191
            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 192
            iconst_4
            anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            iconst_0
         2: .line 193
            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 194
            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 195
            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 196
            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 192
            astore 3 /* attributes */
        start local 3 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
         7: .line 198
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
         8: .line 199
            ldc "import"
            ldc 2
            lconst_0
            aload 3 /* attributes */
         9: .line 198
            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 200
            aconst_null
            astore 4 /* session */
        start local 4 // sun.security.pkcs11.Session session
        11: .line 202
            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 203
            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 205
            aload 4 /* session */
            lload 5 /* keyID */
            ldc "RSA"
            aload 1 /* n */
            invokevirtual java.math.BigInteger.bitLength:()I
            aload 3 /* attributes */
        14: .line 204
            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 207
            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 204
            aload 8
            areturn
        end local 5 // long keyID
        17: .line 206
      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 207
            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 208
            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 213
            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 214
            iconst_4
            anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            iconst_0
         2: .line 215
            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 216
            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 217
            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 218
            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 214
            astore 3 /* attributes */
        start local 3 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
         7: .line 220
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
         8: .line 221
            ldc "import"
            ldc 3
            lconst_0
            aload 3 /* attributes */
         9: .line 220
            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 222
            aconst_null
            astore 4 /* session */
        start local 4 // sun.security.pkcs11.Session session
        11: .line 224
            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 225
            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 227
            aload 4 /* session */
            lload 5 /* keyID */
            ldc "RSA"
            aload 1 /* n */
            invokevirtual java.math.BigInteger.bitLength:()I
            aload 3 /* attributes */
        14: .line 226
            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 229
            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 226
            aload 8
            areturn
        end local 5 // long keyID
        17: .line 228
      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 229
            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 230
            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 237
            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 238
            bipush 10
            anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            iconst_0
         2: .line 239
            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 240
            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 241
            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 242
            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 243
            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 244
            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 245
            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 246
            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 247
            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 248
            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 238
            astore 9 /* attributes */
        start local 9 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
        13: .line 250
            aload 0 /* this */
            getfield sun.security.pkcs11.P11RSAKeyFactory.token:Lsun/security/pkcs11/Token;
        14: .line 251
            ldc "import"
            ldc 3
            lconst_0
            aload 9 /* attributes */
        15: .line 250
            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 252
            aconst_null
            astore 10 /* session */
        start local 10 // sun.security.pkcs11.Session session
        17: .line 254
            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 255
            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 257
            aload 10 /* session */
            lload 11 /* keyID */
            ldc "RSA"
            aload 1 /* n */
            invokevirtual java.math.BigInteger.bitLength:()I
            aload 9 /* attributes */
        20: .line 256
            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 259
            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 256
            aload 14
            areturn
        end local 11 // long keyID
        23: .line 258
      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 259
            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 260
            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 265
            ldc Ljava/security/spec/RSAPublicKeySpec;
            aload 2 /* keySpec */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 12
         1: .line 266
            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 267
            iconst_2
            anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            iconst_0
         3: .line 268
            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 269
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 290
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(J)V
            aastore
         5: .line 267
            astore 4 /* attributes */
        start local 4 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
         6: .line 271
            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 272
            new java.security.spec.RSAPublicKeySpec
            dup
         8: .line 273
            aload 4 /* attributes */
            iconst_0
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
         9: .line 274
            aload 4 /* attributes */
            iconst_1
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        10: .line 272
            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 276
            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 278
      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 285
            ldc Ljava/security/spec/RSAPrivateCrtKeySpec;
            aload 2 /* keySpec */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 24
         1: .line 286
            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 287
            bipush 8
            anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            iconst_0
         3: .line 288
            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 289
            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 290
            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 291
            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 292
            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 293
            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 294
            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 295
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 296
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(J)V
            aastore
        11: .line 287
            astore 4 /* attributes */
        start local 4 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
        12: .line 297
            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 298
            new java.security.spec.RSAPrivateCrtKeySpec
            dup
        14: .line 299
            aload 4 /* attributes */
            iconst_0
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        15: .line 300
            aload 4 /* attributes */
            iconst_1
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        16: .line 301
            aload 4 /* attributes */
            iconst_2
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        17: .line 302
            aload 4 /* attributes */
            iconst_3
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        18: .line 303
            aload 4 /* attributes */
            iconst_4
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        19: .line 304
            aload 4 /* attributes */
            iconst_5
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        20: .line 305
            aload 4 /* attributes */
            bipush 6
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        21: .line 306
            aload 4 /* attributes */
            bipush 7
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        22: .line 298
            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 308
            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 309
      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 310
            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 311
            iconst_2
            anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            iconst_0
        27: .line 312
            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 313
            new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
            dup
            ldc 291
            invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(J)V
            aastore
        29: .line 311
            astore 4 /* attributes */
        start local 4 // sun.security.pkcs11.wrapper.CK_ATTRIBUTE[] attributes
        30: .line 315
            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 316
            new java.security.spec.RSAPrivateKeySpec
            dup
        32: .line 317
            aload 4 /* attributes */
            iconst_0
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        33: .line 318
            aload 4 /* attributes */
            iconst_1
            aaload
            invokevirtual sun.security.pkcs11.wrapper.CK_ATTRIBUTE.getBigInteger:()Ljava/math/BigInteger;
        34: .line 316
            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 320
            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 322
      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 328
            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"