public class sun.security.krb5.internal.crypto.dk.ArcFourCrypto 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.ArcFourCrypto
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 confounderSize;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
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: 16
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 8
newarray 8
putstatic sun.security.krb5.internal.crypto.dk.ArcFourCrypto.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.ArcFourCrypto.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/ArcFourCrypto;
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.ArcFourCrypto.keyLength:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/krb5/internal/crypto/dk/ArcFourCrypto;
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/ArcFourCrypto;
0 1 1 in [B
MethodParameters:
Name Flags
in
public byte[] stringToKey(char[]);
descriptor: ([C)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.stringToKey:([C[B)[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/krb5/internal/crypto/dk/ArcFourCrypto;
0 1 1 passwd [C
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
passwd
private byte[] stringToKey(char[], byte[]);
descriptor: ([C[B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 2
aload 2
arraylength
ifle 2
1: new java.lang.RuntimeException
dup
ldc "Invalid parameter to stringToKey"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aconst_null
astore 3
start local 3 3: aconst_null
astore 4
start local 4 4: aload 1
invokestatic sun.security.krb5.internal.crypto.dk.ArcFourCrypto.charToUtf16:([C)[B
astore 3
5: invokestatic sun.security.provider.MD4.getInstance:()Ljava/security/MessageDigest;
astore 5
start local 5 6: aload 5
aload 3
invokevirtual java.security.MessageDigest.update:([B)V
7: aload 5
invokevirtual java.security.MessageDigest.digest:()[B
astore 4
end local 5 8: goto 17
StackMap locals: sun.security.krb5.internal.crypto.dk.ArcFourCrypto char[] byte[] byte[] byte[]
StackMap stack: java.lang.Exception
9: pop
10: aload 3
ifnull 12
11: aload 3
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
12: StackMap locals:
StackMap stack:
aconst_null
areturn
13: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
14: aload 3
ifnull 16
15: aload 3
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
16: StackMap locals: sun.security.krb5.internal.crypto.dk.ArcFourCrypto char[] byte[] byte[] byte[] top java.lang.Throwable
StackMap stack:
aload 6
athrow
17: StackMap locals: sun.security.krb5.internal.crypto.dk.ArcFourCrypto char[] byte[] byte[] byte[]
StackMap stack:
aload 3
ifnull 19
18: aload 3
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
19: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/security/krb5/internal/crypto/dk/ArcFourCrypto;
0 20 1 secret [C
0 20 2 opaque [B
3 20 3 passwd [B
4 20 4 digest [B
6 8 5 md Ljava/security/MessageDigest;
Exception table:
from to target type
4 8 9 Class java.lang.Exception
4 10 13 any
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
secret
opaque
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.ArcFourCrypto.ZERO_IV:[B
astore 2
2: StackMap locals:
StackMap stack:
new javax.crypto.spec.SecretKeySpec
dup
aload 1
ldc "ARCFOUR"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 4
start local 4 3: ldc "ARCFOUR"
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/ArcFourCrypto;
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 16
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/krb5/internal/crypto/dk/ArcFourCrypto;
protected byte[] getHmac(byte[], byte[]);
descriptor: ([B[B)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: new javax.crypto.spec.SecretKeySpec
dup
aload 1
ldc "HmacMD5"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 3
start local 3 1: ldc "HmacMD5"
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: aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/krb5/internal/crypto/dk/ArcFourCrypto;
0 5 1 key [B
0 5 2 msg [B
1 5 3 keyKi Ljavax/crypto/SecretKey;
2 5 4 m Ljavax/crypto/Mac;
4 5 5 hash [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:
aconst_null
astore 6
start local 6 5: ldc "signaturekey"
invokevirtual java.lang.String.getBytes:()[B
astore 7
start local 7 6: aload 7
arraylength
iconst_1
iadd
newarray 8
astore 8
start local 8 7: aload 7
iconst_0
aload 8
iconst_0
aload 7
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 0
aload 1
aload 8
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 6
end local 8 end local 7 9: goto 15
StackMap locals: sun.security.krb5.internal.crypto.dk.ArcFourCrypto byte[] int byte[] int int byte[]
StackMap stack: java.lang.Exception
10: astore 7
start local 7 11: new java.security.GeneralSecurityException
dup
ldc "Calculate Checkum Failed!"
invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
12: astore 8
start local 8 13: aload 8
aload 7
invokevirtual java.security.GeneralSecurityException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
14: aload 8
athrow
end local 8 end local 7 15: StackMap locals:
StackMap stack:
aload 0
iload 2
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getSalt:(I)[B
astore 7
start local 7 16: aconst_null
astore 8
start local 8 17: ldc "MD5"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 8
18: goto 24
StackMap locals: sun.security.krb5.internal.crypto.dk.ArcFourCrypto byte[] int byte[] int int byte[] byte[] java.security.MessageDigest
StackMap stack: java.security.NoSuchAlgorithmException
19: astore 9
start local 9 20: new java.security.GeneralSecurityException
dup
ldc "Calculate Checkum Failed!"
invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
21: astore 10
start local 10 22: aload 10
aload 9
invokevirtual java.security.GeneralSecurityException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
23: aload 10
athrow
end local 10 end local 9 24: StackMap locals:
StackMap stack:
aload 8
aload 7
invokevirtual java.security.MessageDigest.update:([B)V
25: aload 8
aload 3
iload 4
iload 5
invokevirtual java.security.MessageDigest.update:([BII)V
26: aload 8
invokevirtual java.security.MessageDigest.digest:()[B
astore 9
start local 9 27: aload 0
aload 6
aload 9
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 10
start local 10 28: aload 10
arraylength
aload 0
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getChecksumLength:()I
if_icmpne 30
29: aload 10
areturn
30: StackMap locals: byte[] byte[]
StackMap stack:
aload 10
arraylength
aload 0
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getChecksumLength:()I
if_icmple 34
31: aload 0
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getChecksumLength:()I
newarray 8
astore 11
start local 11 32: aload 10
iconst_0
aload 11
iconst_0
aload 11
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
33: aload 11
areturn
end local 11 34: 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
35: aload 10
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.ArcFourCrypto.getChecksumLength:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
36: invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;)V
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 37 0 this Lsun/security/krb5/internal/crypto/dk/ArcFourCrypto;
0 37 1 baseKey [B
0 37 2 usage I
0 37 3 input [B
0 37 4 start I
0 37 5 len I
5 37 6 Ksign [B
6 9 7 ss [B
7 9 8 new_ss [B
11 15 7 e Ljava/lang/Exception;
13 15 8 gse Ljava/security/GeneralSecurityException;
16 37 7 salt [B
17 37 8 messageDigest Ljava/security/MessageDigest;
20 24 9 e Ljava/security/NoSuchAlgorithmException;
22 24 10 gse Ljava/security/GeneralSecurityException;
27 37 9 md5tmp [B
28 37 10 hmac [B
32 34 11 buf [B
Exception table:
from to target type
5 9 10 Class java.lang.Exception
17 18 19 Class java.security.NoSuchAlgorithmException
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
baseKey
usage
input
start
len
public byte[] encryptSeq(byte[], int, byte[], byte[], int, int);
descriptor: ([BI[B[BII)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=12, 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:
iconst_4
newarray 8
astore 7
start local 7 5: aload 0
aload 1
aload 7
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 8
start local 8 6: aload 0
aload 8
aload 3
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 8
7: ldc "ARCFOUR"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 9
start local 9 8: new javax.crypto.spec.SecretKeySpec
dup
aload 8
ldc "ARCFOUR"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 10
start local 10 9: aload 9
iconst_1
aload 10
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
10: aload 9
aload 4
iload 5
iload 6
invokevirtual javax.crypto.Cipher.doFinal:([BII)[B
astore 11
start local 11 11: aload 11
areturn
end local 11 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 12 0 this Lsun/security/krb5/internal/crypto/dk/ArcFourCrypto;
0 12 1 baseKey [B
0 12 2 usage I
0 12 3 checksum [B
0 12 4 plaintext [B
0 12 5 start I
0 12 6 len I
5 12 7 salt [B
6 12 8 kSeq [B
8 12 9 cipher Ljavax/crypto/Cipher;
9 12 10 secretKey Ljavax/crypto/spec/SecretKeySpec;
11 12 11 output [B
Exceptions:
throws java.security.GeneralSecurityException, sun.security.krb5.KrbCryptoException
MethodParameters:
Name Flags
baseKey
usage
checksum
plaintext
start
len
public byte[] decryptSeq(byte[], int, byte[], byte[], int, int);
descriptor: ([BI[B[BII)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=12, 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:
iconst_4
newarray 8
astore 7
start local 7 5: aload 0
aload 1
aload 7
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 8
start local 8 6: aload 0
aload 8
aload 3
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 8
7: ldc "ARCFOUR"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 9
start local 9 8: new javax.crypto.spec.SecretKeySpec
dup
aload 8
ldc "ARCFOUR"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 10
start local 10 9: aload 9
iconst_2
aload 10
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
10: aload 9
aload 4
iload 5
iload 6
invokevirtual javax.crypto.Cipher.doFinal:([BII)[B
astore 11
start local 11 11: aload 11
areturn
end local 11 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 12 0 this Lsun/security/krb5/internal/crypto/dk/ArcFourCrypto;
0 12 1 baseKey [B
0 12 2 usage I
0 12 3 checksum [B
0 12 4 ciphertext [B
0 12 5 start I
0 12 6 len I
5 12 7 salt [B
6 12 8 kSeq [B
8 12 9 cipher Ljavax/crypto/Cipher;
9 12 10 secretKey Ljavax/crypto/spec/SecretKeySpec;
11 12 11 output [B
Exceptions:
throws java.security.GeneralSecurityException, sun.security.krb5.KrbCryptoException
MethodParameters:
Name Flags
baseKey
usage
checksum
ciphertext
start
len
public byte[] encrypt(byte[], int, byte[], byte[], byte[], int, int);
descriptor: ([BI[B[B[BII)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=20, 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:
bipush 8
invokestatic sun.security.krb5.Confounder.bytes:(I)[B
astore 8
start local 8 5: aload 0
aload 8
arraylength
iload 7
iadd
iconst_1
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.roundup:(II)I
istore 9
start local 9 6: iload 9
newarray 8
astore 10
start local 10 7: aload 8
iconst_0
aload 10
iconst_0
aload 8
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 5
iload 6
aload 10
9: aload 8
arraylength
iload 7
10: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: aload 1
arraylength
newarray 8
astore 11
start local 11 12: aload 1
iconst_0
aload 11
iconst_0
aload 1
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: aload 0
iload 2
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getSalt:(I)[B
astore 12
start local 12 14: aload 0
aload 11
aload 12
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 13
start local 13 15: aload 0
aload 13
aload 10
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 14
start local 14 16: aload 0
aload 13
aload 14
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 15
start local 15 17: ldc "ARCFOUR"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 16
start local 16 18: new javax.crypto.spec.SecretKeySpec
dup
aload 15
ldc "ARCFOUR"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 17
start local 17 19: aload 16
iconst_1
aload 17
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
20: aload 16
aload 10
iconst_0
aload 10
arraylength
invokevirtual javax.crypto.Cipher.doFinal:([BII)[B
astore 18
start local 18 21: bipush 16
aload 18
arraylength
iadd
newarray 8
astore 19
start local 19 22: aload 14
iconst_0
aload 19
iconst_0
bipush 16
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
23: aload 18
iconst_0
aload 19
bipush 16
aload 18
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
24: aload 19
areturn
end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 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 25 0 this Lsun/security/krb5/internal/crypto/dk/ArcFourCrypto;
0 25 1 baseKey [B
0 25 2 usage I
0 25 3 ivec [B
0 25 4 new_ivec [B
0 25 5 plaintext [B
0 25 6 start I
0 25 7 len I
5 25 8 confounder [B
6 25 9 plainSize I
7 25 10 toBeEncrypted [B
12 25 11 k1 [B
14 25 12 salt [B
15 25 13 k2 [B
16 25 14 checksum [B
17 25 15 k3 [B
18 25 16 cipher Ljavax/crypto/Cipher;
19 25 17 secretKey Ljavax/crypto/spec/SecretKeySpec;
21 25 18 output [B
22 25 19 result [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=5, locals=13, 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 1
arraylength
newarray 8
astore 7
start local 7 5: iconst_0
istore 8
start local 8 6: goto 9
7: StackMap locals: byte[] int
StackMap stack:
aload 7
iload 8
aload 1
iload 8
baload
sipush 240
ixor
i2b
bastore
8: iinc 8 1
StackMap locals:
StackMap stack:
9: iload 8
bipush 15
if_icmple 7
end local 8 10: iconst_4
newarray 8
astore 8
start local 8 11: aload 0
aload 7
aload 8
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 9
start local 9 12: aload 0
aload 9
aload 3
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 9
13: ldc "ARCFOUR"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 10
start local 10 14: new javax.crypto.spec.SecretKeySpec
dup
aload 9
ldc "ARCFOUR"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 11
start local 11 15: aload 10
iconst_1
aload 11
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
16: aload 10
aload 4
iload 5
iload 6
invokevirtual javax.crypto.Cipher.doFinal:([BII)[B
astore 12
start local 12 17: aload 12
areturn
end local 12 end local 11 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 18 0 this Lsun/security/krb5/internal/crypto/dk/ArcFourCrypto;
0 18 1 baseKey [B
0 18 2 usage I
0 18 3 seqNum [B
0 18 4 plaintext [B
0 18 5 start I
0 18 6 len I
5 18 7 klocal [B
6 10 8 i I
11 18 8 salt [B
12 18 9 kcrypt [B
14 18 10 cipher Ljavax/crypto/Cipher;
15 18 11 secretKey Ljavax/crypto/spec/SecretKeySpec;
17 18 12 output [B
Exceptions:
throws java.security.GeneralSecurityException, sun.security.krb5.KrbCryptoException
MethodParameters:
Name Flags
baseKey
usage
seqNum
plaintext
start
len
public byte[] decrypt(byte[], int, byte[], byte[], int, int);
descriptor: ([BI[B[BII)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=18, 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 1
arraylength
newarray 8
astore 7
start local 7 5: aload 1
iconst_0
aload 7
iconst_0
aload 1
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: aload 0
iload 2
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getSalt:(I)[B
astore 8
start local 8 7: aload 0
aload 7
aload 8
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 9
start local 9 8: bipush 16
newarray 8
astore 10
start local 10 9: aload 4
iload 5
aload 10
iconst_0
bipush 16
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
10: aload 0
aload 9
aload 10
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 11
start local 11 11: ldc "ARCFOUR"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 12
start local 12 12: new javax.crypto.spec.SecretKeySpec
dup
aload 11
ldc "ARCFOUR"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 13
start local 13 13: aload 12
iconst_2
aload 13
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
14: aload 12
aload 4
iload 5
bipush 16
iadd
15: iload 6
bipush 16
isub
16: invokevirtual javax.crypto.Cipher.doFinal:([BII)[B
astore 14
start local 14 17: aload 0
aload 9
aload 14
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 15
start local 15 18: iconst_0
istore 16
start local 16 19: aload 15
arraylength
bipush 16
if_icmplt 27
20: iconst_0
istore 17
start local 17 21: goto 26
22: StackMap locals: sun.security.krb5.internal.crypto.dk.ArcFourCrypto byte[] int byte[] byte[] int int byte[] byte[] byte[] byte[] byte[] javax.crypto.Cipher javax.crypto.spec.SecretKeySpec byte[] byte[] int int
StackMap stack:
aload 15
iload 17
baload
aload 4
iload 17
baload
if_icmpeq 25
23: iconst_1
istore 16
24: goto 27
25: StackMap locals:
StackMap stack:
iinc 17 1
StackMap locals:
StackMap stack:
26: iload 17
bipush 16
if_icmplt 22
end local 17 27: StackMap locals:
StackMap stack:
iload 16
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:
aload 14
arraylength
bipush 8
isub
newarray 8
astore 17
start local 17 30: aload 14
bipush 8
aload 17
iconst_0
aload 17
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
31: aload 17
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 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 32 0 this Lsun/security/krb5/internal/crypto/dk/ArcFourCrypto;
0 32 1 baseKey [B
0 32 2 usage I
0 32 3 ivec [B
0 32 4 ciphertext [B
0 32 5 start I
0 32 6 len I
5 32 7 k1 [B
7 32 8 salt [B
8 32 9 k2 [B
9 32 10 checksum [B
11 32 11 k3 [B
12 32 12 cipher Ljavax/crypto/Cipher;
13 32 13 secretKey Ljavax/crypto/spec/SecretKeySpec;
17 32 14 plaintext [B
18 32 15 calculatedHmac [B
19 32 16 cksumFailed Z
21 27 17 i I
30 32 17 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, byte[]);
descriptor: ([BI[B[BII[B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=15, 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 1
arraylength
newarray 8
astore 8
start local 8 5: iconst_0
istore 9
start local 9 6: goto 9
7: StackMap locals: byte[] int
StackMap stack:
aload 8
iload 9
aload 1
iload 9
baload
sipush 240
ixor
i2b
bastore
8: iinc 9 1
StackMap locals:
StackMap stack:
9: iload 9
bipush 15
if_icmple 7
end local 9 10: iconst_4
newarray 8
astore 9
start local 9 11: aload 0
aload 8
aload 9
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 10
start local 10 12: iconst_4
newarray 8
astore 11
start local 11 13: aload 7
iconst_0
aload 11
iconst_0
aload 11
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
14: aload 0
aload 10
aload 11
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.getHmac:([B[B)[B
astore 10
15: ldc "ARCFOUR"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 12
start local 12 16: new javax.crypto.spec.SecretKeySpec
dup
aload 10
ldc "ARCFOUR"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 13
start local 13 17: aload 12
iconst_2
aload 13
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
18: aload 12
aload 4
iload 5
iload 6
invokevirtual javax.crypto.Cipher.doFinal:([BII)[B
astore 14
start local 14 19: aload 14
areturn
end local 14 end local 13 end local 12 end local 11 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 20 0 this Lsun/security/krb5/internal/crypto/dk/ArcFourCrypto;
0 20 1 baseKey [B
0 20 2 usage I
0 20 3 ivec [B
0 20 4 ciphertext [B
0 20 5 start I
0 20 6 len I
0 20 7 seqNum [B
5 20 8 klocal [B
6 10 9 i I
11 20 9 salt [B
12 20 10 kcrypt [B
13 20 11 sequenceNum [B
16 20 12 cipher Ljavax/crypto/Cipher;
17 20 13 secretKey Ljavax/crypto/spec/SecretKeySpec;
19 20 14 output [B
Exceptions:
throws java.security.GeneralSecurityException
MethodParameters:
Name Flags
baseKey
usage
ivec
ciphertext
start
len
seqNum
private byte[] getSalt(int);
descriptor: (I)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual sun.security.krb5.internal.crypto.dk.ArcFourCrypto.arcfour_translate_usage:(I)I
istore 2
start local 2 1: iconst_4
newarray 8
astore 3
start local 3 2: aload 3
iconst_0
iload 2
sipush 255
iand
i2b
bastore
3: aload 3
iconst_1
iload 2
bipush 8
ishr
sipush 255
iand
i2b
bastore
4: aload 3
iconst_2
iload 2
bipush 16
ishr
sipush 255
iand
i2b
bastore
5: aload 3
iconst_3
iload 2
bipush 24
ishr
sipush 255
iand
i2b
bastore
6: aload 3
areturn
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/ArcFourCrypto;
0 7 1 usage I
1 7 2 ms_usage I
2 7 3 salt [B
MethodParameters:
Name Flags
usage
private int arcfour_translate_usage(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
lookupswitch { // 3
3: 1
9: 2
23: 3
default: 4
}
1: StackMap locals:
StackMap stack:
bipush 8
ireturn
2: StackMap locals:
StackMap stack:
bipush 8
ireturn
3: StackMap locals:
StackMap stack:
bipush 13
ireturn
4: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/krb5/internal/crypto/dk/ArcFourCrypto;
0 5 1 usage I
MethodParameters:
Name Flags
usage
}
SourceFile: "ArcFourCrypto.java"