final class sun.security.pkcs11.P11Cipher extends javax.crypto.CipherSpi
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.pkcs11.P11Cipher
super_class: javax.crypto.CipherSpi
{
private static final int MODE_ECB;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int MODE_CBC;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int MODE_CTR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final int PAD_NONE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final int PAD_PKCS5;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 6
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 java.lang.String keyAlgorithm;
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 sun.security.pkcs11.P11Key p11Key;
descriptor: Lsun/security/pkcs11/P11Key;
flags: (0x0002) ACC_PRIVATE
private boolean initialized;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean encrypt;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int blockMode;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final int blockSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int paddingType;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private sun.security.pkcs11.P11Cipher$Padding paddingObj;
descriptor: Lsun/security/pkcs11/P11Cipher$Padding;
flags: (0x0002) ACC_PRIVATE
private byte[] padBuffer;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int padBufferLen;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] iv;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int bytesBuffered;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int fixedKeySize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
void <init>(sun.security.pkcs11.Token, java.lang.String, long);
descriptor: (Lsun/security/pkcs11/Token;Ljava/lang/String;J)V
flags: (0x0000)
Code:
stack=4, locals=9, 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
iconst_m1
putfield sun.security.pkcs11.P11Cipher.fixedKeySize:I
2: aload 0
aload 1
putfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
3: aload 0
aload 2
putfield sun.security.pkcs11.P11Cipher.algorithm:Ljava/lang/String;
4: aload 0
lload 3
putfield sun.security.pkcs11.P11Cipher.mechanism:J
5: aload 2
ldc "/"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 5
start local 5 6: aload 5
iconst_0
aaload
ldc "AES"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 13
7: aload 0
bipush 16
putfield sun.security.pkcs11.P11Cipher.blockSize:I
8: aload 5
iconst_0
aaload
bipush 95
invokevirtual java.lang.String.indexOf:(I)I
istore 6
start local 6 9: iload 6
iconst_m1
if_icmpeq 11
10: aload 0
aload 5
iconst_0
aaload
iload 6
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
bipush 8
idiv
putfield sun.security.pkcs11.P11Cipher.fixedKeySize:I
11: StackMap locals: sun.security.pkcs11.P11Cipher sun.security.pkcs11.Token java.lang.String long java.lang.String[] int
StackMap stack:
aload 0
ldc "AES"
putfield sun.security.pkcs11.P11Cipher.keyAlgorithm:Ljava/lang/String;
end local 6 12: goto 23
13: StackMap locals:
StackMap stack:
aload 0
aload 5
iconst_0
aaload
putfield sun.security.pkcs11.P11Cipher.keyAlgorithm:Ljava/lang/String;
14: aload 0
getfield sun.security.pkcs11.P11Cipher.keyAlgorithm:Ljava/lang/String;
ldc "RC4"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 16
15: aload 0
getfield sun.security.pkcs11.P11Cipher.keyAlgorithm:Ljava/lang/String;
ldc "ARCFOUR"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 18
16: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.pkcs11.P11Cipher.blockSize:I
17: goto 19
18: StackMap locals:
StackMap stack:
aload 0
bipush 8
putfield sun.security.pkcs11.P11Cipher.blockSize:I
19: StackMap locals:
StackMap stack:
aload 0
20: aload 5
arraylength
iconst_1
if_icmple 21
aload 0
aload 5
iconst_1
aaload
invokevirtual sun.security.pkcs11.P11Cipher.parseMode:(Ljava/lang/String;)I
goto 22
StackMap locals:
StackMap stack: sun.security.pkcs11.P11Cipher
21: iconst_3
22: StackMap locals: sun.security.pkcs11.P11Cipher sun.security.pkcs11.Token java.lang.String long java.lang.String[]
StackMap stack: sun.security.pkcs11.P11Cipher int
putfield sun.security.pkcs11.P11Cipher.blockMode:I
23: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.blockSize:I
ifne 24
ldc "NoPadding"
goto 25
StackMap locals:
StackMap stack:
24: ldc "PKCS5Padding"
StackMap locals:
StackMap stack: java.lang.String
25: astore 6
start local 6 26: aload 5
arraylength
iconst_2
if_icmple 27
aload 5
iconst_2
aaload
goto 28
StackMap locals: java.lang.String
StackMap stack:
27: aload 6
28: StackMap locals:
StackMap stack: java.lang.String
astore 7
start local 7 29: aload 0
aload 7
invokevirtual sun.security.pkcs11.P11Cipher.engineSetPadding:(Ljava/lang/String;)V
30: goto 33
StackMap locals: sun.security.pkcs11.P11Cipher sun.security.pkcs11.Token java.lang.String long java.lang.String[] java.lang.String java.lang.String
StackMap stack: javax.crypto.NoSuchPaddingException
31: astore 8
start local 8 32: new java.security.ProviderException
dup
aload 8
invokespecial java.security.ProviderException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 8 33: StackMap locals:
StackMap stack:
return
end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lsun/security/pkcs11/P11Cipher;
0 34 1 token Lsun/security/pkcs11/Token;
0 34 2 algorithm Ljava/lang/String;
0 34 3 mechanism J
6 34 5 algoParts [Ljava/lang/String;
9 12 6 index I
26 34 6 defPadding Ljava/lang/String;
29 34 7 paddingStr Ljava/lang/String;
32 33 8 nspe Ljavax/crypto/NoSuchPaddingException;
Exception table:
from to target type
29 30 31 Class javax.crypto.NoSuchPaddingException
Exceptions:
throws sun.security.pkcs11.wrapper.PKCS11Exception, java.security.NoSuchAlgorithmException
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: 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
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs11/P11Cipher;
0 1 1 mode Ljava/lang/String;
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
mode
private int parseMode(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0002) ACC_PRIVATE
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.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
astore 1
1: aload 1
ldc "ECB"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
2: iconst_3
istore 2
start local 2 3: goto 15
end local 2 StackMap locals:
StackMap stack:
4: aload 1
ldc "CBC"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
5: aload 0
getfield sun.security.pkcs11.P11Cipher.blockSize:I
ifne 9
6: new java.security.NoSuchAlgorithmException
dup
7: ldc "CBC mode not supported with stream ciphers"
8: invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
iconst_4
istore 2
start local 2 10: goto 15
end local 2 StackMap locals:
StackMap stack:
11: aload 1
ldc "CTR"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
12: iconst_5
istore 2
start local 2 13: goto 15
end local 2 14: StackMap locals:
StackMap stack:
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
start local 2 15: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/security/pkcs11/P11Cipher;
0 16 1 mode Ljava/lang/String;
3 4 2 result I
10 11 2 result I
13 14 2 result I
15 16 2 result I
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=2, args_size=2
start local 0 start local 1 0: aload 0
aconst_null
putfield sun.security.pkcs11.P11Cipher.paddingObj:Lsun/security/pkcs11/P11Cipher$Padding;
1: aload 0
aconst_null
putfield sun.security.pkcs11.P11Cipher.padBuffer:[B
2: aload 1
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
astore 1
3: aload 1
ldc "NOPADDING"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
4: aload 0
iconst_5
putfield sun.security.pkcs11.P11Cipher.paddingType:I
5: goto 18
StackMap locals:
StackMap stack:
6: aload 1
ldc "PKCS5PADDING"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
7: aload 0
getfield sun.security.pkcs11.P11Cipher.blockMode:I
iconst_5
if_icmpne 11
8: new javax.crypto.NoSuchPaddingException
dup
9: ldc "PKCS#5 padding not supported with CTR mode"
10: invokespecial javax.crypto.NoSuchPaddingException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
bipush 6
putfield sun.security.pkcs11.P11Cipher.paddingType:I
12: aload 0
getfield sun.security.pkcs11.P11Cipher.mechanism:J
ldc 293
lcmp
ifeq 18
aload 0
getfield sun.security.pkcs11.P11Cipher.mechanism:J
ldc 310
lcmp
ifeq 18
13: aload 0
getfield sun.security.pkcs11.P11Cipher.mechanism:J
ldc 4229
lcmp
ifeq 18
14: aload 0
new sun.security.pkcs11.P11Cipher$PKCS5Padding
dup
aload 0
getfield sun.security.pkcs11.P11Cipher.blockSize:I
invokespecial sun.security.pkcs11.P11Cipher$PKCS5Padding.<init>:(I)V
putfield sun.security.pkcs11.P11Cipher.paddingObj:Lsun/security/pkcs11/P11Cipher$Padding;
15: aload 0
aload 0
getfield sun.security.pkcs11.P11Cipher.blockSize:I
newarray 8
putfield sun.security.pkcs11.P11Cipher.padBuffer:[B
16: goto 18
17: StackMap locals:
StackMap stack:
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
18: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/security/pkcs11/P11Cipher;
0 19 1 padding 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: aload 0
getfield sun.security.pkcs11.P11Cipher.blockSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs11/P11Cipher;
protected int engineGetOutputSize(int);
descriptor: (I)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual sun.security.pkcs11.P11Cipher.doFinalLength:(I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs11/P11Cipher;
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: aload 0
getfield sun.security.pkcs11.P11Cipher.iv:[B
ifnonnull 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield sun.security.pkcs11.P11Cipher.iv:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
StackMap locals:
StackMap stack: byte[]
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/pkcs11/P11Cipher;
protected java.security.AlgorithmParameters engineGetParameters();
descriptor: ()Ljava/security/AlgorithmParameters;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.pkcs11.P11Cipher.iv:[B
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
new javax.crypto.spec.IvParameterSpec
dup
aload 0
getfield sun.security.pkcs11.P11Cipher.iv:[B
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 1
start local 1 3: aload 0
getfield sun.security.pkcs11.P11Cipher.keyAlgorithm:Ljava/lang/String;
4: invokestatic sun.security.pkcs11.P11Util.getSunJceProvider:()Ljava/security/Provider;
5: invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/AlgorithmParameters;
6: astore 2
start local 2 7: aload 2
aload 1
invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
8: aload 2
9: areturn
end local 2 10: StackMap locals: sun.security.pkcs11.P11Cipher javax.crypto.spec.IvParameterSpec
StackMap stack: java.security.GeneralSecurityException
astore 2
start local 2 11: new java.security.ProviderException
dup
ldc "Could not encode parameters"
aload 2
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/pkcs11/P11Cipher;
3 12 1 ivSpec Ljavax/crypto/spec/IvParameterSpec;
7 10 2 params Ljava/security/AlgorithmParameters;
11 12 2 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
3 9 10 Class java.security.GeneralSecurityException
protected void engineInit(int, java.security.Key, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/SecureRandom;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
aload 2
aconst_null
aload 3
invokevirtual sun.security.pkcs11.P11Cipher.implInit:(ILjava/security/Key;[BLjava/security/SecureRandom;)V
1: goto 4
StackMap locals:
StackMap stack: java.security.InvalidAlgorithmParameterException
2: astore 4
start local 4 3: new java.security.InvalidKeyException
dup
ldc "init() failed"
aload 4
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 4: StackMap locals:
StackMap stack:
return
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/P11Cipher;
0 5 1 opmode I
0 5 2 key Ljava/security/Key;
0 5 3 random Ljava/security/SecureRandom;
3 4 4 e Ljava/security/InvalidAlgorithmParameterException;
Exception table:
from to target type
0 1 2 Class java.security.InvalidAlgorithmParameterException
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=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
ifnull 8
1: aload 3
instanceof javax.crypto.spec.IvParameterSpec
ifne 5
2: new java.security.InvalidAlgorithmParameterException
dup
3: ldc "Only IvParameterSpec supported"
4: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 3
checkcast javax.crypto.spec.IvParameterSpec
astore 6
start local 6 6: aload 6
invokevirtual javax.crypto.spec.IvParameterSpec.getIV:()[B
astore 5
end local 6 start local 5 7: goto 9
end local 5 8: StackMap locals:
StackMap stack:
aconst_null
astore 5
start local 5 9: StackMap locals: byte[]
StackMap stack:
aload 0
iload 1
aload 2
aload 5
aload 4
invokevirtual sun.security.pkcs11.P11Cipher.implInit:(ILjava/security/Key;[BLjava/security/SecureRandom;)V
10: return
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 11 0 this Lsun/security/pkcs11/P11Cipher;
0 11 1 opmode I
0 11 2 key Ljava/security/Key;
0 11 3 params Ljava/security/spec/AlgorithmParameterSpec;
0 11 4 random Ljava/security/SecureRandom;
7 8 5 ivValue [B
9 11 5 ivValue [B
6 7 6 ivSpec Ljavax/crypto/spec/IvParameterSpec;
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=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
ifnull 9
1: aload 3
ldc Ljavax/crypto/spec/IvParameterSpec;
invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
checkcast javax.crypto.spec.IvParameterSpec
2: astore 6
start local 6 3: aload 6
invokevirtual javax.crypto.spec.IvParameterSpec.getIV:()[B
astore 5
end local 6 start local 5 4: goto 10
end local 5 StackMap locals:
StackMap stack: java.security.spec.InvalidParameterSpecException
5: astore 6
start local 6 6: new java.security.InvalidAlgorithmParameterException
dup
7: ldc "Could not decode IV"
aload 6
8: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 9: StackMap locals:
StackMap stack:
aconst_null
astore 5
start local 5 10: StackMap locals: byte[]
StackMap stack:
aload 0
iload 1
aload 2
aload 5
aload 4
invokevirtual sun.security.pkcs11.P11Cipher.implInit:(ILjava/security/Key;[BLjava/security/SecureRandom;)V
11: return
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 12 0 this Lsun/security/pkcs11/P11Cipher;
0 12 1 opmode I
0 12 2 key Ljava/security/Key;
0 12 3 params Ljava/security/AlgorithmParameters;
0 12 4 random Ljava/security/SecureRandom;
4 5 5 ivValue [B
10 12 5 ivValue [B
3 4 6 ivSpec Ljavax/crypto/spec/IvParameterSpec;
6 9 6 e Ljava/security/spec/InvalidParameterSpecException;
Exception table:
from to target type
1 4 5 Class java.security.spec.InvalidParameterSpecException
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
opmode
key
params
random
private void implInit(int, java.security.Key, byte[], java.security.SecureRandom);
descriptor: (ILjava/security/Key;[BLjava/security/SecureRandom;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokevirtual sun.security.pkcs11.P11Cipher.cancelOperation:()V
1: aload 0
getfield sun.security.pkcs11.P11Cipher.fixedKeySize:I
iconst_m1
if_icmpeq 3
aload 2
invokeinterface java.security.Key.getEncoded:()[B
arraylength
aload 0
getfield sun.security.pkcs11.P11Cipher.fixedKeySize:I
if_icmpeq 3
2: new java.security.InvalidKeyException
dup
ldc "Key size is invalid"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
iload 1
tableswitch { // 1 - 2
1: 4
2: 6
default: 8
}
4: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.pkcs11.P11Cipher.encrypt:Z
5: goto 11
6: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.pkcs11.P11Cipher.encrypt:Z
7: goto 11
8: StackMap locals:
StackMap stack:
new java.security.InvalidAlgorithmParameterException
dup
9: 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;
10: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.blockMode:I
iconst_3
if_icmpne 20
12: aload 3
ifnull 36
13: aload 0
getfield sun.security.pkcs11.P11Cipher.blockSize:I
ifne 17
14: new java.security.InvalidAlgorithmParameterException
dup
15: ldc "IV not used with stream ciphers"
16: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
new java.security.InvalidAlgorithmParameterException
dup
18: ldc "IV not used in ECB mode"
19: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
aload 3
ifnonnull 32
21: aload 0
getfield sun.security.pkcs11.P11Cipher.encrypt:Z
ifne 27
22: aload 0
getfield sun.security.pkcs11.P11Cipher.blockMode:I
iconst_4
if_icmpne 24
23: ldc "IV must be specified for decryption in CBC mode"
goto 25
24: StackMap locals:
StackMap stack:
ldc "IV must be specified for decryption in CTR mode"
25: StackMap locals:
StackMap stack: java.lang.String
astore 5
start local 5 26: new java.security.InvalidAlgorithmParameterException
dup
aload 5
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
end local 5 27: StackMap locals:
StackMap stack:
aload 4
ifnonnull 29
28: invokestatic sun.security.jca.JCAUtil.getSecureRandom:()Ljava/security/SecureRandom;
astore 4
29: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.blockSize:I
newarray 8
astore 3
30: aload 4
aload 3
invokevirtual java.security.SecureRandom.nextBytes:([B)V
31: goto 36
32: StackMap locals:
StackMap stack:
aload 3
arraylength
aload 0
getfield sun.security.pkcs11.P11Cipher.blockSize:I
if_icmpeq 36
33: new java.security.InvalidAlgorithmParameterException
dup
34: ldc "IV length must match block size"
35: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
36: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield sun.security.pkcs11.P11Cipher.iv:[B
37: aload 0
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
aload 2
aload 0
getfield sun.security.pkcs11.P11Cipher.keyAlgorithm:Ljava/lang/String;
invokestatic sun.security.pkcs11.P11SecretKeyFactory.convertKey:(Lsun/security/pkcs11/Token;Ljava/security/Key;Ljava/lang/String;)Lsun/security/pkcs11/P11Key;
putfield sun.security.pkcs11.P11Cipher.p11Key:Lsun/security/pkcs11/P11Key;
38: aload 0
invokevirtual sun.security.pkcs11.P11Cipher.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 "Could not initialize cipher"
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/P11Cipher;
0 43 1 opmode I
0 43 2 key Ljava/security/Key;
0 43 3 iv [B
0 43 4 random Ljava/security/SecureRandom;
26 27 5 exMsg Ljava/lang/String;
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, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
opmode
key
iv
random
private void cancelOperation();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=1
start local 0 0: aload 0
getfield sun.security.pkcs11.P11Cipher.initialized:Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.pkcs11.P11Cipher.initialized:Z
3: aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
ifnull 4
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.explicitCancel:Z
ifne 5
4: StackMap locals:
StackMap stack:
return
5: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual sun.security.pkcs11.P11Cipher.doFinalLength:(I)I
istore 1
start local 1 6: iload 1
newarray 8
astore 2
start local 2 7: aload 0
getfield sun.security.pkcs11.P11Cipher.encrypt:Z
ifeq 10
8: aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
lconst_0
aload 2
iconst_0
iload 1
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_EncryptFinal:(JJ[BII)I
pop
9: goto 17
10: StackMap locals: int byte[]
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
lconst_0
aload 2
iconst_0
iload 1
invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_DecryptFinal:(JJ[BII)I
pop
11: goto 17
StackMap locals:
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
12: astore 3
start local 3 13: new java.security.ProviderException
dup
ldc "Cancel failed"
aload 3
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 14: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
15: aload 0
invokevirtual sun.security.pkcs11.P11Cipher.reset:()V
16: aload 4
athrow
17: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.pkcs11.P11Cipher.reset:()V
18: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/security/pkcs11/P11Cipher;
6 19 1 bufLen I
7 19 2 buffer [B
13 14 3 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
7 11 12 Class sun.security.pkcs11.wrapper.PKCS11Exception
7 14 14 any
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.P11Cipher.initialized:Z
ifne 2
1: aload 0
invokevirtual sun.security.pkcs11.P11Cipher.initialize:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/pkcs11/P11Cipher;
Exceptions:
throws sun.security.pkcs11.wrapper.PKCS11Exception
private void initialize();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
ifnonnull 2
1: aload 0
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
invokevirtual sun.security.pkcs11.Token.getOpSession:()Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.blockMode:I
iconst_5
if_icmpne 4
3: new sun.security.pkcs11.wrapper.CK_MECHANISM
dup
aload 0
getfield sun.security.pkcs11.P11Cipher.mechanism:J
new sun.security.pkcs11.wrapper.CK_AES_CTR_PARAMS
dup
aload 0
getfield sun.security.pkcs11.P11Cipher.iv:[B
invokespecial sun.security.pkcs11.wrapper.CK_AES_CTR_PARAMS.<init>:([B)V
invokespecial sun.security.pkcs11.wrapper.CK_MECHANISM.<init>:(JLsun/security/pkcs11/wrapper/CK_AES_CTR_PARAMS;)V
goto 5
4: StackMap locals:
StackMap stack:
new sun.security.pkcs11.wrapper.CK_MECHANISM
dup
aload 0
getfield sun.security.pkcs11.P11Cipher.mechanism:J
aload 0
getfield sun.security.pkcs11.P11Cipher.iv:[B
invokespecial sun.security.pkcs11.wrapper.CK_MECHANISM.<init>:(J[B)V
5: StackMap locals:
StackMap stack: sun.security.pkcs11.wrapper.CK_MECHANISM
astore 1
start local 1 6: aload 0
getfield sun.security.pkcs11.P11Cipher.encrypt:Z
ifeq 9
7: aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 1
aload 0
getfield sun.security.pkcs11.P11Cipher.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
8: goto 14
9: StackMap locals: sun.security.pkcs11.wrapper.CK_MECHANISM
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
aload 1
aload 0
getfield sun.security.pkcs11.P11Cipher.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
10: goto 14
StackMap locals:
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
11: astore 2
start local 2 12: aload 0
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
13: aload 2
athrow
end local 2 14: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.pkcs11.P11Cipher.bytesBuffered:I
15: aload 0
iconst_0
putfield sun.security.pkcs11.P11Cipher.padBufferLen:I
16: aload 0
iconst_1
putfield sun.security.pkcs11.P11Cipher.initialized:Z
17: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/security/pkcs11/P11Cipher;
6 18 1 mechParams Lsun/security/pkcs11/wrapper/CK_MECHANISM;
12 14 2 ex Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
6 10 11 Class sun.security.pkcs11.wrapper.PKCS11Exception
Exceptions:
throws sun.security.pkcs11.wrapper.PKCS11Exception
private int updateLength(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifgt 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iload 1
aload 0
getfield sun.security.pkcs11.P11Cipher.bytesBuffered:I
iadd
istore 2
start local 2 3: aload 0
getfield sun.security.pkcs11.P11Cipher.blockSize:I
ifeq 5
4: iload 2
iload 2
aload 0
getfield sun.security.pkcs11.P11Cipher.blockSize:I
iconst_1
isub
iand
isub
istore 2
5: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/pkcs11/P11Cipher;
0 6 1 inLen I
3 6 2 result I
MethodParameters:
Name Flags
inLen
private int doFinalLength(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifge 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iload 1
aload 0
getfield sun.security.pkcs11.P11Cipher.bytesBuffered:I
iadd
istore 2
start local 2 3: aload 0
getfield sun.security.pkcs11.P11Cipher.blockSize:I
ifeq 5
aload 0
getfield sun.security.pkcs11.P11Cipher.encrypt:Z
ifeq 5
aload 0
getfield sun.security.pkcs11.P11Cipher.paddingType:I
iconst_5
if_icmpeq 5
4: iload 2
aload 0
getfield sun.security.pkcs11.P11Cipher.blockSize:I
iload 2
aload 0
getfield sun.security.pkcs11.P11Cipher.blockSize:I
iconst_1
isub
iand
isub
iadd
istore 2
5: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/pkcs11/P11Cipher;
0 6 1 inLen I
3 6 2 result I
MethodParameters:
Name Flags
inLen
private void reset();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
putfield sun.security.pkcs11.P11Cipher.initialized:Z
1: aload 0
iconst_0
putfield sun.security.pkcs11.P11Cipher.bytesBuffered:I
2: aload 0
iconst_0
putfield sun.security.pkcs11.P11Cipher.padBufferLen:I
3: aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
ifnull 5
4: aload 0
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Token.releaseSession:(Lsun/security/pkcs11/Session;)Lsun/security/pkcs11/Session;
putfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/pkcs11/P11Cipher;
protected byte[] engineUpdate(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 3
invokevirtual sun.security.pkcs11.P11Cipher.updateLength:(I)I
newarray 8
astore 4
start local 4 1: aload 0
aload 1
iload 2
iload 3
aload 4
iconst_0
invokevirtual sun.security.pkcs11.P11Cipher.engineUpdate:([BII[BI)I
istore 5
start local 5 2: aload 4
iconst_0
iload 5
invokestatic sun.security.pkcs11.P11Util.convert:([BII)[B
3: areturn
end local 5 end local 4 4: StackMap locals:
StackMap stack: javax.crypto.ShortBufferException
astore 4
start local 4 5: new java.security.ProviderException
dup
aload 4
invokespecial java.security.ProviderException.<init>:(Ljava/lang/Throwable;)V
athrow
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/P11Cipher;
0 6 1 in [B
0 6 2 inOfs I
0 6 3 inLen I
1 4 4 out [B
2 4 5 n I
5 6 4 e Ljavax/crypto/ShortBufferException;
Exception table:
from to target type
0 3 4 Class javax.crypto.ShortBufferException
MethodParameters:
Name Flags
in
inOfs
inLen
protected int engineUpdate(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 4
arraylength
iload 5
isub
istore 6
start local 6 1: aload 0
aload 1
iload 2
iload 3
aload 4
iload 5
iload 6
invokevirtual sun.security.pkcs11.P11Cipher.implUpdate:([BII[BII)I
ireturn
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 2 0 this Lsun/security/pkcs11/P11Cipher;
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
1 2 6 outLen I
Exceptions:
throws javax.crypto.ShortBufferException
MethodParameters:
Name Flags
in
inOfs
inLen
out
outOfs
protected int engineUpdate(java.nio.ByteBuffer, java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual sun.security.pkcs11.P11Cipher.implUpdate:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs11/P11Cipher;
0 1 1 inBuffer Ljava/nio/ByteBuffer;
0 1 2 outBuffer Ljava/nio/ByteBuffer;
Exceptions:
throws javax.crypto.ShortBufferException
MethodParameters:
Name Flags
inBuffer
outBuffer
protected byte[] engineDoFinal(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 3
invokevirtual sun.security.pkcs11.P11Cipher.doFinalLength:(I)I
newarray 8
astore 4
start local 4 1: aload 0
aload 1
iload 2
iload 3
aload 4
iconst_0
invokevirtual sun.security.pkcs11.P11Cipher.engineDoFinal:([BII[BI)I
istore 5
start local 5 2: aload 4
iconst_0
iload 5
invokestatic sun.security.pkcs11.P11Util.convert:([BII)[B
3: areturn
end local 5 end local 4 4: StackMap locals:
StackMap stack: javax.crypto.ShortBufferException
astore 4
start local 4 5: new java.security.ProviderException
dup
aload 4
invokespecial java.security.ProviderException.<init>:(Ljava/lang/Throwable;)V
athrow
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/P11Cipher;
0 6 1 in [B
0 6 2 inOfs I
0 6 3 inLen I
1 4 4 out [B
2 4 5 n I
5 6 4 e Ljavax/crypto/ShortBufferException;
Exception table:
from to target type
0 3 4 Class javax.crypto.ShortBufferException
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=6, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iconst_0
istore 6
start local 6 1: iload 3
ifeq 4
aload 1
ifnull 4
2: aload 0
aload 1
iload 2
iload 3
aload 4
iload 5
invokevirtual sun.security.pkcs11.P11Cipher.engineUpdate:([BII[BI)I
istore 6
3: iload 5
iload 6
iadd
istore 5
4: StackMap locals: int
StackMap stack:
iload 6
aload 0
aload 4
iload 5
aload 4
arraylength
iload 5
isub
invokevirtual sun.security.pkcs11.P11Cipher.implDoFinal:([BII)I
iadd
istore 6
5: iload 6
ireturn
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 6 0 this Lsun/security/pkcs11/P11Cipher;
0 6 1 in [B
0 6 2 inOfs I
0 6 3 inLen I
0 6 4 out [B
0 6 5 outOfs I
1 6 6 n I
Exceptions:
throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
in
inOfs
inLen
out
outOfs
protected int engineDoFinal(java.nio.ByteBuffer, java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual sun.security.pkcs11.P11Cipher.engineUpdate:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
istore 3
start local 3 1: iload 3
aload 0
aload 2
invokevirtual sun.security.pkcs11.P11Cipher.implDoFinal:(Ljava/nio/ByteBuffer;)I
iadd
istore 3
2: iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/pkcs11/P11Cipher;
0 3 1 inBuffer Ljava/nio/ByteBuffer;
0 3 2 outBuffer Ljava/nio/ByteBuffer;
1 3 3 n I
Exceptions:
throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
inBuffer
outBuffer
private int implUpdate(byte[], int, int, byte[], int, int);
descriptor: ([BII[BII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=15, locals=10, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: iload 6
aload 0
iload 3
invokevirtual sun.security.pkcs11.P11Cipher.updateLength:(I)I
if_icmpge 2
1: new javax.crypto.ShortBufferException
dup
invokespecial javax.crypto.ShortBufferException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.pkcs11.P11Cipher.ensureInitialized:()V
3: iconst_0
istore 7
start local 7 4: aload 0
getfield sun.security.pkcs11.P11Cipher.encrypt:Z
ifeq 9
5: aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
lconst_0
aload 1
iload 2
iload 3
6: lconst_0
aload 4
iload 5
iload 6
7: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_EncryptUpdate:(JJ[BIIJ[BII)I
istore 7
8: goto 36
9: StackMap locals: int
StackMap stack:
iconst_0
istore 8
start local 8 10: aload 0
getfield sun.security.pkcs11.P11Cipher.paddingObj:Lsun/security/pkcs11/P11Cipher$Padding;
ifnull 30
11: aload 0
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
ifeq 26
12: aload 0
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
arraylength
if_icmpeq 21
13: aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
arraylength
aload 0
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
isub
istore 9
start local 9 14: iload 3
iload 9
if_icmple 19
15: aload 0
aload 1
iload 2
iload 9
invokevirtual sun.security.pkcs11.P11Cipher.bufferInputBytes:([BII)V
16: iload 2
iload 9
iadd
istore 2
17: iload 3
iload 9
isub
istore 3
18: goto 21
19: StackMap locals: int int
StackMap stack:
aload 0
aload 1
iload 2
iload 3
invokevirtual sun.security.pkcs11.P11Cipher.bufferInputBytes:([BII)V
20: iconst_0
ireturn
end local 9 21: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
22: lconst_0
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
iconst_0
aload 0
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
23: lconst_0
aload 4
iload 5
iload 6
24: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_DecryptUpdate:(JJ[BIIJ[BII)I
istore 7
25: aload 0
iconst_0
putfield sun.security.pkcs11.P11Cipher.padBufferLen:I
26: StackMap locals:
StackMap stack:
iload 3
aload 0
getfield sun.security.pkcs11.P11Cipher.blockSize:I
iconst_1
isub
iand
istore 8
27: iload 8
ifne 29
28: aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
arraylength
istore 8
29: StackMap locals:
StackMap stack:
iload 3
iload 8
isub
istore 3
30: StackMap locals:
StackMap stack:
iload 3
ifle 34
31: iload 7
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
lconst_0
aload 1
iload 2
32: iload 3
lconst_0
aload 4
iload 5
iload 7
iadd
iload 6
iload 7
isub
33: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_DecryptUpdate:(JJ[BIIJ[BII)I
iadd
istore 7
34: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.paddingObj:Lsun/security/pkcs11/P11Cipher$Padding;
ifnull 36
35: aload 0
aload 1
iload 2
iload 3
iadd
iload 8
invokevirtual sun.security.pkcs11.P11Cipher.bufferInputBytes:([BII)V
end local 8 36: StackMap locals:
StackMap stack:
aload 0
dup
getfield sun.security.pkcs11.P11Cipher.bytesBuffered:I
iload 3
iload 7
isub
iadd
putfield sun.security.pkcs11.P11Cipher.bytesBuffered:I
37: iload 7
38: ireturn
end local 7 39: StackMap locals: sun.security.pkcs11.P11Cipher byte[] int int byte[] int int
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
astore 7
start local 7 40: aload 7
invokevirtual sun.security.pkcs11.wrapper.PKCS11Exception.getErrorCode:()J
ldc 336
lcmp
ifne 43
41: new javax.crypto.ShortBufferException
dup
invokespecial javax.crypto.ShortBufferException.<init>:()V
aload 7
invokevirtual javax.crypto.ShortBufferException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
42: checkcast javax.crypto.ShortBufferException
athrow
43: StackMap locals: sun.security.pkcs11.wrapper.PKCS11Exception
StackMap stack:
aload 0
invokevirtual sun.security.pkcs11.P11Cipher.reset:()V
44: new java.security.ProviderException
dup
ldc "update() failed"
aload 7
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
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 45 0 this Lsun/security/pkcs11/P11Cipher;
0 45 1 in [B
0 45 2 inOfs I
0 45 3 inLen I
0 45 4 out [B
0 45 5 outOfs I
0 45 6 outLen I
4 39 7 k I
10 36 8 newPadBufferLen I
14 21 9 bufCapacity I
40 45 7 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
2 20 39 Class sun.security.pkcs11.wrapper.PKCS11Exception
21 38 39 Class sun.security.pkcs11.wrapper.PKCS11Exception
Exceptions:
throws javax.crypto.ShortBufferException
MethodParameters:
Name Flags
in
inOfs
inLen
out
outOfs
outLen
private int implUpdate(java.nio.ByteBuffer, java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=15, locals=17, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 3
start local 3 1: iload 3
ifgt 3
2: iconst_0
ireturn
3: StackMap locals: int
StackMap stack:
aload 2
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 4
start local 4 4: iload 4
aload 0
iload 3
invokevirtual sun.security.pkcs11.P11Cipher.updateLength:(I)I
if_icmpge 6
5: new javax.crypto.ShortBufferException
dup
invokespecial javax.crypto.ShortBufferException.<init>:()V
athrow
6: StackMap locals: int
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 5
start local 5 7: aload 0
invokevirtual sun.security.pkcs11.P11Cipher.ensureInitialized:()V
8: lconst_0
lstore 6
start local 6 9: iconst_0
istore 8
start local 8 10: aconst_null
astore 9
start local 9 11: aload 1
instanceof sun.nio.ch.DirectBuffer
ifeq 15
12: aload 1
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
lstore 6
13: iload 5
istore 8
14: goto 18
StackMap locals: sun.security.pkcs11.P11Cipher java.nio.ByteBuffer java.nio.ByteBuffer int int int long int byte[]
StackMap stack:
15: aload 1
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 18
16: aload 1
invokevirtual java.nio.ByteBuffer.array:()[B
astore 9
17: iload 5
aload 1
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
iadd
istore 8
18: StackMap locals:
StackMap stack:
lconst_0
lstore 10
start local 10 19: iconst_0
istore 12
start local 12 20: aconst_null
astore 13
start local 13 21: aload 2
instanceof sun.nio.ch.DirectBuffer
ifeq 25
22: aload 2
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
lstore 10
23: aload 2
invokevirtual java.nio.ByteBuffer.position:()I
istore 12
24: goto 30
25: StackMap locals: long int byte[]
StackMap stack:
aload 2
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 29
26: aload 2
invokevirtual java.nio.ByteBuffer.array:()[B
astore 13
27: aload 2
invokevirtual java.nio.ByteBuffer.position:()I
aload 2
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
iadd
istore 12
28: goto 30
29: StackMap locals:
StackMap stack:
iload 4
newarray 8
astore 13
30: StackMap locals:
StackMap stack:
iconst_0
istore 14
start local 14 31: aload 0
getfield sun.security.pkcs11.P11Cipher.encrypt:Z
ifeq 42
32: lload 6
lconst_0
lcmp
ifne 36
aload 9
ifnonnull 36
33: iload 3
newarray 8
astore 9
34: aload 1
aload 9
invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
pop
35: goto 37
36: StackMap locals: int
StackMap stack:
aload 1
iload 5
iload 3
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
37: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
38: lload 6
aload 9
iload 8
iload 3
39: lload 10
aload 13
iload 12
iload 4
40: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_EncryptUpdate:(JJ[BIIJ[BII)I
istore 14
41: goto 75
42: StackMap locals:
StackMap stack:
iconst_0
istore 15
start local 15 43: aload 0
getfield sun.security.pkcs11.P11Cipher.paddingObj:Lsun/security/pkcs11/P11Cipher$Padding;
ifnull 63
44: aload 0
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
ifeq 59
45: aload 0
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
arraylength
if_icmpeq 54
46: aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
arraylength
aload 0
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
isub
istore 16
start local 16 47: iload 3
iload 16
if_icmple 52
48: aload 0
aload 1
iload 16
invokevirtual sun.security.pkcs11.P11Cipher.bufferInputBytes:(Ljava/nio/ByteBuffer;I)V
49: iload 8
iload 16
iadd
istore 8
50: iload 3
iload 16
isub
istore 3
51: goto 54
52: StackMap locals: int int
StackMap stack:
aload 0
aload 1
iload 3
invokevirtual sun.security.pkcs11.P11Cipher.bufferInputBytes:(Ljava/nio/ByteBuffer;I)V
53: iconst_0
ireturn
end local 16 54: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
lconst_0
55: aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
iconst_0
aload 0
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
lload 10
aload 13
56: iload 12
iload 4
57: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_DecryptUpdate:(JJ[BIIJ[BII)I
istore 14
58: aload 0
iconst_0
putfield sun.security.pkcs11.P11Cipher.padBufferLen:I
59: StackMap locals:
StackMap stack:
iload 3
aload 0
getfield sun.security.pkcs11.P11Cipher.blockSize:I
iconst_1
isub
iand
istore 15
60: iload 15
ifne 62
61: aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
arraylength
istore 15
62: StackMap locals:
StackMap stack:
iload 3
iload 15
isub
istore 3
63: StackMap locals:
StackMap stack:
iload 3
ifle 73
64: lload 6
lconst_0
lcmp
ifne 68
aload 9
ifnonnull 68
65: iload 3
newarray 8
astore 9
66: aload 1
aload 9
invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
pop
67: goto 69
68: StackMap locals:
StackMap stack:
aload 1
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
iload 3
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
69: StackMap locals:
StackMap stack:
iload 14
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
lload 6
70: aload 9
iload 8
iload 3
lload 10
aload 13
71: iload 12
iload 14
iadd
iload 4
iload 14
isub
72: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_DecryptUpdate:(JJ[BIIJ[BII)I
iadd
istore 14
73: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.paddingObj:Lsun/security/pkcs11/P11Cipher$Padding;
ifnull 75
iload 15
ifeq 75
74: aload 0
aload 1
iload 15
invokevirtual sun.security.pkcs11.P11Cipher.bufferInputBytes:(Ljava/nio/ByteBuffer;I)V
end local 15 75: StackMap locals:
StackMap stack:
aload 0
dup
getfield sun.security.pkcs11.P11Cipher.bytesBuffered:I
iload 3
iload 14
isub
iadd
putfield sun.security.pkcs11.P11Cipher.bytesBuffered:I
76: aload 2
instanceof sun.nio.ch.DirectBuffer
ifne 80
77: aload 2
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifne 80
78: aload 2
aload 13
iload 12
iload 14
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
79: goto 81
80: StackMap locals:
StackMap stack:
aload 2
aload 2
invokevirtual java.nio.ByteBuffer.position:()I
iload 14
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
81: StackMap locals:
StackMap stack:
iload 14
82: ireturn
end local 14 end local 13 end local 12 end local 10 end local 9 end local 8 end local 6 83: StackMap locals: sun.security.pkcs11.P11Cipher java.nio.ByteBuffer java.nio.ByteBuffer int int int
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
astore 6
start local 6 84: aload 1
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
85: aload 6
invokevirtual sun.security.pkcs11.wrapper.PKCS11Exception.getErrorCode:()J
ldc 336
lcmp
ifne 88
86: new javax.crypto.ShortBufferException
dup
invokespecial javax.crypto.ShortBufferException.<init>:()V
aload 6
invokevirtual javax.crypto.ShortBufferException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
87: checkcast javax.crypto.ShortBufferException
athrow
88: StackMap locals: sun.security.pkcs11.wrapper.PKCS11Exception
StackMap stack:
aload 0
invokevirtual sun.security.pkcs11.P11Cipher.reset:()V
89: new java.security.ProviderException
dup
ldc "update() failed"
aload 6
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
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 90 0 this Lsun/security/pkcs11/P11Cipher;
0 90 1 inBuffer Ljava/nio/ByteBuffer;
0 90 2 outBuffer Ljava/nio/ByteBuffer;
1 90 3 inLen I
4 90 4 outLen I
7 90 5 origPos I
9 83 6 inAddr J
10 83 8 inOfs I
11 83 9 inArray [B
19 83 10 outAddr J
20 83 12 outOfs I
21 83 13 outArray [B
31 83 14 k I
43 75 15 newPadBufferLen I
47 54 16 bufCapacity I
84 90 6 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
7 53 83 Class sun.security.pkcs11.wrapper.PKCS11Exception
54 82 83 Class sun.security.pkcs11.wrapper.PKCS11Exception
Exceptions:
throws javax.crypto.ShortBufferException
MethodParameters:
Name Flags
inBuffer
outBuffer
private int implDoFinal(byte[], int, int);
descriptor: ([BII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=13, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iconst_0
invokevirtual sun.security.pkcs11.P11Cipher.doFinalLength:(I)I
istore 4
start local 4 1: iload 3
iload 4
if_icmpge 3
2: new javax.crypto.ShortBufferException
dup
invokespecial javax.crypto.ShortBufferException.<init>:()V
athrow
3: StackMap locals: int
StackMap stack:
aload 0
invokevirtual sun.security.pkcs11.P11Cipher.ensureInitialized:()V
4: iconst_0
istore 5
start local 5 5: aload 0
getfield sun.security.pkcs11.P11Cipher.encrypt:Z
ifeq 18
6: aload 0
getfield sun.security.pkcs11.P11Cipher.paddingObj:Lsun/security/pkcs11/P11Cipher$Padding;
ifnull 14
7: aload 0
getfield sun.security.pkcs11.P11Cipher.paddingObj:Lsun/security/pkcs11/P11Cipher$Padding;
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
8: iload 4
aload 0
getfield sun.security.pkcs11.P11Cipher.bytesBuffered:I
isub
9: invokeinterface sun.security.pkcs11.P11Cipher$Padding.setPaddingBytes:([BI)I
istore 6
start local 6 10: aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
11: lconst_0
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
iconst_0
iload 6
12: lconst_0
aload 1
iload 2
iload 3
13: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_EncryptUpdate:(JJ[BIIJ[BII)I
istore 5
end local 6 14: StackMap locals: int
StackMap stack:
iload 5
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
15: lconst_0
aload 1
iload 2
iload 5
iadd
iload 3
iload 5
isub
16: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_EncryptFinal:(JJ[BII)I
iadd
istore 5
17: goto 34
18: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.paddingObj:Lsun/security/pkcs11/P11Cipher$Padding;
ifnull 31
19: aload 0
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
ifeq 24
20: aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
lconst_0
21: aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
iconst_0
aload 0
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
lconst_0
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
iconst_0
22: aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
arraylength
23: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_DecryptUpdate:(JJ[BIIJ[BII)I
istore 5
24: StackMap locals:
StackMap stack:
iload 5
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
lconst_0
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
iload 5
25: aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
arraylength
iload 5
isub
26: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_DecryptFinal:(JJ[BII)I
iadd
istore 5
27: aload 0
getfield sun.security.pkcs11.P11Cipher.paddingObj:Lsun/security/pkcs11/P11Cipher$Padding;
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
iload 5
invokeinterface sun.security.pkcs11.P11Cipher$Padding.unpad:([BI)I
istore 6
start local 6 28: iload 5
iload 6
isub
istore 5
29: aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
iconst_0
aload 1
iload 2
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 6 30: goto 34
31: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
lconst_0
aload 1
iload 2
32: iload 3
33: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_DecryptFinal:(JJ[BII)I
istore 5
34: StackMap locals:
StackMap stack:
iload 5
istore 8
35: aload 0
invokevirtual sun.security.pkcs11.P11Cipher.reset:()V
36: iload 8
ireturn
end local 5 37: StackMap locals: sun.security.pkcs11.P11Cipher byte[] int int int
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
astore 5
start local 5 38: aload 0
aload 5
invokevirtual sun.security.pkcs11.P11Cipher.handleException:(Lsun/security/pkcs11/wrapper/PKCS11Exception;)V
39: new java.security.ProviderException
dup
ldc "doFinal() failed"
aload 5
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 40: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
41: aload 0
invokevirtual sun.security.pkcs11.P11Cipher.reset:()V
42: aload 7
athrow
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/P11Cipher;
0 43 1 out [B
0 43 2 outOfs I
0 43 3 outLen I
1 43 4 requiredOutLen I
5 37 5 k I
10 14 6 actualPadLen I
28 30 6 actualPadLen I
38 40 5 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
3 35 37 Class sun.security.pkcs11.wrapper.PKCS11Exception
3 35 40 any
37 40 40 any
Exceptions:
throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
out
outOfs
outLen
private int implDoFinal(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=13, locals=12, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 2
start local 2 1: aload 0
iconst_0
invokevirtual sun.security.pkcs11.P11Cipher.doFinalLength:(I)I
istore 3
start local 3 2: iload 2
iload 3
if_icmpge 4
3: new javax.crypto.ShortBufferException
dup
invokespecial javax.crypto.ShortBufferException.<init>:()V
athrow
4: StackMap locals: int int
StackMap stack:
aload 0
invokevirtual sun.security.pkcs11.P11Cipher.ensureInitialized:()V
5: lconst_0
lstore 4
start local 4 6: aconst_null
astore 6
start local 6 7: iconst_0
istore 7
start local 7 8: aload 1
instanceof sun.nio.ch.DirectBuffer
ifeq 12
9: aload 1
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
lstore 4
10: aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 7
11: goto 17
12: StackMap locals: long byte[] int
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 16
13: aload 1
invokevirtual java.nio.ByteBuffer.array:()[B
astore 6
14: aload 1
invokevirtual java.nio.ByteBuffer.position:()I
aload 1
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
iadd
istore 7
15: goto 17
16: StackMap locals:
StackMap stack:
iload 2
newarray 8
astore 6
17: StackMap locals:
StackMap stack:
iconst_0
istore 8
start local 8 18: aload 0
getfield sun.security.pkcs11.P11Cipher.encrypt:Z
ifeq 31
19: aload 0
getfield sun.security.pkcs11.P11Cipher.paddingObj:Lsun/security/pkcs11/P11Cipher$Padding;
ifnull 27
20: aload 0
getfield sun.security.pkcs11.P11Cipher.paddingObj:Lsun/security/pkcs11/P11Cipher$Padding;
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
21: iload 3
aload 0
getfield sun.security.pkcs11.P11Cipher.bytesBuffered:I
isub
22: invokeinterface sun.security.pkcs11.P11Cipher$Padding.setPaddingBytes:([BI)I
istore 9
start local 9 23: aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
24: lconst_0
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
iconst_0
iload 9
25: lload 4
aload 6
iload 7
iload 2
26: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_EncryptUpdate:(JJ[BIIJ[BII)I
istore 8
end local 9 27: StackMap locals: int
StackMap stack:
iload 8
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
28: lload 4
aload 6
iload 7
iload 8
iadd
iload 2
iload 8
isub
29: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_EncryptFinal:(JJ[BII)I
iadd
istore 8
30: goto 49
31: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.paddingObj:Lsun/security/pkcs11/P11Cipher$Padding;
ifnull 46
32: aload 0
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
ifeq 38
33: aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
34: lconst_0
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
iconst_0
aload 0
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
35: lconst_0
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
iconst_0
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
arraylength
36: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_DecryptUpdate:(JJ[BIIJ[BII)I
istore 8
37: aload 0
iconst_0
putfield sun.security.pkcs11.P11Cipher.padBufferLen:I
38: StackMap locals:
StackMap stack:
iload 8
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
39: lconst_0
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
iload 8
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
arraylength
iload 8
isub
40: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_DecryptFinal:(JJ[BII)I
iadd
istore 8
41: aload 0
getfield sun.security.pkcs11.P11Cipher.paddingObj:Lsun/security/pkcs11/P11Cipher$Padding;
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
iload 8
invokeinterface sun.security.pkcs11.P11Cipher$Padding.unpad:([BI)I
istore 9
start local 9 42: iload 8
iload 9
isub
istore 8
43: aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
astore 6
44: iconst_0
istore 7
end local 9 45: goto 49
46: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.token:Lsun/security/pkcs11/Token;
getfield sun.security.pkcs11.Token.p11:Lsun/security/pkcs11/wrapper/PKCS11;
aload 0
getfield sun.security.pkcs11.P11Cipher.session:Lsun/security/pkcs11/Session;
invokevirtual sun.security.pkcs11.Session.id:()J
47: lload 4
aload 6
iload 7
iload 2
48: invokevirtual sun.security.pkcs11.wrapper.PKCS11.C_DecryptFinal:(JJ[BII)I
istore 8
49: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs11.P11Cipher.encrypt:Z
ifne 50
aload 0
getfield sun.security.pkcs11.P11Cipher.paddingObj:Lsun/security/pkcs11/P11Cipher$Padding;
ifnonnull 52
50: StackMap locals:
StackMap stack:
aload 1
instanceof sun.nio.ch.DirectBuffer
ifne 54
51: aload 1
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifne 54
52: StackMap locals:
StackMap stack:
aload 1
aload 6
iload 7
iload 8
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
53: goto 55
54: StackMap locals:
StackMap stack:
aload 1
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
iload 8
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
55: StackMap locals:
StackMap stack:
iload 8
istore 11
56: aload 0
invokevirtual sun.security.pkcs11.P11Cipher.reset:()V
57: iload 11
ireturn
end local 8 end local 7 end local 6 end local 4 58: StackMap locals: sun.security.pkcs11.P11Cipher java.nio.ByteBuffer int int
StackMap stack: sun.security.pkcs11.wrapper.PKCS11Exception
astore 4
start local 4 59: aload 0
aload 4
invokevirtual sun.security.pkcs11.P11Cipher.handleException:(Lsun/security/pkcs11/wrapper/PKCS11Exception;)V
60: new java.security.ProviderException
dup
ldc "doFinal() failed"
aload 4
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 61: StackMap locals:
StackMap stack: java.lang.Throwable
astore 10
62: aload 0
invokevirtual sun.security.pkcs11.P11Cipher.reset:()V
63: aload 10
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 64 0 this Lsun/security/pkcs11/P11Cipher;
0 64 1 outBuffer Ljava/nio/ByteBuffer;
1 64 2 outLen I
2 64 3 requiredOutLen I
6 58 4 outAddr J
7 58 6 outArray [B
8 58 7 outOfs I
18 58 8 k I
23 27 9 actualPadLen I
42 45 9 actualPadLen I
59 61 4 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
Exception table:
from to target type
4 56 58 Class sun.security.pkcs11.wrapper.PKCS11Exception
4 56 61 any
58 61 61 any
Exceptions:
throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
outBuffer
private void handleException(sun.security.pkcs11.wrapper.PKCS11Exception);
descriptor: (Lsun/security/pkcs11/wrapper/PKCS11Exception;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual sun.security.pkcs11.wrapper.PKCS11Exception.getErrorCode:()J
lstore 2
start local 2 1: lload 2
ldc 336
lcmp
ifne 4
2: new javax.crypto.ShortBufferException
dup
invokespecial javax.crypto.ShortBufferException.<init>:()V
aload 1
invokevirtual javax.crypto.ShortBufferException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
3: checkcast javax.crypto.ShortBufferException
athrow
4: StackMap locals: long
StackMap stack:
lload 2
ldc 33
lcmp
ifeq 6
5: lload 2
ldc 65
lcmp
ifne 8
6: StackMap locals:
StackMap stack:
new javax.crypto.IllegalBlockSizeException
dup
aload 1
invokevirtual sun.security.pkcs11.wrapper.PKCS11Exception.toString:()Ljava/lang/String;
invokespecial javax.crypto.IllegalBlockSizeException.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual javax.crypto.IllegalBlockSizeException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
7: checkcast javax.crypto.IllegalBlockSizeException
athrow
8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/pkcs11/P11Cipher;
0 9 1 e Lsun/security/pkcs11/wrapper/PKCS11Exception;
1 9 2 errorCode J
Exceptions:
throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException
MethodParameters:
Name Flags
e
protected byte[] engineWrap(java.security.Key);
descriptor: (Ljava/security/Key;)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.UnsupportedOperationException
dup
ldc "engineWrap()"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs11/P11Cipher;
0 1 1 key Ljava/security/Key;
Exceptions:
throws javax.crypto.IllegalBlockSizeException, java.security.InvalidKeyException
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=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.UnsupportedOperationException
dup
ldc "engineUnwrap()"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs11/P11Cipher;
0 1 1 wrappedKey [B
0 1 2 wrappedKeyAlgorithm Ljava/lang/String;
0 1 3 wrappedKeyType I
Exceptions:
throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
wrappedKey
wrappedKeyAlgorithm
wrappedKeyType
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.P11Cipher.token:Lsun/security/pkcs11/Token;
aload 1
aload 0
getfield sun.security.pkcs11.P11Cipher.keyAlgorithm:Ljava/lang/String;
1: invokestatic sun.security.pkcs11.P11SecretKeyFactory.convertKey:(Lsun/security/pkcs11/Token;Ljava/security/Key;Ljava/lang/String;)Lsun/security/pkcs11/P11Key;
2: invokevirtual sun.security.pkcs11.P11Key.length:()I
3: istore 2
start local 2 4: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/pkcs11/P11Cipher;
0 5 1 key Ljava/security/Key;
4 5 2 n I
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
key
private final void bufferInputBytes(byte[], int, int);
descriptor: ([BII)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
iload 2
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
aload 0
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
iload 3
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
1: aload 0
dup
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
iload 3
iadd
putfield sun.security.pkcs11.P11Cipher.padBufferLen:I
2: aload 0
dup
getfield sun.security.pkcs11.P11Cipher.bytesBuffered:I
iload 3
iadd
putfield sun.security.pkcs11.P11Cipher.bytesBuffered:I
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/pkcs11/P11Cipher;
0 4 1 in [B
0 4 2 inOfs I
0 4 3 len I
MethodParameters:
Name Flags
in
inOfs
len
private final void bufferInputBytes(java.nio.ByteBuffer, int);
descriptor: (Ljava/nio/ByteBuffer;I)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
getfield sun.security.pkcs11.P11Cipher.padBuffer:[B
aload 0
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
iload 2
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
1: aload 0
dup
getfield sun.security.pkcs11.P11Cipher.padBufferLen:I
iload 2
iadd
putfield sun.security.pkcs11.P11Cipher.padBufferLen:I
2: aload 0
dup
getfield sun.security.pkcs11.P11Cipher.bytesBuffered:I
iload 2
iadd
putfield sun.security.pkcs11.P11Cipher.bytesBuffered:I
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/pkcs11/P11Cipher;
0 4 1 inBuffer Ljava/nio/ByteBuffer;
0 4 2 len I
MethodParameters:
Name Flags
inBuffer
len
}
SourceFile: "P11Cipher.java"
NestMembers:
sun.security.pkcs11.P11Cipher$PKCS5Padding sun.security.pkcs11.P11Cipher$Padding
InnerClasses:
private PKCS5Padding = sun.security.pkcs11.P11Cipher$PKCS5Padding of sun.security.pkcs11.P11Cipher
private abstract Padding = sun.security.pkcs11.P11Cipher$Padding of sun.security.pkcs11.P11Cipher