public class sun.security.krb5.internal.crypto.dk.AesDkCrypto extends sun.security.krb5.internal.crypto.dk.DkCrypto
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.security.krb5.internal.crypto.dk.AesDkCrypto
super_class: sun.security.krb5.internal.crypto.dk.DkCrypto
{
private static final boolean debug;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int BLOCK_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int DEFAULT_ITERATION_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4096
private static final byte[] ZERO_IV;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int hashSize;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 12
private final int keyLength;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: bipush 16
newarray 8
putstatic sun.security.krb5.internal.crypto.dk.AesDkCrypto.ZERO_IV:[B
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial sun.security.krb5.internal.crypto.dk.DkCrypto.<init>:()V
1: aload 0
iload 1
putfield sun.security.krb5.internal.crypto.dk.AesDkCrypto.keyLength:I
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/krb5/internal/crypto/dk/AesDkCrypto;
0 3 1 length I
MethodParameters:
Name Flags
length
protected int getKeySeedLength();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.krb5.internal.crypto.dk.AesDkCrypto.keyLength:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/krb5/internal/crypto/dk/AesDkCrypto;
public byte[] stringToKey(char[], java.lang.String, byte[]);
descriptor: ([CLjava/lang/String;[B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: aload 2
ldc "UTF-8"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
astore 4
2: aload 0
aload 1
aload 4
aload 3
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.stringToKey:([C[B[B)[B
astore 6
3: aload 4
ifnull 5
4: aload 4
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
5: StackMap locals: sun.security.krb5.internal.crypto.dk.AesDkCrypto char[] java.lang.String byte[] byte[] top byte[]
StackMap stack:
aload 6
areturn
6: StackMap locals: sun.security.krb5.internal.crypto.dk.AesDkCrypto char[] java.lang.String byte[] byte[]
StackMap stack: java.lang.Exception
pop
7: aload 4
ifnull 9
8: aload 4
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
9: StackMap locals:
StackMap stack:
aconst_null
areturn
10: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
11: aload 4
ifnull 13
12: aload 4
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
13: StackMap locals: java.lang.Throwable
StackMap stack:
aload 5
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/security/krb5/internal/crypto/dk/AesDkCrypto;
0 14 1 password [C
0 14 2 salt Ljava/lang/String;
0 14 3 s2kparams [B
1 14 4 saltUtf8 [B
Exception table:
from to target type
1 3 6 Class java.lang.Exception
1 3 10 any
6 7 10 any
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
password
salt
s2kparams
private byte[] stringToKey(char[], byte[], byte[]);
descriptor: ([C[B[B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: sipush 4096
istore 4
start local 4 1: aload 3
ifnull 5
2: aload 3
arraylength
iconst_4
if_icmpeq 4
3: new java.lang.RuntimeException
dup
ldc "Invalid parameter to stringToKey"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: int
StackMap stack:
aload 3
iconst_0
iconst_4
invokestatic sun.security.krb5.internal.crypto.dk.AesDkCrypto.readBigEndian:([BII)I
istore 4
5: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
iload 4
6: aload 0
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.getKeySeedLength:()I
7: invokestatic sun.security.krb5.internal.crypto.dk.AesDkCrypto.PBKDF2:([C[BII)[B
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.randomToKey:([B)[B
astore 5
start local 5 8: aload 0
aload 5
getstatic sun.security.krb5.internal.crypto.dk.AesDkCrypto.KERBEROS_CONSTANT:[B
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.dk:([B[B)[B
astore 6
start local 6 9: aload 6
areturn
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 10 0 this Lsun/security/krb5/internal/crypto/dk/AesDkCrypto;
0 10 1 secret [C
0 10 2 salt [B
0 10 3 params [B
1 10 4 iter_count I
8 10 5 tmpKey [B
9 10 6 result [B
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
secret
salt
params
protected byte[] randomToKey(byte[]);
descriptor: ([B)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/krb5/internal/crypto/dk/AesDkCrypto;
0 1 1 in [B
MethodParameters:
Name Flags
in
protected javax.crypto.Cipher getCipher(byte[], byte[], int);
descriptor: ([B[BI)Ljavax/crypto/Cipher;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
ifnonnull 2
1: getstatic sun.security.krb5.internal.crypto.dk.AesDkCrypto.ZERO_IV:[B
astore 2
2: StackMap locals:
StackMap stack:
new javax.crypto.spec.SecretKeySpec
dup
aload 1
ldc "AES"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 4
start local 4 3: ldc "AES/CBC/NoPadding"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 5
start local 5 4: new javax.crypto.spec.IvParameterSpec
dup
aload 2
iconst_0
aload 2
arraylength
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([BII)V
astore 6
start local 6 5: aload 5
iload 3
aload 4
aload 6
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
6: aload 5
areturn
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 7 0 this Lsun/security/krb5/internal/crypto/dk/AesDkCrypto;
0 7 1 key [B
0 7 2 ivec [B
0 7 3 mode I
3 7 4 secretKey Ljavax/crypto/spec/SecretKeySpec;
4 7 5 cipher Ljavax/crypto/Cipher;
5 7 6 encIv Ljavax/crypto/spec/IvParameterSpec;
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
key
ivec
mode
public int getChecksumLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: bipush 12
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/krb5/internal/crypto/dk/AesDkCrypto;
protected byte[] getHmac(byte[], byte[]);
descriptor: ([B[B)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: new javax.crypto.spec.SecretKeySpec
dup
aload 1
ldc "HMAC"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 3
start local 3 1: ldc "HmacSHA1"
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
astore 4
start local 4 2: aload 4
aload 3
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
3: aload 4
aload 2
invokevirtual javax.crypto.Mac.doFinal:([B)[B
astore 5
start local 5 4: bipush 12
newarray 8
astore 6
start local 6 5: aload 5
iconst_0
aload 6
iconst_0
bipush 12
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: aload 6
areturn
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 7 0 this Lsun/security/krb5/internal/crypto/dk/AesDkCrypto;
0 7 1 key [B
0 7 2 msg [B
1 7 3 keyKi Ljavax/crypto/SecretKey;
2 7 4 m Ljavax/crypto/Mac;
4 7 5 hash [B
5 7 6 output [B
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
key
msg
public byte[] calculateChecksum(byte[], int, byte[], int, int);
descriptor: ([BI[BII)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=12, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iload 2
invokestatic sun.security.krb5.internal.crypto.KeyUsage.isValid:(I)Z
ifne 4
1: new java.security.GeneralSecurityException
dup
new java.lang.StringBuilder
dup
ldc "Invalid key usage number: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
iconst_5
newarray 8
astore 6
start local 6 5: aload 6
iconst_0
iload 2
bipush 24
ishr
sipush 255
iand
i2b
bastore
6: aload 6
iconst_1
iload 2
bipush 16
ishr
sipush 255
iand
i2b
bastore
7: aload 6
iconst_2
iload 2
bipush 8
ishr
sipush 255
iand
i2b
bastore
8: aload 6
iconst_3
iload 2
sipush 255
iand
i2b
bastore
9: aload 6
iconst_4
bipush -103
bastore
10: aload 0
aload 1
aload 6
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.dk:([B[B)[B
astore 7
start local 7 11: aload 0
aload 7
aload 3
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.getHmac:([B[B)[B
astore 8
start local 8 12: aload 8
arraylength
aload 0
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.getChecksumLength:()I
if_icmpne 16
13: aload 8
astore 11
14: aload 7
iconst_0
aload 7
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
15: aload 11
areturn
16: StackMap locals: byte[] byte[] byte[]
StackMap stack:
aload 8
arraylength
aload 0
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.getChecksumLength:()I
if_icmple 22
17: aload 0
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.getChecksumLength:()I
newarray 8
astore 9
start local 9 18: aload 8
iconst_0
aload 9
iconst_0
aload 9
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
19: aload 9
astore 11
20: aload 7
iconst_0
aload 7
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
21: aload 11
areturn
end local 9 22: StackMap locals:
StackMap stack:
new java.security.GeneralSecurityException
dup
new java.lang.StringBuilder
dup
ldc "checksum size too short: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
23: aload 8
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "; expecting : "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.getChecksumLength:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
24: invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
athrow
end local 8 25: StackMap locals: sun.security.krb5.internal.crypto.dk.AesDkCrypto byte[] int byte[] int int byte[] byte[]
StackMap stack: java.lang.Throwable
astore 10
26: aload 7
iconst_0
aload 7
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
27: aload 10
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 28 0 this Lsun/security/krb5/internal/crypto/dk/AesDkCrypto;
0 28 1 baseKey [B
0 28 2 usage I
0 28 3 input [B
0 28 4 start I
0 28 5 len I
5 28 6 constant [B
11 28 7 Kc [B
12 25 8 hmac [B
18 22 9 buf [B
Exception table:
from to target type
11 14 25 any
16 20 25 any
22 25 25 any
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
baseKey
usage
input
start
len
public byte[] encrypt(byte[], int, byte[], byte[], byte[], int, int);
descriptor: ([BI[B[B[BII)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=9, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: iload 2
invokestatic sun.security.krb5.internal.crypto.KeyUsage.isValid:(I)Z
ifne 4
1: new java.security.GeneralSecurityException
dup
new java.lang.StringBuilder
dup
ldc "Invalid key usage number: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
aload 3
aload 4
aload 5
5: iload 6
iload 7
iconst_1
6: invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.encryptCTS:([BI[B[B[BIIZ)[B
astore 8
start local 8 7: aload 8
areturn
end local 8 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 8 0 this Lsun/security/krb5/internal/crypto/dk/AesDkCrypto;
0 8 1 baseKey [B
0 8 2 usage I
0 8 3 ivec [B
0 8 4 new_ivec [B
0 8 5 plaintext [B
0 8 6 start I
0 8 7 len I
7 8 8 output [B
Exceptions:
throws java.security.GeneralSecurityException, sun.security.krb5.KrbCryptoException
MethodParameters:
Name Flags
baseKey
usage
ivec
new_ivec
plaintext
start
len
public byte[] encryptRaw(byte[], int, byte[], byte[], int, int);
descriptor: ([BI[B[BII)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=8, 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 2
invokestatic sun.security.krb5.internal.crypto.KeyUsage.isValid:(I)Z
ifne 4
1: new java.security.GeneralSecurityException
dup
new java.lang.StringBuilder
dup
ldc "Invalid key usage number: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
aload 3
aconst_null
aload 4
5: iload 5
iload 6
iconst_0
6: invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.encryptCTS:([BI[B[B[BIIZ)[B
astore 7
start local 7 7: aload 7
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/krb5/internal/crypto/dk/AesDkCrypto;
0 8 1 baseKey [B
0 8 2 usage I
0 8 3 ivec [B
0 8 4 plaintext [B
0 8 5 start I
0 8 6 len I
7 8 7 output [B
Exceptions:
throws java.security.GeneralSecurityException, sun.security.krb5.KrbCryptoException
MethodParameters:
Name Flags
baseKey
usage
ivec
plaintext
start
len
public byte[] decrypt(byte[], int, byte[], byte[], int, int);
descriptor: ([BI[B[BII)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=8, 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 2
invokestatic sun.security.krb5.internal.crypto.KeyUsage.isValid:(I)Z
ifne 4
1: new java.security.GeneralSecurityException
dup
new java.lang.StringBuilder
dup
ldc "Invalid key usage number: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
aload 3
aload 4
5: iload 5
iload 6
iconst_1
6: invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.decryptCTS:([BI[B[BIIZ)[B
astore 7
start local 7 7: aload 7
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/krb5/internal/crypto/dk/AesDkCrypto;
0 8 1 baseKey [B
0 8 2 usage I
0 8 3 ivec [B
0 8 4 ciphertext [B
0 8 5 start I
0 8 6 len I
7 8 7 output [B
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
baseKey
usage
ivec
ciphertext
start
len
public byte[] decryptRaw(byte[], int, byte[], byte[], int, int);
descriptor: ([BI[B[BII)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=8, 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 2
invokestatic sun.security.krb5.internal.crypto.KeyUsage.isValid:(I)Z
ifne 4
1: new java.security.GeneralSecurityException
dup
new java.lang.StringBuilder
dup
ldc "Invalid key usage number: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
aload 3
aload 4
5: iload 5
iload 6
iconst_0
6: invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.decryptCTS:([BI[B[BIIZ)[B
astore 7
start local 7 7: aload 7
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/krb5/internal/crypto/dk/AesDkCrypto;
0 8 1 baseKey [B
0 8 2 usage I
0 8 3 ivec [B
0 8 4 ciphertext [B
0 8 5 start I
0 8 6 len I
7 8 7 output [B
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
baseKey
usage
ivec
ciphertext
start
len
private byte[] encryptCTS(byte[], int, byte[], byte[], byte[], int, int, boolean);
descriptor: ([BI[B[B[BIIZ)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=20, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aconst_null
astore 9
start local 9 1: aconst_null
astore 10
start local 10 2: iconst_5
newarray 8
astore 11
start local 11 3: aload 11
iconst_0
iload 2
bipush 24
ishr
sipush 255
iand
i2b
bastore
4: aload 11
iconst_1
iload 2
bipush 16
ishr
sipush 255
iand
i2b
bastore
5: aload 11
iconst_2
iload 2
bipush 8
ishr
sipush 255
iand
i2b
bastore
6: aload 11
iconst_3
iload 2
sipush 255
iand
i2b
bastore
7: aload 11
iconst_4
bipush -86
bastore
8: aload 0
aload 1
aload 11
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.dk:([B[B)[B
astore 9
9: aconst_null
astore 12
start local 12 10: iload 8
ifeq 20
11: bipush 16
invokestatic sun.security.krb5.Confounder.bytes:(I)[B
astore 13
start local 13 12: aload 13
arraylength
iload 7
iadd
newarray 8
astore 12
13: aload 13
iconst_0
aload 12
14: iconst_0
aload 13
arraylength
15: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
16: aload 5
iload 6
aload 12
17: aload 13
arraylength
iload 7
18: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 13 19: goto 22
20: StackMap locals: sun.security.krb5.internal.crypto.dk.AesDkCrypto byte[] int byte[] byte[] byte[] int int int byte[] byte[] byte[] byte[]
StackMap stack:
iload 7
newarray 8
astore 12
21: aload 5
iload 6
aload 12
iconst_0
iload 7
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
22: StackMap locals:
StackMap stack:
aload 12
arraylength
bipush 12
iadd
newarray 8
astore 13
start local 13 23: ldc "AES/CTS/NoPadding"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 14
start local 14 24: new javax.crypto.spec.SecretKeySpec
dup
aload 9
ldc "AES"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 15
start local 15 25: new javax.crypto.spec.IvParameterSpec
dup
aload 3
iconst_0
aload 3
arraylength
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([BII)V
astore 16
start local 16 26: aload 14
iconst_1
aload 15
aload 16
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
27: aload 14
aload 12
iconst_0
aload 12
arraylength
aload 13
invokevirtual javax.crypto.Cipher.doFinal:([BII[B)I
pop
28: aload 11
iconst_4
bipush 85
bastore
29: aload 0
aload 1
aload 11
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.dk:([B[B)[B
astore 10
30: aload 0
aload 10
aload 12
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.getHmac:([B[B)[B
astore 17
start local 17 31: aload 17
iconst_0
aload 13
aload 12
arraylength
32: aload 17
arraylength
33: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
34: aload 13
astore 19
35: aload 9
ifnull 37
36: aload 9
iconst_0
aload 9
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
37: StackMap locals: sun.security.krb5.internal.crypto.dk.AesDkCrypto byte[] int byte[] byte[] byte[] int int int byte[] byte[] byte[] byte[] byte[] javax.crypto.Cipher javax.crypto.spec.SecretKeySpec javax.crypto.spec.IvParameterSpec byte[] top byte[]
StackMap stack:
aload 10
ifnull 39
38: aload 10
iconst_0
aload 10
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
39: StackMap locals:
StackMap stack:
aload 19
areturn
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 40: StackMap locals: sun.security.krb5.internal.crypto.dk.AesDkCrypto byte[] int byte[] byte[] byte[] int int int byte[] byte[]
StackMap stack: java.lang.Throwable
astore 18
41: aload 9
ifnull 43
42: aload 9
iconst_0
aload 9
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
43: StackMap locals: sun.security.krb5.internal.crypto.dk.AesDkCrypto byte[] int byte[] byte[] byte[] int int int byte[] byte[] top top top top top top top java.lang.Throwable
StackMap stack:
aload 10
ifnull 45
44: aload 10
iconst_0
aload 10
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
45: StackMap locals:
StackMap stack:
aload 18
athrow
end local 10 end local 9 end local 8 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 46 0 this Lsun/security/krb5/internal/crypto/dk/AesDkCrypto;
0 46 1 baseKey [B
0 46 2 usage I
0 46 3 ivec [B
0 46 4 new_ivec [B
0 46 5 plaintext [B
0 46 6 start I
0 46 7 len I
0 46 8 confounder_exists Z
1 46 9 Ke [B
2 46 10 Ki [B
3 40 11 constant [B
10 40 12 toBeEncrypted [B
12 19 13 confounder [B
23 40 13 output [B
24 40 14 cipher Ljavax/crypto/Cipher;
25 40 15 secretKey Ljavax/crypto/spec/SecretKeySpec;
26 40 16 encIv Ljavax/crypto/spec/IvParameterSpec;
31 40 17 hmac [B
Exception table:
from to target type
2 35 40 any
Exceptions:
throws java.security.GeneralSecurityException, sun.security.krb5.KrbCryptoException
MethodParameters:
Name Flags
baseKey
usage
ivec
new_ivec
plaintext
start
len
confounder_exists
private byte[] decryptCTS(byte[], int, byte[], byte[], int, int, boolean);
descriptor: ([BI[B[BIIZ)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=21, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aconst_null
astore 8
start local 8 1: aconst_null
astore 9
start local 9 2: iconst_5
newarray 8
astore 10
start local 10 3: aload 10
iconst_0
iload 2
bipush 24
ishr
sipush 255
iand
i2b
bastore
4: aload 10
iconst_1
iload 2
bipush 16
ishr
sipush 255
iand
i2b
bastore
5: aload 10
iconst_2
iload 2
bipush 8
ishr
sipush 255
iand
i2b
bastore
6: aload 10
iconst_3
iload 2
sipush 255
iand
i2b
bastore
7: aload 10
iconst_4
bipush -86
bastore
8: aload 0
aload 1
aload 10
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.dk:([B[B)[B
astore 8
9: ldc "AES/CTS/NoPadding"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 11
start local 11 10: new javax.crypto.spec.SecretKeySpec
dup
aload 8
ldc "AES"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 12
start local 12 11: new javax.crypto.spec.IvParameterSpec
dup
aload 3
iconst_0
aload 3
arraylength
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([BII)V
astore 13
start local 13 12: aload 11
iconst_2
aload 12
aload 13
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
13: aload 11
aload 4
iload 5
iload 6
bipush 12
isub
invokevirtual javax.crypto.Cipher.doFinal:([BII)[B
astore 14
start local 14 14: aload 10
iconst_4
bipush 85
bastore
15: aload 0
aload 1
aload 10
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.dk:([B[B)[B
astore 9
16: aload 0
aload 9
aload 14
invokevirtual sun.security.krb5.internal.crypto.dk.AesDkCrypto.getHmac:([B[B)[B
astore 15
start local 15 17: iload 5
iload 6
iadd
bipush 12
isub
istore 16
start local 16 18: iconst_0
istore 17
start local 17 19: aload 15
arraylength
bipush 12
if_icmplt 27
20: iconst_0
istore 18
start local 18 21: goto 26
22: StackMap locals: sun.security.krb5.internal.crypto.dk.AesDkCrypto byte[] int byte[] byte[] int int int byte[] byte[] byte[] javax.crypto.Cipher javax.crypto.spec.SecretKeySpec javax.crypto.spec.IvParameterSpec byte[] byte[] int int int
StackMap stack:
aload 15
iload 18
baload
aload 4
iload 16
iload 18
iadd
baload
if_icmpeq 25
23: iconst_1
istore 17
24: goto 27
25: StackMap locals:
StackMap stack:
iinc 18 1
StackMap locals:
StackMap stack:
26: iload 18
bipush 12
if_icmplt 22
end local 18 27: StackMap locals:
StackMap stack:
iload 17
ifeq 29
28: new java.security.GeneralSecurityException
dup
ldc "Checksum failed"
invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
athrow
29: StackMap locals:
StackMap stack:
iload 7
ifeq 40
30: aload 14
arraylength
bipush 16
isub
newarray 8
astore 18
start local 18 31: aload 14
bipush 16
aload 18
32: iconst_0
aload 18
arraylength
33: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
34: aload 18
astore 20
35: aload 8
ifnull 37
36: aload 8
iconst_0
aload 8
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
37: StackMap locals: sun.security.krb5.internal.crypto.dk.AesDkCrypto byte[] int byte[] byte[] int int int byte[] byte[] byte[] javax.crypto.Cipher javax.crypto.spec.SecretKeySpec javax.crypto.spec.IvParameterSpec byte[] byte[] int int byte[] top byte[]
StackMap stack:
aload 9
ifnull 39
38: aload 9
iconst_0
aload 9
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
39: StackMap locals:
StackMap stack:
aload 20
areturn
end local 18 40: StackMap locals: sun.security.krb5.internal.crypto.dk.AesDkCrypto byte[] int byte[] byte[] int int int byte[] byte[] byte[] javax.crypto.Cipher javax.crypto.spec.SecretKeySpec javax.crypto.spec.IvParameterSpec byte[] byte[] int int
StackMap stack:
aload 14
astore 20
41: aload 8
ifnull 43
42: aload 8
iconst_0
aload 8
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
43: StackMap locals: sun.security.krb5.internal.crypto.dk.AesDkCrypto byte[] int byte[] byte[] int int int byte[] byte[] byte[] javax.crypto.Cipher javax.crypto.spec.SecretKeySpec javax.crypto.spec.IvParameterSpec byte[] byte[] int int top top byte[]
StackMap stack:
aload 9
ifnull 45
44: aload 9
iconst_0
aload 9
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
45: StackMap locals:
StackMap stack:
aload 20
areturn
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 46: StackMap locals: sun.security.krb5.internal.crypto.dk.AesDkCrypto byte[] int byte[] byte[] int int int byte[] byte[]
StackMap stack: java.lang.Throwable
astore 19
47: aload 8
ifnull 49
48: aload 8
iconst_0
aload 8
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
49: StackMap locals: sun.security.krb5.internal.crypto.dk.AesDkCrypto byte[] int byte[] byte[] int int int byte[] byte[] top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 9
ifnull 51
50: aload 9
iconst_0
aload 9
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
51: StackMap locals:
StackMap stack:
aload 19
athrow
end local 9 end local 8 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 52 0 this Lsun/security/krb5/internal/crypto/dk/AesDkCrypto;
0 52 1 baseKey [B
0 52 2 usage I
0 52 3 ivec [B
0 52 4 ciphertext [B
0 52 5 start I
0 52 6 len I
0 52 7 confounder_exists Z
1 52 8 Ke [B
2 52 9 Ki [B
3 46 10 constant [B
10 46 11 cipher Ljavax/crypto/Cipher;
11 46 12 secretKey Ljavax/crypto/spec/SecretKeySpec;
12 46 13 encIv Ljavax/crypto/spec/IvParameterSpec;
14 46 14 plaintext [B
17 46 15 calculatedHmac [B
18 46 16 hmacOffset I
19 46 17 cksumFailed Z
21 27 18 i I
31 40 18 output [B
Exception table:
from to target type
2 35 46 any
40 41 46 any
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
baseKey
usage
ivec
ciphertext
start
len
confounder_exists
private static byte[] PBKDF2(char[], byte[], int, int);
descriptor: ([C[BII)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new javax.crypto.spec.PBEKeySpec
dup
aload 0
aload 1
iload 2
iload 3
invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C[BII)V
astore 4
start local 4 1: ldc "PBKDF2WithHmacSHA1"
invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
2: astore 5
start local 5 3: aload 5
aload 4
invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
astore 6
start local 6 4: aload 6
invokeinterface javax.crypto.SecretKey.getEncoded:()[B
astore 7
start local 7 5: aload 7
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 secret [C
0 6 1 salt [B
0 6 2 count I
0 6 3 keyLength I
1 6 4 keySpec Ljavax/crypto/spec/PBEKeySpec;
3 6 5 skf Ljavax/crypto/SecretKeyFactory;
4 6 6 key Ljavax/crypto/SecretKey;
5 6 7 result [B
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
secret
salt
count
keyLength
public static final int readBigEndian(byte[], int, int);
descriptor: ([BII)I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: iload 2
iconst_1
isub
bipush 8
imul
istore 4
start local 4 2: goto 7
3: StackMap locals: int int
StackMap stack:
iload 3
aload 0
iload 1
baload
sipush 255
iand
iload 4
ishl
iadd
istore 3
4: iinc 4 -8
5: iinc 1 1
6: iinc 2 -1
7: StackMap locals:
StackMap stack:
iload 2
ifgt 3
8: iload 3
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 data [B
0 9 1 pos I
0 9 2 size I
1 9 3 retVal I
2 9 4 shifter I
MethodParameters:
Name Flags
data
pos
size
}
SourceFile: "AesDkCrypto.java"