final class sun.security.pkcs11.P11RSACipher extends javax.crypto.CipherSpi
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.pkcs11.P11RSACipher
super_class: javax.crypto.CipherSpi
{
private static final int PKCS1_MIN_PADDING_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 11
private static final byte[] B0;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int MODE_ENCRYPT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int MODE_DECRYPT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int MODE_SIGN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int MODE_VERIFY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private final sun.security.pkcs11.Token token;
descriptor: Lsun/security/pkcs11/Token;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String algorithm;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long mechanism;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private sun.security.pkcs11.Session session;
descriptor: Lsun/security/pkcs11/Session;
flags: (0x0002) ACC_PRIVATE
private int mode;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] buffer;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int bufOfs;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private sun.security.pkcs11.P11Key p11Key;
descriptor: Lsun/security/pkcs11/P11Key;
flags: (0x0002) ACC_PRIVATE
private boolean initialized;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int maxInputSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int outputSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.security.spec.AlgorithmParameterSpec spec;
descriptor: Ljava/security/spec/AlgorithmParameterSpec;
flags: (0x0002) ACC_PRIVATE
private java.security.SecureRandom random;
descriptor: Ljava/security/SecureRandom;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: iconst_0
newarray 8
putstatic sun.security.pkcs11.P11RSACipher.B0:[B
1: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(sun.security.pkcs11.Token, java.lang.String, long);
descriptor: (Lsun/security/pkcs11/Token;Ljava/lang/String;J)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial javax.crypto.CipherSpi.<init>:()V
1: aload 0
aconst_null
putfield sun.security.pkcs11.P11RSACipher.spec:Ljava/security/spec/AlgorithmParameterSpec;
2: aload 0
aload 1
putfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
3: aload 0
ldc "RSA"
putfield sun.security.pkcs11.P11RSACipher.algorithm:Ljava/lang/String;
4: aload 0
lload 3
putfield sun.security.pkcs11.P11RSACipher.mechanism:J
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/pkcs11/P11RSACipher;
0 6 1 token Lsun/security/pkcs11/Token;
0 6 2 algorithm Ljava/lang/String;
0 6 3 mechanism J
Exceptions:
throws sun.security.pkcs11.wrapper.PKCS11Exception
MethodParameters:
Name Flags
token
algorithm
mechanism
protected void engineSetMode(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "ECB"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 2
1: new java.security.NoSuchAlgorithmException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported mode "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/pkcs11/P11RSACipher;
0 3 1 mode Ljava/lang/String;
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
mode
protected void engineSetPadding(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
astore 2
start local 2 1: aload 2
ldc "pkcs1Padding"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 3
2: new javax.crypto.NoSuchPaddingException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported padding "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial javax.crypto.NoSuchPaddingException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.lang.String
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/pkcs11/P11RSACipher;
0 4 1 padding Ljava/lang/String;
1 4 2 lowerPadding Ljava/lang/String;
Exceptions:
throws javax.crypto.NoSuchPaddingException
MethodParameters:
Name Flags
padding
protected int engineGetBlockSize();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs11/P11RSACipher;
protected int engineGetOutputSize(int);
descriptor: (I)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.pkcs11.P11RSACipher.outputSize:I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs11/P11RSACipher;
0 1 1 inputLen I
MethodParameters:
Name Flags
inputLen
protected byte[] engineGetIV();
descriptor: ()[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs11/P11RSACipher;
protected java.security.AlgorithmParameters engineGetParameters();
descriptor: ()Ljava/security/AlgorithmParameters;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs11/P11RSACipher;
protected void engineInit(int, java.security.Key, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
aload 2
invokevirtual sun.security.pkcs11.P11RSACipher.implInit:(ILjava/security/Key;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/pkcs11/P11RSACipher;
0 2 1 opmode I
0 2 2 key Ljava/security/Key;
0 2 3 random Ljava/security/SecureRandom;
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
opmode
key
random
protected void engineInit(int, java.security.Key, java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
ifnull 7
1: aload 3
instanceof sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec
ifne 5
2: new java.security.InvalidAlgorithmParameterException
dup
3: ldc "Parameters not supported"
4: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield sun.security.pkcs11.P11RSACipher.spec:Ljava/security/spec/AlgorithmParameterSpec;
6: aload 0
aload 4
putfield sun.security.pkcs11.P11RSACipher.random:Ljava/security/SecureRandom;
7: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 2
invokevirtual sun.security.pkcs11.P11RSACipher.implInit:(ILjava/security/Key;)V
8: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/pkcs11/P11RSACipher;
0 9 1 opmode I
0 9 2 key Ljava/security/Key;
0 9 3 params Ljava/security/spec/AlgorithmParameterSpec;
0 9 4 random Ljava/security/SecureRandom;
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
opmode
key
params
random
protected void engineInit(int, java.security.Key, java.security.AlgorithmParameters, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
ifnull 4
1: new java.security.InvalidAlgorithmParameterException
dup
2: ldc "Parameters not supported"
3: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 2
invokevirtual sun.security.pkcs11.P11RSACipher.implInit:(ILjava/security/Key;)V
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/pkcs11/P11RSACipher;
0 6 1 opmode I
0 6 2 key Ljava/security/Key;
0 6 3 params Ljava/security/AlgorithmParameters;
0 6 4 random Ljava/security/SecureRandom;
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
opmode
key
params
random
private void implInit(int, java.security.Key);
descriptor: (ILjava/security/Key;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual sun.security.pkcs11.P11RSACipher.cancelOperation:()V
1: aload 0
aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
aload 2
aload 0
getfield sun.security.pkcs11.P11RSACipher.algorithm:Ljava/lang/String;
invokestatic sun.security.pkcs11.P11KeyFactory.convertKey:(Lsun/security/pkcs11/Token;Ljava/security/Key;Ljava/lang/String;)Lsun/security/pkcs11/P11Key;
putfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
2: iload 1
iconst_1
if_icmpne 5
3: iconst_1
istore 3
start local 3 4: goto 21
end local 3 StackMap locals:
StackMap stack:
5: iload 1
iconst_2
if_icmpne 8
6: iconst_0
istore 3
start local 3 7: goto 21
end local 3 StackMap locals:
StackMap stack:
8: iload 1
iconst_3
if_icmpne 14
9: aload 0
getfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
invokevirtual sun.security.pkcs11.P11Key.isPublic:()Z
ifne 13
10: new java.security.InvalidKeyException
dup
11: ldc "Wrap has to be used with public keys"
12: invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
return
14: StackMap locals:
StackMap stack:
iload 1
iconst_4
if_icmpne 20
15: aload 0
getfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
invokevirtual sun.security.pkcs11.P11Key.isPrivate:()Z
ifne 19
16: new java.security.InvalidKeyException
dup
17: ldc "Unwrap has to be used with private keys"
18: invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
return
20: StackMap locals:
StackMap stack:
new java.security.InvalidKeyException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported mode: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
start local 3 21: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
invokevirtual sun.security.pkcs11.P11Key.isPublic:()Z
ifeq 26
22: aload 0
iload 3
ifeq 23
iconst_1
goto 24
StackMap locals:
StackMap stack: sun.security.pkcs11.P11RSACipher
23: iconst_4
StackMap locals: sun.security.pkcs11.P11RSACipher int java.security.Key int
StackMap stack: sun.security.pkcs11.P11RSACipher int
24: putfield sun.security.pkcs11.P11RSACipher.mode:I
25: goto 32
StackMap locals:
StackMap stack:
26: aload 0
getfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
invokevirtual sun.security.pkcs11.P11Key.isPrivate:()Z
ifeq 31
27: aload 0
iload 3
ifeq 28
iconst_3
goto 29
StackMap locals:
StackMap stack: sun.security.pkcs11.P11RSACipher
28: iconst_2
StackMap locals: sun.security.pkcs11.P11RSACipher int java.security.Key int
StackMap stack: sun.security.pkcs11.P11RSACipher int
29: putfield sun.security.pkcs11.P11RSACipher.mode:I
30: goto 32
31: StackMap locals:
StackMap stack:
new java.security.InvalidKeyException
dup
new java.lang.StringBuilder
dup
ldc "Unknown key type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
32: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
invokevirtual sun.security.pkcs11.P11Key.length:()I
bipush 7
iadd
iconst_3
ishr
istore 4
start local 4 33: aload 0
iload 4
putfield sun.security.pkcs11.P11RSACipher.outputSize:I
34: aload 0
iload 4
newarray 8
putfield sun.security.pkcs11.P11RSACipher.buffer:[B
35: aload 0
iload 3
ifeq 36
iload 4
bipush 11
isub
goto 37
StackMap locals: sun.security.pkcs11.P11RSACipher int java.security.Key int int
StackMap stack: sun.security.pkcs11.P11RSACipher
36: iload 4
StackMap locals: sun.security.pkcs11.P11RSACipher int java.security.Key int int
StackMap stack: sun.security.pkcs11.P11RSACipher int
37: putfield sun.security.pkcs11.P11RSACipher.maxInputSize:I
38: aload 0
invokevirtual sun.security.pkcs11.P11RSACipher.initialize:()V
39: goto 42
StackMap locals:
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
40: astore 5
start local 5 41: new java.security.InvalidKeyException
dup
ldc "init() failed"
aload 5
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 42: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lsun/security/pkcs11/P11RSACipher;
0 43 1 opmode I
0 43 2 key Ljava/security/Key;
4 5 3 encrypt Z
7 8 3 encrypt Z
21 43 3 encrypt Z
33 43 4 n I
41 42 5 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
38 39 40 Class sun.security.pkcs11.wrapper.PKCS11Exception
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
opmode
key
private void cancelOperation();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=5, args_size=1
start local 0 0: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
invokevirtual sun.security.pkcs11.Token.ensureValid:()V
1: aload 0
getfield sun.security.pkcs11.P11RSACipher.initialized:Z
ifne 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.pkcs11.P11RSACipher.initialized:Z
4: aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
ifnull 5
aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.explicitCancel:Z
ifne 6
5: StackMap locals:
StackMap stack:
return
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.hasObjects:()Z
ifne 9
7: aload 0
aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.killSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
8: return
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
astore 1
start local 1 10: aload 0
getfield sun.security.pkcs11.P11RSACipher.maxInputSize:I
istore 2
start local 2 11: aload 0
getfield sun.security.pkcs11.P11RSACipher.buffer:[B
arraylength
istore 3
start local 3 12: aload 0
getfield sun.security.pkcs11.P11RSACipher.mode:I
tableswitch { // 1 - 4
1: 13
2: 17
3: 21
4: 26
default: 30
}
13: StackMap locals: sun.security.pkcs11.wrapper.PKCS11 int int
StackMap stack:
aload 1
14: aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 0
getfield sun.security.pkcs11.P11RSACipher.buffer:[B
iconst_0
iload 2
aload 0
getfield sun.security.pkcs11.P11RSACipher.buffer:[B
iconst_0
iload 3
15: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Encrypt:(J[BII[BII)I
pop
16: goto 32
17: StackMap locals:
StackMap stack:
aload 1
18: aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 0
getfield sun.security.pkcs11.P11RSACipher.buffer:[B
iconst_0
iload 2
aload 0
getfield sun.security.pkcs11.P11RSACipher.buffer:[B
iconst_0
iload 3
19: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Decrypt:(J[BII[BII)I
pop
20: goto 32
21: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11RSACipher.maxInputSize:I
newarray 8
astore 4
start local 4 22: aload 1
23: aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 4
24: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Sign:(J[B)[B
pop
25: goto 32
end local 4 26: StackMap locals:
StackMap stack:
aload 1
27: aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 0
getfield sun.security.pkcs11.P11RSACipher.buffer:[B
iconst_0
iload 2
aload 0
getfield sun.security.pkcs11.P11RSACipher.buffer:[B
iconst_0
iload 3
28: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_VerifyRecover:(J[BII[BII)I
pop
29: goto 32
30: StackMap locals:
StackMap stack:
new java.security.ProviderException
dup
ldc "internal error"
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 31: StackMap locals: sun.security.pkcs11.P11RSACipher
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
pop
32: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lsun/security/pkcs11/P11RSACipher;
10 31 1 p11 Lsun/security/pkcs11/wrapper/PKCS11;
11 31 2 inLen I
12 31 3 outLen I
22 26 4 tmpBuffer [B
Exception table:
from to target type
9 31 31 Class sun.security.pkcs11.wrapper.PKCS11Exception
private void ensureInitialized();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
invokevirtual sun.security.pkcs11.Token.ensureValid:()V
1: aload 0
getfield sun.security.pkcs11.P11RSACipher.initialized:Z
ifne 3
2: aload 0
invokevirtual sun.security.pkcs11.P11RSACipher.initialize:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/pkcs11/P11RSACipher;
Exceptions:
throws sun.security.pkcs11.wrapper.PKCS11Exception
private void initialize();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
ifnonnull 2
1: aload 0
aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
invokevirtual sun.security.pkcs11.Token.getOpSession:()Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
astore 1
start local 1 3: new sun.security.pkcs11.wrapper.CK_MECHANISM
dup
aload 0
getfield sun.security.pkcs11.P11RSACipher.mechanism:J
invokespecial sun.security.pkcs11.wrapper.CK_MECHANISM.<init>:(J)V
astore 2
start local 2 4: aload 0
getfield sun.security.pkcs11.P11RSACipher.mode:I
tableswitch { // 1 - 4
1: 5
2: 7
3: 9
4: 11
default: 13
}
5: StackMap locals: sun.security.pkcs11.wrapper.PKCS11 sun.security.pkcs11.wrapper.CK_MECHANISM
StackMap stack:
aload 1
aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 2
aload 0
getfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
getfield sun.security.pkcs11.P11Key.keyID:J
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_EncryptInit:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;J)V
6: goto 14
7: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 2
aload 0
getfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
getfield sun.security.pkcs11.P11Key.keyID:J
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_DecryptInit:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;J)V
8: goto 14
9: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 2
aload 0
getfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
getfield sun.security.pkcs11.P11Key.keyID:J
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_SignInit:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;J)V
10: goto 14
11: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 2
aload 0
getfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
getfield sun.security.pkcs11.P11Key.keyID:J
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_VerifyRecoverInit:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;J)V
12: goto 14
13: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
ldc "internal error"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
14: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.pkcs11.P11RSACipher.bufOfs:I
15: aload 0
iconst_1
putfield sun.security.pkcs11.P11RSACipher.initialized:Z
16: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/security/pkcs11/P11RSACipher;
3 17 1 p11 Lsun/security/pkcs11/wrapper/PKCS11;
4 17 2 ckMechanism Lsun/security/pkcs11/wrapper/CK_MECHANISM;
Exceptions:
throws sun.security.pkcs11.wrapper.PKCS11Exception
private void implUpdate(byte[], int, int);
descriptor: ([BII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual sun.security.pkcs11.P11RSACipher.ensureInitialized:()V
1: goto 4
StackMap locals:
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
2: astore 4
start local 4 3: new java.security.ProviderException
dup
ldc "update() failed"
aload 4
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 4: StackMap locals:
StackMap stack:
iload 3
ifeq 5
aload 1
ifnonnull 6
5: StackMap locals:
StackMap stack:
return
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11RSACipher.bufOfs:I
iload 3
iadd
aload 0
getfield sun.security.pkcs11.P11RSACipher.maxInputSize:I
if_icmple 9
7: aload 0
aload 0
getfield sun.security.pkcs11.P11RSACipher.maxInputSize:I
iconst_1
iadd
putfield sun.security.pkcs11.P11RSACipher.bufOfs:I
8: return
9: StackMap locals:
StackMap stack:
aload 1
iload 2
aload 0
getfield sun.security.pkcs11.P11RSACipher.buffer:[B
aload 0
getfield sun.security.pkcs11.P11RSACipher.bufOfs:I
iload 3
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
10: aload 0
dup
getfield sun.security.pkcs11.P11RSACipher.bufOfs:I
iload 3
iadd
putfield sun.security.pkcs11.P11RSACipher.bufOfs:I
11: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/pkcs11/P11RSACipher;
0 12 1 in [B
0 12 2 inOfs I
0 12 3 inLen I
3 4 4 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
0 1 2 Class sun.security.pkcs11.wrapper.PKCS11Exception
MethodParameters:
Name Flags
in
inOfs
inLen
private int implDoFinal(byte[], int, int);
descriptor: ([BII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.security.pkcs11.P11RSACipher.bufOfs:I
aload 0
getfield sun.security.pkcs11.P11RSACipher.maxInputSize:I
if_icmple 4
1: new javax.crypto.IllegalBlockSizeException
dup
new java.lang.StringBuilder
dup
ldc "Data must not be longer than "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: aload 0
getfield sun.security.pkcs11.P11RSACipher.maxInputSize:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bytes"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial javax.crypto.IllegalBlockSizeException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.pkcs11.P11RSACipher.ensureInitialized:()V
5: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
astore 4
start local 4 6: aload 0
getfield sun.security.pkcs11.P11RSACipher.mode:I
tableswitch { // 1 - 4
1: 7
2: 11
3: 15
4: 23
default: 27
}
7: StackMap locals: sun.security.pkcs11.wrapper.PKCS11
StackMap stack:
aload 4
8: aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 0
getfield sun.security.pkcs11.P11RSACipher.buffer:[B
iconst_0
aload 0
getfield sun.security.pkcs11.P11RSACipher.bufOfs:I
aload 1
iload 2
iload 3
9: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Encrypt:(J[BII[BII)I
istore 5
start local 5 10: goto 28
end local 5 11: StackMap locals:
StackMap stack:
aload 4
12: aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 0
getfield sun.security.pkcs11.P11RSACipher.buffer:[B
iconst_0
aload 0
getfield sun.security.pkcs11.P11RSACipher.bufOfs:I
aload 1
iload 2
iload 3
13: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Decrypt:(J[BII[BII)I
istore 5
start local 5 14: goto 28
end local 5 15: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11RSACipher.bufOfs:I
newarray 8
astore 6
start local 6 16: aload 0
getfield sun.security.pkcs11.P11RSACipher.buffer:[B
iconst_0
aload 6
iconst_0
aload 0
getfield sun.security.pkcs11.P11RSACipher.bufOfs:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
17: aload 4
aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 6
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_Sign:(J[B)[B
astore 6
18: aload 6
arraylength
iload 3
if_icmple 20
19: new javax.crypto.BadPaddingException
dup
ldc "Output buffer too small"
invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals: sun.security.pkcs11.P11RSACipher byte[] int int sun.security.pkcs11.wrapper.PKCS11 top byte[]
StackMap stack:
aload 6
iconst_0
aload 1
iload 2
aload 6
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
21: aload 6
arraylength
istore 5
start local 5 22: goto 28
end local 6 end local 5 23: StackMap locals: sun.security.pkcs11.P11RSACipher byte[] int int sun.security.pkcs11.wrapper.PKCS11
StackMap stack:
aload 4
24: aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 0
getfield sun.security.pkcs11.P11RSACipher.buffer:[B
iconst_0
aload 0
getfield sun.security.pkcs11.P11RSACipher.bufOfs:I
aload 1
iload 2
iload 3
25: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_VerifyRecover:(J[BII[BII)I
istore 5
start local 5 26: goto 28
end local 5 27: StackMap locals:
StackMap stack:
new java.security.ProviderException
dup
ldc "internal error"
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
start local 5 28: StackMap locals: int
StackMap stack:
iload 5
istore 8
29: aload 0
iconst_0
putfield sun.security.pkcs11.P11RSACipher.initialized:Z
30: aload 0
aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
31: iload 8
ireturn
end local 5 end local 4 32: StackMap locals: sun.security.pkcs11.P11RSACipher byte[] int int
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
astore 4
start local 4 33: new javax.crypto.BadPaddingException
dup
34: ldc "doFinal() failed"
35: invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
36: aload 4
invokevirtual javax.crypto.BadPaddingException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
37: checkcast javax.crypto.BadPaddingException
athrow
end local 4 38: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
39: aload 0
iconst_0
putfield sun.security.pkcs11.P11RSACipher.initialized:Z
40: aload 0
aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11RSACipher.session:Lsun/security/pkcs11/Session;
41: aload 7
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lsun/security/pkcs11/P11RSACipher;
0 42 1 out [B
0 42 2 outOfs I
0 42 3 outLen I
6 32 4 p11 Lsun/security/pkcs11/wrapper/PKCS11;
10 11 5 n I
14 15 5 n I
22 23 5 n I
26 27 5 n I
28 32 5 n I
16 23 6 tmpBuffer [B
33 38 4 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
4 29 32 Class sun.security.pkcs11.wrapper.PKCS11Exception
4 29 38 any
32 38 38 any
Exceptions:
throws javax.crypto.BadPaddingException, javax.crypto.IllegalBlockSizeException
MethodParameters:
Name Flags
out
outOfs
outLen
protected byte[] engineUpdate(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
iload 3
invokevirtual sun.security.pkcs11.P11RSACipher.implUpdate:([BII)V
1: getstatic sun.security.pkcs11.P11RSACipher.B0:[B
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/pkcs11/P11RSACipher;
0 2 1 in [B
0 2 2 inOfs I
0 2 3 inLen I
MethodParameters:
Name Flags
in
inOfs
inLen
protected int engineUpdate(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
iload 2
iload 3
invokevirtual sun.security.pkcs11.P11RSACipher.implUpdate:([BII)V
1: iconst_0
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/pkcs11/P11RSACipher;
0 2 1 in [B
0 2 2 inOfs I
0 2 3 inLen I
0 2 4 out [B
0 2 5 outOfs I
Exceptions:
throws javax.crypto.ShortBufferException
MethodParameters:
Name Flags
in
inOfs
inLen
out
outOfs
protected byte[] engineDoFinal(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
iload 3
invokevirtual sun.security.pkcs11.P11RSACipher.implUpdate:([BII)V
1: aload 0
aload 0
getfield sun.security.pkcs11.P11RSACipher.buffer:[B
iconst_0
aload 0
getfield sun.security.pkcs11.P11RSACipher.buffer:[B
arraylength
invokevirtual sun.security.pkcs11.P11RSACipher.implDoFinal:([BII)I
istore 4
start local 4 2: iload 4
newarray 8
astore 5
start local 5 3: aload 0
getfield sun.security.pkcs11.P11RSACipher.buffer:[B
iconst_0
aload 5
iconst_0
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/pkcs11/P11RSACipher;
0 5 1 in [B
0 5 2 inOfs I
0 5 3 inLen I
2 5 4 n I
3 5 5 out [B
Exceptions:
throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
in
inOfs
inLen
protected int engineDoFinal(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
iload 2
iload 3
invokevirtual sun.security.pkcs11.P11RSACipher.implUpdate:([BII)V
1: aload 0
aload 4
iload 5
aload 4
arraylength
iload 5
isub
invokevirtual sun.security.pkcs11.P11RSACipher.implDoFinal:([BII)I
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/pkcs11/P11RSACipher;
0 2 1 in [B
0 2 2 inOfs I
0 2 3 inLen I
0 2 4 out [B
0 2 5 outOfs I
Exceptions:
throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
in
inOfs
inLen
out
outOfs
private byte[] doFinal();
descriptor: ()[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=1
start local 0 0: sipush 2048
newarray 8
astore 1
start local 1 1: aload 0
aload 1
iconst_0
aload 1
arraylength
invokevirtual sun.security.pkcs11.P11RSACipher.implDoFinal:([BII)I
istore 2
start local 2 2: iload 2
newarray 8
astore 3
start local 3 3: aload 1
iconst_0
aload 3
iconst_0
iload 2
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/pkcs11/P11RSACipher;
1 5 1 t [B
2 5 2 n I
3 5 3 out [B
Exceptions:
throws javax.crypto.BadPaddingException, javax.crypto.IllegalBlockSizeException
protected byte[] engineWrap(java.security.Key);
descriptor: (Ljava/security/Key;)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=8, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
aload 1
aload 2
invokestatic sun.security.pkcs11.P11SecretKeyFactory.convertKey:(Lsun/security/pkcs11/Token;Ljava/security/Key;Ljava/lang/String;)Lsun/security/pkcs11/P11Key;
astore 3
start local 3 2: aconst_null
astore 4
start local 4 3: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
invokevirtual sun.security.pkcs11.Token.getOpSession:()Lsun/security/pkcs11/Session;
astore 4
4: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 4
invokevirtual sun.security.pkcs11.Session.id:()J
new sun.security.pkcs11.wrapper.CK_MECHANISM
dup
aload 0
getfield sun.security.pkcs11.P11RSACipher.mechanism:J
invokespecial sun.security.pkcs11.wrapper.CK_MECHANISM.<init>:(J)V
5: aload 0
getfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
getfield sun.security.pkcs11.P11Key.keyID:J
aload 3
getfield sun.security.pkcs11.P11Key.keyID:J
6: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_WrapKey:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;JJ)[B
astore 5
start local 5 7: aload 5
astore 7
8: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
aload 4
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
pop
9: aload 7
areturn
end local 5 10: StackMap locals: sun.security.pkcs11.P11RSACipher java.security.Key java.lang.String sun.security.pkcs11.P11Key sun.security.pkcs11.Session
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
astore 5
start local 5 11: new java.security.InvalidKeyException
dup
ldc "wrap() failed"
aload 5
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 12: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
13: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
aload 4
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
pop
14: aload 6
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/security/pkcs11/P11RSACipher;
0 15 1 key Ljava/security/Key;
1 15 2 keyAlg Ljava/lang/String;
2 15 3 secretKey Lsun/security/pkcs11/P11Key;
3 15 4 s Lsun/security/pkcs11/Session;
7 10 5 b [B
11 12 5 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
3 8 10 Class sun.security.pkcs11.wrapper.PKCS11Exception
3 8 12 any
10 12 12 any
Exceptions:
throws java.security.InvalidKeyException, javax.crypto.IllegalBlockSizeException
MethodParameters:
Name Flags
key
protected java.security.Key engineUnwrap(byte[], java.lang.String, int);
descriptor: ([BLjava/lang/String;I)Ljava/security/Key;
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=15, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
ldc "TlsRsaPremasterSecret"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
1: istore 4
start local 4 2: aconst_null
astore 5
start local 5 3: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
invokevirtual sun.security.pkcs11.Token.supportsRawSecretKeyImport:()Z
ifeq 35
4: aload 0
iconst_2
aload 0
getfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
invokevirtual sun.security.pkcs11.P11RSACipher.implInit:(ILjava/security/Key;)V
5: aload 1
arraylength
aload 0
getfield sun.security.pkcs11.P11RSACipher.maxInputSize:I
if_icmple 7
6: new java.security.InvalidKeyException
dup
ldc "Key is too long for unwrapping"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: int java.lang.Exception
StackMap stack:
aconst_null
astore 6
start local 6 8: aload 0
aload 1
iconst_0
aload 1
arraylength
invokevirtual sun.security.pkcs11.P11RSACipher.implUpdate:([BII)V
9: aload 0
invokevirtual sun.security.pkcs11.P11RSACipher.doFinal:()[B
astore 6
10: goto 18
StackMap locals: sun.security.pkcs11.P11RSACipher byte[] java.lang.String int int java.lang.Exception byte[]
StackMap stack: javax.crypto.BadPaddingException
11: astore 7
start local 7 12: iload 4
ifeq 15
13: aload 7
astore 5
14: goto 18
15: StackMap locals: javax.crypto.BadPaddingException
StackMap stack:
new java.security.InvalidKeyException
dup
ldc "Unwrapping failed"
aload 7
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 7 16: StackMap locals: sun.security.pkcs11.P11RSACipher byte[] java.lang.String int int java.lang.Exception byte[]
StackMap stack: javax.crypto.IllegalBlockSizeException
astore 7
start local 7 17: new java.security.InvalidKeyException
dup
ldc "Unwrapping failed"
aload 7
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 7 18: StackMap locals:
StackMap stack:
iload 4
ifeq 29
19: aload 0
getfield sun.security.pkcs11.P11RSACipher.spec:Ljava/security/spec/AlgorithmParameterSpec;
instanceof sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec
ifne 23
20: new java.lang.IllegalStateException
dup
21: ldc "No TlsRsaPremasterSecretParameterSpec specified"
22: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
23: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11RSACipher.spec:Ljava/security/spec/AlgorithmParameterSpec;
checkcast sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec
24: astore 7
start local 7 25: aload 7
invokevirtual sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec.getClientVersion:()I
aload 7
invokevirtual sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec.getServerVersion:()I
26: aload 0
getfield sun.security.pkcs11.P11RSACipher.random:Ljava/security/SecureRandom;
aload 6
aload 5
ifnull 27
iconst_1
goto 28
StackMap locals: sun.security.pkcs11.P11RSACipher byte[] java.lang.String int int java.lang.Exception byte[] sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec
StackMap stack: int int java.security.SecureRandom byte[]
27: iconst_0
28: StackMap locals: sun.security.pkcs11.P11RSACipher byte[] java.lang.String int int java.lang.Exception byte[] sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec
StackMap stack: int int java.security.SecureRandom byte[] int
invokestatic sun.security.util.KeyUtil.checkTlsPreMasterSecretKey:(IILjava/security/SecureRandom;[BZ)[B
astore 6
end local 7 29: StackMap locals:
StackMap stack:
aload 6
aload 2
iload 3
invokestatic sun.security.pkcs11.ConstructKeys.constructKey:([BLjava/lang/String;I)Ljava/security/Key;
astore 9
30: aload 0
iconst_4
aload 0
getfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
invokevirtual sun.security.pkcs11.P11RSACipher.implInit:(ILjava/security/Key;)V
31: aload 9
areturn
end local 6 32: StackMap locals: sun.security.pkcs11.P11RSACipher byte[] java.lang.String int int java.lang.Exception
StackMap stack: java.lang.Throwable
astore 8
33: aload 0
iconst_4
aload 0
getfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
invokevirtual sun.security.pkcs11.P11RSACipher.implInit:(ILjava/security/Key;)V
34: aload 8
athrow
35: StackMap locals:
StackMap stack:
aconst_null
astore 6
start local 6 36: aconst_null
astore 7
start local 7 37: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
invokevirtual sun.security.pkcs11.Token.getObjSession:()Lsun/security/pkcs11/Session;
astore 6
38: ldc 16
lstore 8
start local 8 39: iconst_2
anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
dup
iconst_0
40: new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
dup
lconst_0
ldc 4
invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JJ)V
aastore
dup
iconst_1
41: new sun.security.pkcs11.wrapper.CK_ATTRIBUTE
dup
ldc 256
lload 8
invokespecial sun.security.pkcs11.wrapper.CK_ATTRIBUTE.<init>:(JJ)V
aastore
42: astore 10
start local 10 43: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
44: ldc "import"
ldc 4
lload 8
aload 10
45: invokevirtual sun.security.pkcs11.Token.getAttributes:(Ljava/lang/String;JJ[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
astore 10
46: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 6
invokevirtual sun.security.pkcs11.Session.id:()J
47: new sun.security.pkcs11.wrapper.CK_MECHANISM
dup
aload 0
getfield sun.security.pkcs11.P11RSACipher.mechanism:J
invokespecial sun.security.pkcs11.wrapper.CK_MECHANISM.<init>:(J)V
aload 0
getfield sun.security.pkcs11.P11RSACipher.p11Key:Lsun/security/pkcs11/P11Key;
getfield sun.security.pkcs11.P11Key.keyID:J
48: aload 1
aload 10
49: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_UnwrapKey:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;J[B[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)J
lstore 11
start local 11 50: aload 6
lload 11
51: aload 2
sipush 384
aload 10
52: invokestatic sun.security.pkcs11.P11Key.secretKey:(Lsun/security/pkcs11/Session;JLjava/lang/String;I[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)Ljavax/crypto/SecretKey;
astore 7
end local 11 end local 10 end local 8 53: goto 59
StackMap locals: sun.security.pkcs11.P11RSACipher byte[] java.lang.String int int java.lang.Exception sun.security.pkcs11.Session javax.crypto.SecretKey
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
54: astore 8
start local 8 55: iload 4
ifeq 58
56: aload 8
astore 5
57: goto 59
58: StackMap locals: sun.security.pkcs11.wrapper.PKCS11Exception
StackMap stack:
new java.security.InvalidKeyException
dup
ldc "unwrap() failed"
aload 8
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 8 59: StackMap locals:
StackMap stack:
iload 4
ifeq 66
60: aload 0
getfield sun.security.pkcs11.P11RSACipher.spec:Ljava/security/spec/AlgorithmParameterSpec;
checkcast sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec
61: astore 8
start local 8 62: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
aload 6
63: aload 5
aload 7
64: aload 8
invokevirtual sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec.getClientVersion:()I
aload 8
invokevirtual sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec.getServerVersion:()I
65: invokestatic sun.security.pkcs11.P11RSACipher.polishPreMasterSecretKey:(Lsun/security/pkcs11/Token;Lsun/security/pkcs11/Session;Ljava/lang/Exception;Ljavax/crypto/SecretKey;II)Ljavax/crypto/SecretKey;
astore 7
end local 8 66: StackMap locals:
StackMap stack:
aload 7
astore 14
67: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
aload 6
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
pop
68: aload 14
areturn
69: StackMap locals:
StackMap stack: java.lang.Throwable
astore 13
70: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
aload 6
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
pop
71: aload 13
athrow
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 72 0 this Lsun/security/pkcs11/P11RSACipher;
0 72 1 wrappedKey [B
0 72 2 algorithm Ljava/lang/String;
0 72 3 type I
2 72 4 isTlsRsaPremasterSecret Z
3 72 5 failover Ljava/lang/Exception;
8 32 6 encoded [B
12 16 7 e Ljavax/crypto/BadPaddingException;
17 18 7 e Ljavax/crypto/IllegalBlockSizeException;
25 29 7 psps Lsun/security/internal/spec/TlsRsaPremasterSecretParameterSpec;
36 72 6 s Lsun/security/pkcs11/Session;
37 72 7 secretKey Ljavax/crypto/SecretKey;
39 53 8 keyType J
43 53 10 attributes [Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
50 53 11 keyID J
55 59 8 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
62 66 8 psps Lsun/security/internal/spec/TlsRsaPremasterSecretParameterSpec;
Exception table:
from to target type
9 10 11 Class javax.crypto.BadPaddingException
9 10 16 Class javax.crypto.IllegalBlockSizeException
5 30 32 any
37 53 54 Class sun.security.pkcs11.wrapper.PKCS11Exception
37 67 69 any
Exceptions:
throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
wrappedKey
algorithm
type
protected int engineGetKeySize(java.security.Key);
descriptor: (Ljava/security/Key;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.pkcs11.P11RSACipher.token:Lsun/security/pkcs11/Token;
aload 1
aload 0
getfield sun.security.pkcs11.P11RSACipher.algorithm:Ljava/lang/String;
invokestatic sun.security.pkcs11.P11KeyFactory.convertKey:(Lsun/security/pkcs11/Token;Ljava/security/Key;Ljava/lang/String;)Lsun/security/pkcs11/P11Key;
invokevirtual sun.security.pkcs11.P11Key.length:()I
istore 2
start local 2 1: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/pkcs11/P11RSACipher;
0 2 1 key Ljava/security/Key;
1 2 2 n I
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
key
private static javax.crypto.SecretKey polishPreMasterSecretKey(sun.security.pkcs11.Token, sun.security.pkcs11.Session, java.lang.Exception, javax.crypto.SecretKey, int, int);
descriptor: (Lsun/security/pkcs11/Token;Lsun/security/pkcs11/Session;Ljava/lang/Exception;Ljavax/crypto/SecretKey;II)Ljavax/crypto/SecretKey;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new sun.security.pkcs11.wrapper.CK_VERSION
dup
1: iload 4
bipush 8
iushr
sipush 255
iand
iload 4
sipush 255
iand
2: invokespecial sun.security.pkcs11.wrapper.CK_VERSION.<init>:(II)V
astore 7
start local 7 3: aload 0
4: ldc "generate"
ldc 4
5: ldc 16
iconst_0
anewarray sun.security.pkcs11.wrapper.CK_ATTRIBUTE
6: invokevirtual sun.security.pkcs11.Token.getAttributes:(Ljava/lang/String;JJ[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
astore 8
start local 8 7: aload 0
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 1
invokevirtual sun.security.pkcs11.Session.id:()J
8: new sun.security.pkcs11.wrapper.CK_MECHANISM
dup
ldc 880
aload 7
invokespecial sun.security.pkcs11.wrapper.CK_MECHANISM.<init>:(JLsun/security/pkcs11/wrapper/CK_VERSION;)V
9: aload 8
10: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_GenerateKey:(JLsun/security/pkcs11/wrapper/CK_MECHANISM;[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)J
lstore 9
start local 9 11: aload 1
12: lload 9
ldc "TlsRsaPremasterSecret"
sipush 384
aload 8
13: invokestatic sun.security.pkcs11.P11Key.secretKey:(Lsun/security/pkcs11/Session;JLjava/lang/String;I[Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;)Ljavax/crypto/SecretKey;
astore 6
end local 9 end local 8 start local 6 14: goto 19
end local 6 StackMap locals: sun.security.pkcs11.Token sun.security.pkcs11.Session java.lang.Exception javax.crypto.SecretKey int int top sun.security.pkcs11.wrapper.CK_VERSION
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
15: astore 8
start local 8 16: new java.security.ProviderException
dup
17: ldc "Could not generate premaster secret"
aload 8
18: invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 8 start local 6 19: StackMap locals: sun.security.pkcs11.Token sun.security.pkcs11.Session java.lang.Exception javax.crypto.SecretKey int int javax.crypto.SecretKey sun.security.pkcs11.wrapper.CK_VERSION
StackMap stack:
aload 2
ifnonnull 20
aload 3
goto 21
StackMap locals:
StackMap stack:
20: aload 6
StackMap locals:
StackMap stack: javax.crypto.SecretKey
21: areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 token Lsun/security/pkcs11/Token;
0 22 1 session Lsun/security/pkcs11/Session;
0 22 2 failover Ljava/lang/Exception;
0 22 3 unwrappedKey Ljavax/crypto/SecretKey;
0 22 4 clientVersion I
0 22 5 serverVersion I
14 15 6 newKey Ljavax/crypto/SecretKey;
19 22 6 newKey Ljavax/crypto/SecretKey;
3 22 7 version Lsun/security/pkcs11/wrapper/CK_VERSION;
7 14 8 attributes [Lsun/security/pkcs11/wrapper/CK_ATTRIBUTE;
11 14 9 keyID J
16 19 8 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
3 14 15 Class sun.security.pkcs11.wrapper.PKCS11Exception
MethodParameters:
Name Flags
token
session
failover
unwrappedKey
clientVersion
serverVersion
}
SourceFile: "P11RSACipher.java"