final class com.sun.crypto.provider.PBES1Core
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.sun.crypto.provider.PBES1Core
super_class: java.lang.Object
{
private com.sun.crypto.provider.CipherCore cipher;
descriptor: Lcom/sun/crypto/provider/CipherCore;
flags: (0x0002) ACC_PRIVATE
private java.security.MessageDigest md;
descriptor: Ljava/security/MessageDigest;
flags: (0x0002) ACC_PRIVATE
private int blkSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.lang.String algo;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private byte[] salt;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int iCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield com.sun.crypto.provider.PBES1Core.algo:Ljava/lang/String;
2: aload 0
aconst_null
putfield com.sun.crypto.provider.PBES1Core.salt:[B
3: aload 0
bipush 10
putfield com.sun.crypto.provider.PBES1Core.iCount:I
4: aload 0
aload 1
putfield com.sun.crypto.provider.PBES1Core.algo:Ljava/lang/String;
5: aload 0
getfield com.sun.crypto.provider.PBES1Core.algo:Ljava/lang/String;
ldc "DES"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
6: aload 0
new com.sun.crypto.provider.CipherCore
dup
new com.sun.crypto.provider.DESCrypt
dup
invokespecial com.sun.crypto.provider.DESCrypt.<init>:()V
7: bipush 8
invokespecial com.sun.crypto.provider.CipherCore.<init>:(Lcom/sun/crypto/provider/SymmetricCipher;I)V
8: putfield com.sun.crypto.provider.PBES1Core.cipher:Lcom/sun/crypto/provider/CipherCore;
9: goto 18
StackMap locals: com.sun.crypto.provider.PBES1Core java.lang.String
StackMap stack:
10: aload 0
getfield com.sun.crypto.provider.PBES1Core.algo:Ljava/lang/String;
ldc "DESede"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
11: aload 0
new com.sun.crypto.provider.CipherCore
dup
new com.sun.crypto.provider.DESedeCrypt
dup
invokespecial com.sun.crypto.provider.DESedeCrypt.<init>:()V
12: bipush 8
invokespecial com.sun.crypto.provider.CipherCore.<init>:(Lcom/sun/crypto/provider/SymmetricCipher;I)V
13: putfield com.sun.crypto.provider.PBES1Core.cipher:Lcom/sun/crypto/provider/CipherCore;
14: goto 18
15: StackMap locals:
StackMap stack:
new java.security.NoSuchAlgorithmException
dup
new java.lang.StringBuilder
dup
ldc "No Cipher implementation for PBEWithMD5And"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
16: aload 0
getfield com.sun.crypto.provider.PBES1Core.algo:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
17: invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.PBES1Core.cipher:Lcom/sun/crypto/provider/CipherCore;
ldc "CBC"
invokevirtual com.sun.crypto.provider.CipherCore.setMode:(Ljava/lang/String;)V
19: aload 0
getfield com.sun.crypto.provider.PBES1Core.cipher:Lcom/sun/crypto/provider/CipherCore;
ldc "PKCS5Padding"
invokevirtual com.sun.crypto.provider.CipherCore.setPadding:(Ljava/lang/String;)V
20: aload 0
ldc "MD5"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
putfield com.sun.crypto.provider.PBES1Core.md:Ljava/security/MessageDigest;
21: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/sun/crypto/provider/PBES1Core;
0 22 1 cipherAlg Ljava/lang/String;
Exceptions:
throws java.security.NoSuchAlgorithmException, javax.crypto.NoSuchPaddingException
MethodParameters:
Name Flags
cipherAlg
void setMode(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.crypto.provider.PBES1Core.cipher:Lcom/sun/crypto/provider/CipherCore;
aload 1
invokevirtual com.sun.crypto.provider.CipherCore.setMode:(Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/crypto/provider/PBES1Core;
0 2 1 mode Ljava/lang/String;
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
mode
void setPadding(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.crypto.provider.PBES1Core.cipher:Lcom/sun/crypto/provider/CipherCore;
aload 1
invokevirtual com.sun.crypto.provider.CipherCore.setPadding:(Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/crypto/provider/PBES1Core;
0 2 1 paddingScheme Ljava/lang/String;
Exceptions:
throws javax.crypto.NoSuchPaddingException
MethodParameters:
Name Flags
paddingScheme
int getBlockSize();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: bipush 8
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/crypto/provider/PBES1Core;
int getOutputSize(int);
descriptor: (I)I
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.crypto.provider.PBES1Core.cipher:Lcom/sun/crypto/provider/CipherCore;
iload 1
invokevirtual com.sun.crypto.provider.CipherCore.getOutputSize:(I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/crypto/provider/PBES1Core;
0 1 1 inputLen I
MethodParameters:
Name Flags
inputLen
byte[] getIV();
descriptor: ()[B
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.crypto.provider.PBES1Core.cipher:Lcom/sun/crypto/provider/CipherCore;
invokevirtual com.sun.crypto.provider.CipherCore.getIV:()[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/crypto/provider/PBES1Core;
java.security.AlgorithmParameters getParameters();
descriptor: ()Ljava/security/AlgorithmParameters;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
ifnonnull 4
2: aload 0
bipush 8
newarray 8
putfield com.sun.crypto.provider.PBES1Core.salt:[B
3: invokestatic com.sun.crypto.provider.SunJCE.getRandom:()Ljava/security/SecureRandom;
aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
invokevirtual java.security.SecureRandom.nextBytes:([B)V
4: StackMap locals: java.security.AlgorithmParameters
StackMap stack:
new javax.crypto.spec.PBEParameterSpec
dup
aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
aload 0
getfield com.sun.crypto.provider.PBES1Core.iCount:I
invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
astore 2
start local 2 5: new java.lang.StringBuilder
dup
ldc "PBEWithMD5And"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: aload 0
getfield com.sun.crypto.provider.PBES1Core.algo:Ljava/lang/String;
ldc "DES"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 7
ldc "DES"
goto 8
StackMap locals: com.sun.crypto.provider.PBES1Core java.security.AlgorithmParameters javax.crypto.spec.PBEParameterSpec
StackMap stack: java.lang.StringBuilder
7: ldc "TripleDES"
StackMap locals: com.sun.crypto.provider.PBES1Core java.security.AlgorithmParameters javax.crypto.spec.PBEParameterSpec
StackMap stack: java.lang.StringBuilder java.lang.String
8: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokestatic com.sun.crypto.provider.SunJCE.getInstance:()Lcom/sun/crypto/provider/SunJCE;
11: invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/AlgorithmParameters;
astore 1
12: aload 1
aload 2
invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
13: goto 18
StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
14: pop
15: new java.lang.RuntimeException
dup
ldc "SunJCE called, but not configured"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack: java.security.spec.InvalidParameterSpecException
pop
17: new java.lang.RuntimeException
dup
ldc "PBEParameterSpec not supported"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/sun/crypto/provider/PBES1Core;
1 19 1 params Ljava/security/AlgorithmParameters;
5 19 2 pbeSpec Ljavax/crypto/spec/PBEParameterSpec;
Exception table:
from to target type
5 13 14 Class java.security.NoSuchAlgorithmException
5 13 16 Class java.security.spec.InvalidParameterSpecException
void init(int, java.security.Key, java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
flags: (0x0000)
Code:
stack=6, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 1
iconst_2
if_icmpeq 2
1: iload 1
iconst_4
if_icmpne 4
StackMap locals:
StackMap stack:
2: aload 3
ifnonnull 4
3: new java.security.InvalidAlgorithmParameterException
dup
ldc "Parameters missing"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 2
ifnull 7
5: aload 2
invokeinterface java.security.Key.getEncoded:()[B
ifnull 7
6: aload 2
invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
iconst_1
iconst_0
ldc "PBE"
iconst_0
iconst_3
invokevirtual java.lang.String.regionMatches:(ZILjava/lang/String;II)Z
ifne 8
7: StackMap locals:
StackMap stack:
new java.security.InvalidKeyException
dup
ldc "Missing password"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 3
ifnonnull 12
9: aload 0
bipush 8
newarray 8
putfield com.sun.crypto.provider.PBES1Core.salt:[B
10: aload 4
aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
invokevirtual java.security.SecureRandom.nextBytes:([B)V
11: goto 26
12: StackMap locals:
StackMap stack:
aload 3
instanceof javax.crypto.spec.PBEParameterSpec
ifne 16
13: new java.security.InvalidAlgorithmParameterException
dup
14: ldc "Wrong parameter type: PBE expected"
15: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
aload 0
aload 3
checkcast javax.crypto.spec.PBEParameterSpec
invokevirtual javax.crypto.spec.PBEParameterSpec.getSalt:()[B
putfield com.sun.crypto.provider.PBES1Core.salt:[B
17: aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
arraylength
bipush 8
if_icmpeq 21
18: new java.security.InvalidAlgorithmParameterException
dup
19: ldc "Salt must be 8 bytes long"
20: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack:
aload 0
aload 3
checkcast javax.crypto.spec.PBEParameterSpec
invokevirtual javax.crypto.spec.PBEParameterSpec.getIterationCount:()I
putfield com.sun.crypto.provider.PBES1Core.iCount:I
22: aload 0
getfield com.sun.crypto.provider.PBES1Core.iCount:I
ifgt 26
23: new java.security.InvalidAlgorithmParameterException
dup
24: ldc "IterationCount must be a positive number"
25: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual com.sun.crypto.provider.PBES1Core.deriveCipherKey:(Ljava/security/Key;)[B
astore 5
start local 5 27: new javax.crypto.spec.SecretKeySpec
dup
aload 5
iconst_0
28: aload 5
arraylength
bipush 8
isub
aload 0
getfield com.sun.crypto.provider.PBES1Core.algo:Ljava/lang/String;
29: invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BIILjava/lang/String;)V
astore 6
start local 6 30: new javax.crypto.spec.IvParameterSpec
dup
aload 5
31: aload 5
arraylength
bipush 8
isub
32: bipush 8
33: invokespecial javax.crypto.spec.IvParameterSpec.<init>:([BII)V
astore 7
start local 7 34: aload 0
getfield com.sun.crypto.provider.PBES1Core.cipher:Lcom/sun/crypto/provider/CipherCore;
iload 1
aload 6
aload 7
aload 4
invokevirtual com.sun.crypto.provider.CipherCore.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
35: return
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 36 0 this Lcom/sun/crypto/provider/PBES1Core;
0 36 1 opmode I
0 36 2 key Ljava/security/Key;
0 36 3 params Ljava/security/spec/AlgorithmParameterSpec;
0 36 4 random Ljava/security/SecureRandom;
27 36 5 derivedKey [B
30 36 6 cipherKey Ljavax/crypto/spec/SecretKeySpec;
34 36 7 ivSpec Ljavax/crypto/spec/IvParameterSpec;
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
opmode
key
params
random
private byte[] deriveCipherKey(java.security.Key);
descriptor: (Ljava/security/Key;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
invokeinterface java.security.Key.getEncoded:()[B
astore 3
start local 3 2: aload 0
getfield com.sun.crypto.provider.PBES1Core.algo:Ljava/lang/String;
ldc "DES"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
3: aload 3
arraylength
aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
arraylength
invokestatic java.lang.Math.addExact:(II)I
newarray 8
astore 4
start local 4 4: aload 3
iconst_0
aload 4
iconst_0
aload 3
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: aload 3
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
6: aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
iconst_0
aload 4
aload 3
arraylength
aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: aload 4
astore 5
start local 5 8: iconst_0
istore 6
start local 6 9: goto 13
10: StackMap locals: com.sun.crypto.provider.PBES1Core java.security.Key byte[] byte[] byte[] byte[] int
StackMap stack:
aload 0
getfield com.sun.crypto.provider.PBES1Core.md:Ljava/security/MessageDigest;
aload 5
invokevirtual java.security.MessageDigest.update:([B)V
11: aload 0
getfield com.sun.crypto.provider.PBES1Core.md:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.digest:()[B
astore 5
12: iinc 6 1
StackMap locals:
StackMap stack:
13: iload 6
aload 0
getfield com.sun.crypto.provider.PBES1Core.iCount:I
if_icmplt 10
end local 6 14: aload 4
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
15: aload 5
astore 2
end local 5 end local 4 16: goto 50
StackMap locals:
StackMap stack:
17: aload 0
getfield com.sun.crypto.provider.PBES1Core.algo:Ljava/lang/String;
ldc "DESede"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 50
18: iconst_0
istore 4
start local 4 19: goto 23
20: StackMap locals: int
StackMap stack:
aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
iload 4
baload
aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
iload 4
iconst_4
iadd
baload
if_icmpeq 22
21: goto 24
22: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
23: iload 4
iconst_4
if_icmplt 20
24: StackMap locals:
StackMap stack:
iload 4
iconst_4
if_icmpne 31
25: iconst_0
istore 4
goto 30
26: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
iload 4
baload
istore 5
start local 5 27: aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
iload 4
aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
iconst_3
iload 4
isub
baload
bastore
28: aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
iconst_3
iload 4
isub
iload 5
bastore
end local 5 29: iinc 4 1
StackMap locals:
StackMap stack:
30: iload 4
iconst_2
if_icmplt 26
31: StackMap locals:
StackMap stack:
aconst_null
astore 5
start local 5 32: bipush 32
newarray 8
astore 2
33: iconst_0
istore 4
goto 49
34: StackMap locals: byte[]
StackMap stack:
aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
arraylength
iconst_2
idiv
newarray 8
astore 5
35: aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
iload 4
aload 0
getfield com.sun.crypto.provider.PBES1Core.salt:[B
arraylength
iconst_2
idiv
imul
aload 5
iconst_0
36: aload 5
arraylength
37: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
38: iconst_0
istore 6
start local 6 39: goto 44
40: StackMap locals: int
StackMap stack:
aload 0
getfield com.sun.crypto.provider.PBES1Core.md:Ljava/security/MessageDigest;
aload 5
invokevirtual java.security.MessageDigest.update:([B)V
41: aload 0
getfield com.sun.crypto.provider.PBES1Core.md:Ljava/security/MessageDigest;
aload 3
invokevirtual java.security.MessageDigest.update:([B)V
42: aload 0
getfield com.sun.crypto.provider.PBES1Core.md:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.digest:()[B
astore 5
43: iinc 6 1
StackMap locals:
StackMap stack:
44: iload 6
aload 0
getfield com.sun.crypto.provider.PBES1Core.iCount:I
if_icmplt 40
end local 6 45: aload 5
iconst_0
aload 2
iload 4
bipush 16
imul
46: aload 5
arraylength
47: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
48: iinc 4 1
StackMap locals:
StackMap stack:
49: iload 4
iconst_2
if_icmplt 34
end local 5 end local 4 50: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 51 0 this Lcom/sun/crypto/provider/PBES1Core;
0 51 1 key Ljava/security/Key;
1 51 2 result [B
2 51 3 passwdBytes [B
4 16 4 concat [B
8 16 5 toBeHashed [B
9 14 6 i I
19 50 4 i I
27 29 5 tmp B
32 50 5 toBeHashed [B
39 45 6 j I
MethodParameters:
Name Flags
key
void init(int, java.security.Key, java.security.AlgorithmParameters, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V
flags: (0x0000)
Code:
stack=5, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aconst_null
astore 5
start local 5 1: aload 3
ifnull 6
2: aload 3
ldc Ljavax/crypto/spec/PBEParameterSpec;
invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
checkcast javax.crypto.spec.PBEParameterSpec
astore 5
3: goto 6
StackMap locals: com.sun.crypto.provider.PBES1Core int java.security.Key java.security.AlgorithmParameters java.security.SecureRandom javax.crypto.spec.PBEParameterSpec
StackMap stack: java.security.spec.InvalidParameterSpecException
4: pop
5: new java.security.InvalidAlgorithmParameterException
dup
ldc "Wrong parameter type: PBE expected"
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 2
aload 5
aload 4
invokevirtual com.sun.crypto.provider.PBES1Core.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
7: 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 8 0 this Lcom/sun/crypto/provider/PBES1Core;
0 8 1 opmode I
0 8 2 key Ljava/security/Key;
0 8 3 params Ljava/security/AlgorithmParameters;
0 8 4 random Ljava/security/SecureRandom;
1 8 5 pbeSpec Ljavax/crypto/spec/PBEParameterSpec;
Exception table:
from to target type
2 3 4 Class java.security.spec.InvalidParameterSpecException
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
opmode
key
params
random
byte[] update(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.sun.crypto.provider.PBES1Core.cipher:Lcom/sun/crypto/provider/CipherCore;
aload 1
iload 2
iload 3
invokevirtual com.sun.crypto.provider.CipherCore.update:([BII)[B
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/crypto/provider/PBES1Core;
0 1 1 input [B
0 1 2 inputOffset I
0 1 3 inputLen I
MethodParameters:
Name Flags
input
inputOffset
inputLen
int update(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0000)
Code:
stack=6, 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
getfield com.sun.crypto.provider.PBES1Core.cipher:Lcom/sun/crypto/provider/CipherCore;
aload 1
iload 2
iload 3
1: aload 4
iload 5
2: invokevirtual com.sun.crypto.provider.CipherCore.update:([BII[BI)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 3 0 this Lcom/sun/crypto/provider/PBES1Core;
0 3 1 input [B
0 3 2 inputOffset I
0 3 3 inputLen I
0 3 4 output [B
0 3 5 outputOffset I
Exceptions:
throws javax.crypto.ShortBufferException
MethodParameters:
Name Flags
input
inputOffset
inputLen
output
outputOffset
byte[] doFinal(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.sun.crypto.provider.PBES1Core.cipher:Lcom/sun/crypto/provider/CipherCore;
aload 1
iload 2
iload 3
invokevirtual com.sun.crypto.provider.CipherCore.doFinal:([BII)[B
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/crypto/provider/PBES1Core;
0 1 1 input [B
0 1 2 inputOffset I
0 1 3 inputLen I
Exceptions:
throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
input
inputOffset
inputLen
int doFinal(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0000)
Code:
stack=6, 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
getfield com.sun.crypto.provider.PBES1Core.cipher:Lcom/sun/crypto/provider/CipherCore;
aload 1
iload 2
iload 3
1: aload 4
iload 5
2: invokevirtual com.sun.crypto.provider.CipherCore.doFinal:([BII[BI)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 3 0 this Lcom/sun/crypto/provider/PBES1Core;
0 3 1 input [B
0 3 2 inputOffset I
0 3 3 inputLen I
0 3 4 output [B
0 3 5 outputOffset I
Exceptions:
throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
input
inputOffset
inputLen
output
outputOffset
byte[] wrap(java.security.Key);
descriptor: (Ljava/security/Key;)[B
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
invokeinterface java.security.Key.getEncoded:()[B
astore 3
start local 3 2: aload 3
ifnull 3
aload 3
arraylength
ifne 4
3: StackMap locals: byte[] byte[]
StackMap stack:
new java.security.InvalidKeyException
dup
ldc "Cannot get an encoding of the key to be wrapped"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 3
iconst_0
aload 3
arraylength
invokevirtual com.sun.crypto.provider.PBES1Core.doFinal:([BII)[B
astore 2
end local 3 5: goto 7
StackMap locals: com.sun.crypto.provider.PBES1Core java.security.Key byte[]
StackMap stack: javax.crypto.BadPaddingException
6: pop
7: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/crypto/provider/PBES1Core;
0 8 1 key Ljava/security/Key;
1 8 2 result [B
2 5 3 encodedKey [B
Exception table:
from to target type
1 5 6 Class javax.crypto.BadPaddingException
Exceptions:
throws javax.crypto.IllegalBlockSizeException, java.security.InvalidKeyException
MethodParameters:
Name Flags
key
java.security.Key unwrap(byte[], java.lang.String, int);
descriptor: ([BLjava/lang/String;I)Ljava/security/Key;
flags: (0x0000)
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iconst_0
aload 1
arraylength
invokevirtual com.sun.crypto.provider.PBES1Core.doFinal:([BII)[B
astore 4
start local 4 1: goto 6
end local 4 StackMap locals:
StackMap stack: javax.crypto.BadPaddingException
2: pop
3: new java.security.InvalidKeyException
dup
ldc "The wrapped key is not padded correctly"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack: javax.crypto.IllegalBlockSizeException
pop
5: new java.security.InvalidKeyException
dup
ldc "The wrapped key does not have the correct length"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
start local 4 6: StackMap locals: byte[]
StackMap stack:
aload 4
aload 2
7: iload 3
8: invokestatic com.sun.crypto.provider.ConstructKeys.constructKey:([BLjava/lang/String;I)Ljava/security/Key;
areturn
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 Lcom/sun/crypto/provider/PBES1Core;
0 9 1 wrappedKey [B
0 9 2 wrappedKeyAlgorithm Ljava/lang/String;
0 9 3 wrappedKeyType I
1 2 4 encodedKey [B
6 9 4 encodedKey [B
Exception table:
from to target type
0 1 2 Class javax.crypto.BadPaddingException
0 1 4 Class javax.crypto.IllegalBlockSizeException
Exceptions:
throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
wrappedKey
wrappedKeyAlgorithm
wrappedKeyType
}
SourceFile: "PBES1Core.java"