class com.sun.security.ntlm.NTLM
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.security.ntlm.NTLM
super_class: java.lang.Object
{
private final javax.crypto.SecretKeyFactory fac;
descriptor: Ljavax/crypto/SecretKeyFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final javax.crypto.Cipher cipher;
descriptor: Ljavax/crypto/Cipher;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.security.MessageDigest md4;
descriptor: Ljava/security/MessageDigest;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final javax.crypto.Mac hmac;
descriptor: Ljavax/crypto/Mac;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.security.MessageDigest md5;
descriptor: Ljava/security/MessageDigest;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final boolean DEBUG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
final com.sun.security.ntlm.Version v;
descriptor: Lcom/sun/security/ntlm/Version;
flags: (0x0010) ACC_FINAL
final boolean writeLM;
descriptor: Z
flags: (0x0010) ACC_FINAL
final boolean writeNTLM;
descriptor: Z
flags: (0x0010) ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/sun/security/ntlm/NTLM;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.sun.security.ntlm.NTLM.$assertionsDisabled:Z
3: ldc "ntlm.debug"
invokestatic sun.security.action.GetBooleanAction.privilegedGetProperty:(Ljava/lang/String;)Z
4: putstatic com.sun.security.ntlm.NTLM.DEBUG:Z
5: return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
ifnonnull 2
ldc "LMv2/NTLMv2"
astore 1
2: StackMap locals: com.sun.security.ntlm.NTLM java.lang.String
StackMap stack:
aload 1
dup
astore 2
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 7
-1981975933: 3
-1885054699: 4
2433: 5
2341821: 6
2406855: 7
74612555: 8
981059989: 9
default: 17
}
StackMap locals: java.lang.String
StackMap stack:
3: aload 2
ldc "NTLMv2"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
goto 17
StackMap locals:
StackMap stack:
4: aload 2
ldc "LMv2/NTLMv2"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 16
goto 17
StackMap locals:
StackMap stack:
5: aload 2
ldc "LM"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
goto 17
StackMap locals:
StackMap stack:
6: aload 2
ldc "LMv2"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 14
goto 17
StackMap locals:
StackMap stack:
7: aload 2
ldc "NTLM"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 11
goto 17
StackMap locals:
StackMap stack:
8: aload 2
ldc "NTLM2"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 13
goto 17
StackMap locals:
StackMap stack:
9: aload 2
ldc "LM/NTLM"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
goto 17
10: StackMap locals:
StackMap stack:
aload 0
getstatic com.sun.security.ntlm.Version.NTLM:Lcom/sun/security/ntlm/Version;
putfield com.sun.security.ntlm.NTLM.v:Lcom/sun/security/ntlm/Version;
aload 0
iconst_1
putfield com.sun.security.ntlm.NTLM.writeLM:Z
aload 0
iconst_0
putfield com.sun.security.ntlm.NTLM.writeNTLM:Z
goto 20
11: StackMap locals:
StackMap stack:
aload 0
getstatic com.sun.security.ntlm.Version.NTLM:Lcom/sun/security/ntlm/Version;
putfield com.sun.security.ntlm.NTLM.v:Lcom/sun/security/ntlm/Version;
aload 0
iconst_0
putfield com.sun.security.ntlm.NTLM.writeLM:Z
aload 0
iconst_1
putfield com.sun.security.ntlm.NTLM.writeNTLM:Z
goto 20
12: StackMap locals:
StackMap stack:
aload 0
getstatic com.sun.security.ntlm.Version.NTLM:Lcom/sun/security/ntlm/Version;
putfield com.sun.security.ntlm.NTLM.v:Lcom/sun/security/ntlm/Version;
aload 0
aload 0
iconst_1
dup_x1
putfield com.sun.security.ntlm.NTLM.writeNTLM:Z
putfield com.sun.security.ntlm.NTLM.writeLM:Z
goto 20
13: StackMap locals:
StackMap stack:
aload 0
getstatic com.sun.security.ntlm.Version.NTLM2:Lcom/sun/security/ntlm/Version;
putfield com.sun.security.ntlm.NTLM.v:Lcom/sun/security/ntlm/Version;
aload 0
aload 0
iconst_1
dup_x1
putfield com.sun.security.ntlm.NTLM.writeNTLM:Z
putfield com.sun.security.ntlm.NTLM.writeLM:Z
goto 20
14: StackMap locals:
StackMap stack:
aload 0
getstatic com.sun.security.ntlm.Version.NTLMv2:Lcom/sun/security/ntlm/Version;
putfield com.sun.security.ntlm.NTLM.v:Lcom/sun/security/ntlm/Version;
aload 0
iconst_1
putfield com.sun.security.ntlm.NTLM.writeLM:Z
aload 0
iconst_0
putfield com.sun.security.ntlm.NTLM.writeNTLM:Z
goto 20
15: StackMap locals:
StackMap stack:
aload 0
getstatic com.sun.security.ntlm.Version.NTLMv2:Lcom/sun/security/ntlm/Version;
putfield com.sun.security.ntlm.NTLM.v:Lcom/sun/security/ntlm/Version;
aload 0
iconst_0
putfield com.sun.security.ntlm.NTLM.writeLM:Z
aload 0
iconst_1
putfield com.sun.security.ntlm.NTLM.writeNTLM:Z
goto 20
16: StackMap locals:
StackMap stack:
aload 0
getstatic com.sun.security.ntlm.Version.NTLMv2:Lcom/sun/security/ntlm/Version;
putfield com.sun.security.ntlm.NTLM.v:Lcom/sun/security/ntlm/Version;
aload 0
aload 0
iconst_1
dup_x1
putfield com.sun.security.ntlm.NTLM.writeNTLM:Z
putfield com.sun.security.ntlm.NTLM.writeLM:Z
goto 20
17: StackMap locals:
StackMap stack:
new com.sun.security.ntlm.NTLMException
dup
iconst_5
18: new java.lang.StringBuilder
dup
ldc "Unknown version "
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;
19: invokespecial com.sun.security.ntlm.NTLMException.<init>:(ILjava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
aload 0
ldc "DES"
invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
putfield com.sun.security.ntlm.NTLM.fac:Ljavax/crypto/SecretKeyFactory;
21: aload 0
ldc "DES/ECB/NoPadding"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
putfield com.sun.security.ntlm.NTLM.cipher:Ljavax/crypto/Cipher;
22: aload 0
invokestatic sun.security.provider.MD4.getInstance:()Ljava/security/MessageDigest;
putfield com.sun.security.ntlm.NTLM.md4:Ljava/security/MessageDigest;
23: aload 0
ldc "HmacMD5"
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
putfield com.sun.security.ntlm.NTLM.hmac:Ljavax/crypto/Mac;
24: aload 0
ldc "MD5"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
putfield com.sun.security.ntlm.NTLM.md5:Ljava/security/MessageDigest;
25: goto 30
StackMap locals:
StackMap stack: javax.crypto.NoSuchPaddingException
26: pop
27: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
28: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
pop
29: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lcom/sun/security/ntlm/NTLM;
0 31 1 version Ljava/lang/String;
Exception table:
from to target type
20 25 26 Class javax.crypto.NoSuchPaddingException
20 25 28 Class java.security.NoSuchAlgorithmException
Exceptions:
throws com.sun.security.ntlm.NTLMException
MethodParameters:
Name Flags
version
public void debug(java.lang.String, java.lang.Object[]);
descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.sun.security.ntlm.NTLM.DEBUG:Z
ifeq 2
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 1
aload 2
invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/security/ntlm/NTLM;
0 3 1 format Ljava/lang/String;
0 3 2 args [Ljava/lang/Object;
MethodParameters:
Name Flags
format
args
public void debug(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.sun.security.ntlm.NTLM.DEBUG:Z
ifeq 4
1: new sun.security.util.HexDumpEncoder
dup
invokespecial sun.security.util.HexDumpEncoder.<init>:()V
aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual sun.security.util.HexDumpEncoder.encodeBuffer:([BLjava/io/OutputStream;)V
2: goto 4
StackMap locals:
StackMap stack: java.io.IOException
3: pop
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/security/ntlm/NTLM;
0 5 1 bytes [B
Exception table:
from to target type
1 2 3 Class java.io.IOException
MethodParameters:
Name Flags
bytes
byte[] makeDesKey(byte[], int);
descriptor: ([BI)[B
flags: (0x0000)
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
arraylength
newarray 10
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 7
3: StackMap locals: int[] int
StackMap stack:
aload 3
iload 4
aload 1
iload 4
baload
ifge 4
aload 1
iload 4
baload
sipush 256
iadd
goto 5
StackMap locals: com.sun.security.ntlm.NTLM byte[] int int[] int
StackMap stack: int[] int
4: aload 1
iload 4
baload
StackMap locals: com.sun.security.ntlm.NTLM byte[] int int[] int
StackMap stack: int[] int int
5: iastore
6: iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
aload 3
arraylength
if_icmplt 3
end local 4 8: bipush 8
newarray 8
astore 4
start local 4 9: aload 4
iconst_0
aload 3
iload 2
iconst_0
iadd
iaload
i2b
bastore
10: aload 4
iconst_1
aload 3
iload 2
iconst_0
iadd
iaload
bipush 7
ishl
sipush 255
iand
aload 3
iload 2
iconst_1
iadd
iaload
iconst_1
ishr
ior
i2b
bastore
11: aload 4
iconst_2
aload 3
iload 2
iconst_1
iadd
iaload
bipush 6
ishl
sipush 255
iand
aload 3
iload 2
iconst_2
iadd
iaload
iconst_2
ishr
ior
i2b
bastore
12: aload 4
iconst_3
aload 3
iload 2
iconst_2
iadd
iaload
iconst_5
ishl
sipush 255
iand
aload 3
iload 2
iconst_3
iadd
iaload
iconst_3
ishr
ior
i2b
bastore
13: aload 4
iconst_4
aload 3
iload 2
iconst_3
iadd
iaload
iconst_4
ishl
sipush 255
iand
aload 3
iload 2
iconst_4
iadd
iaload
iconst_4
ishr
ior
i2b
bastore
14: aload 4
iconst_5
aload 3
iload 2
iconst_4
iadd
iaload
iconst_3
ishl
sipush 255
iand
aload 3
iload 2
iconst_5
iadd
iaload
iconst_5
ishr
ior
i2b
bastore
15: aload 4
bipush 6
aload 3
iload 2
iconst_5
iadd
iaload
iconst_2
ishl
sipush 255
iand
aload 3
iload 2
bipush 6
iadd
iaload
bipush 6
ishr
ior
i2b
bastore
16: aload 4
bipush 7
aload 3
iload 2
bipush 6
iadd
iaload
iconst_1
ishl
sipush 255
iand
i2b
bastore
17: 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 18 0 this Lcom/sun/security/ntlm/NTLM;
0 18 1 input [B
0 18 2 off I
1 18 3 in [I
2 8 4 i I
9 18 4 out [B
MethodParameters:
Name Flags
input
off
byte[] calcLMHash(byte[]);
descriptor: ([B)[B
flags: (0x0000)
Code:
stack=5, locals=12, args_size=2
start local 0 start local 1 0: bipush 8
newarray 8
dup
iconst_0
bipush 75
bastore
dup
iconst_1
bipush 71
bastore
dup
iconst_2
bipush 83
bastore
dup
iconst_3
bipush 33
bastore
dup
iconst_4
bipush 64
bastore
dup
iconst_5
bipush 35
bastore
dup
bipush 6
bipush 36
bastore
dup
bipush 7
bipush 37
bastore
astore 2
start local 2 1: bipush 14
newarray 8
astore 3
start local 3 2: aload 1
arraylength
istore 4
start local 4 3: iload 4
bipush 14
if_icmple 5
4: bipush 14
istore 4
5: StackMap locals: byte[] byte[] int
StackMap stack:
aload 1
iconst_0
aload 3
iconst_0
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: new javax.crypto.spec.DESKeySpec
dup
aload 0
aload 3
iconst_0
invokevirtual com.sun.security.ntlm.NTLM.makeDesKey:([BI)[B
invokespecial javax.crypto.spec.DESKeySpec.<init>:([B)V
astore 5
start local 5 7: new javax.crypto.spec.DESKeySpec
dup
aload 0
aload 3
bipush 7
invokevirtual com.sun.security.ntlm.NTLM.makeDesKey:([BI)[B
invokespecial javax.crypto.spec.DESKeySpec.<init>:([B)V
astore 6
start local 6 8: aload 0
getfield com.sun.security.ntlm.NTLM.fac:Ljavax/crypto/SecretKeyFactory;
aload 5
invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
astore 7
start local 7 9: aload 0
getfield com.sun.security.ntlm.NTLM.fac:Ljavax/crypto/SecretKeyFactory;
aload 6
invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
astore 8
start local 8 10: aload 0
getfield com.sun.security.ntlm.NTLM.cipher:Ljavax/crypto/Cipher;
iconst_1
aload 7
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
11: aload 0
getfield com.sun.security.ntlm.NTLM.cipher:Ljavax/crypto/Cipher;
aload 2
iconst_0
bipush 8
invokevirtual javax.crypto.Cipher.doFinal:([BII)[B
astore 9
start local 9 12: aload 0
getfield com.sun.security.ntlm.NTLM.cipher:Ljavax/crypto/Cipher;
iconst_1
aload 8
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
13: aload 0
getfield com.sun.security.ntlm.NTLM.cipher:Ljavax/crypto/Cipher;
aload 2
iconst_0
bipush 8
invokevirtual javax.crypto.Cipher.doFinal:([BII)[B
astore 10
start local 10 14: bipush 21
newarray 8
astore 11
start local 11 15: aload 9
iconst_0
aload 11
iconst_0
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
16: aload 10
iconst_0
aload 11
bipush 8
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
17: aload 11
18: areturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 19: StackMap locals:
StackMap stack: java.security.InvalidKeyException
pop
20: getstatic com.sun.security.ntlm.NTLM.$assertionsDisabled:Z
ifne 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
21: StackMap locals:
StackMap stack: java.security.spec.InvalidKeySpecException
pop
22: getstatic com.sun.security.ntlm.NTLM.$assertionsDisabled:Z
ifne 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
23: StackMap locals:
StackMap stack: javax.crypto.IllegalBlockSizeException
pop
24: getstatic com.sun.security.ntlm.NTLM.$assertionsDisabled:Z
ifne 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
25: StackMap locals:
StackMap stack: javax.crypto.BadPaddingException
pop
26: getstatic com.sun.security.ntlm.NTLM.$assertionsDisabled:Z
ifne 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
27: StackMap locals:
StackMap stack:
aconst_null
areturn
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 Lcom/sun/security/ntlm/NTLM;
0 28 1 pwb [B
1 28 2 magic [B
2 28 3 pwb1 [B
3 28 4 len I
7 19 5 dks1 Ljavax/crypto/spec/DESKeySpec;
8 19 6 dks2 Ljavax/crypto/spec/DESKeySpec;
9 19 7 key1 Ljavax/crypto/SecretKey;
10 19 8 key2 Ljavax/crypto/SecretKey;
12 19 9 out1 [B
14 19 10 out2 [B
15 19 11 result [B
Exception table:
from to target type
6 18 19 Class java.security.InvalidKeyException
6 18 21 Class java.security.spec.InvalidKeySpecException
6 18 23 Class javax.crypto.IllegalBlockSizeException
6 18 25 Class javax.crypto.BadPaddingException
MethodParameters:
Name Flags
pwb
byte[] calcNTHash(byte[]);
descriptor: ([B)[B
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.security.ntlm.NTLM.md4:Ljava/security/MessageDigest;
aload 1
invokevirtual java.security.MessageDigest.digest:([B)[B
astore 2
start local 2 1: bipush 21
newarray 8
astore 3
start local 3 2: aload 2
iconst_0
aload 3
iconst_0
bipush 16
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/security/ntlm/NTLM;
0 4 1 pw [B
1 4 2 out [B
2 4 3 result [B
MethodParameters:
Name Flags
pw
byte[] calcResponse(byte[], byte[]);
descriptor: ([B[B)[B
flags: (0x0000)
Code:
stack=5, locals=13, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.sun.security.ntlm.NTLM.$assertionsDisabled:Z
ifne 1
aload 1
arraylength
bipush 21
if_icmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
new javax.crypto.spec.DESKeySpec
dup
aload 0
aload 1
iconst_0
invokevirtual com.sun.security.ntlm.NTLM.makeDesKey:([BI)[B
invokespecial javax.crypto.spec.DESKeySpec.<init>:([B)V
astore 3
start local 3 2: new javax.crypto.spec.DESKeySpec
dup
aload 0
aload 1
bipush 7
invokevirtual com.sun.security.ntlm.NTLM.makeDesKey:([BI)[B
invokespecial javax.crypto.spec.DESKeySpec.<init>:([B)V
astore 4
start local 4 3: new javax.crypto.spec.DESKeySpec
dup
aload 0
aload 1
bipush 14
invokevirtual com.sun.security.ntlm.NTLM.makeDesKey:([BI)[B
invokespecial javax.crypto.spec.DESKeySpec.<init>:([B)V
astore 5
start local 5 4: aload 0
getfield com.sun.security.ntlm.NTLM.fac:Ljavax/crypto/SecretKeyFactory;
aload 3
invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
astore 6
start local 6 5: aload 0
getfield com.sun.security.ntlm.NTLM.fac:Ljavax/crypto/SecretKeyFactory;
aload 4
invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
astore 7
start local 7 6: aload 0
getfield com.sun.security.ntlm.NTLM.fac:Ljavax/crypto/SecretKeyFactory;
aload 5
invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
astore 8
start local 8 7: aload 0
getfield com.sun.security.ntlm.NTLM.cipher:Ljavax/crypto/Cipher;
iconst_1
aload 6
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
8: aload 0
getfield com.sun.security.ntlm.NTLM.cipher:Ljavax/crypto/Cipher;
aload 2
iconst_0
bipush 8
invokevirtual javax.crypto.Cipher.doFinal:([BII)[B
astore 9
start local 9 9: aload 0
getfield com.sun.security.ntlm.NTLM.cipher:Ljavax/crypto/Cipher;
iconst_1
aload 7
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
10: aload 0
getfield com.sun.security.ntlm.NTLM.cipher:Ljavax/crypto/Cipher;
aload 2
iconst_0
bipush 8
invokevirtual javax.crypto.Cipher.doFinal:([BII)[B
astore 10
start local 10 11: aload 0
getfield com.sun.security.ntlm.NTLM.cipher:Ljavax/crypto/Cipher;
iconst_1
aload 8
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
12: aload 0
getfield com.sun.security.ntlm.NTLM.cipher:Ljavax/crypto/Cipher;
aload 2
iconst_0
bipush 8
invokevirtual javax.crypto.Cipher.doFinal:([BII)[B
astore 11
start local 11 13: bipush 24
newarray 8
astore 12
start local 12 14: aload 9
iconst_0
aload 12
iconst_0
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
15: aload 10
iconst_0
aload 12
bipush 8
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
16: aload 11
iconst_0
aload 12
bipush 16
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
17: aload 12
18: 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 19: StackMap locals:
StackMap stack: javax.crypto.IllegalBlockSizeException
pop
20: getstatic com.sun.security.ntlm.NTLM.$assertionsDisabled:Z
ifne 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
21: StackMap locals:
StackMap stack: javax.crypto.BadPaddingException
pop
22: getstatic com.sun.security.ntlm.NTLM.$assertionsDisabled:Z
ifne 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
23: StackMap locals:
StackMap stack: java.security.spec.InvalidKeySpecException
pop
24: getstatic com.sun.security.ntlm.NTLM.$assertionsDisabled:Z
ifne 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
25: StackMap locals:
StackMap stack: java.security.InvalidKeyException
pop
26: getstatic com.sun.security.ntlm.NTLM.$assertionsDisabled:Z
ifne 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
27: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lcom/sun/security/ntlm/NTLM;
0 28 1 key [B
0 28 2 text [B
2 19 3 dks1 Ljavax/crypto/spec/DESKeySpec;
3 19 4 dks2 Ljavax/crypto/spec/DESKeySpec;
4 19 5 dks3 Ljavax/crypto/spec/DESKeySpec;
5 19 6 key1 Ljavax/crypto/SecretKey;
6 19 7 key2 Ljavax/crypto/SecretKey;
7 19 8 key3 Ljavax/crypto/SecretKey;
9 19 9 out1 [B
11 19 10 out2 [B
13 19 11 out3 [B
14 19 12 result [B
Exception table:
from to target type
0 18 19 Class javax.crypto.IllegalBlockSizeException
0 18 21 Class javax.crypto.BadPaddingException
0 18 23 Class java.security.spec.InvalidKeySpecException
0 18 25 Class java.security.InvalidKeyException
MethodParameters:
Name Flags
key
text
byte[] hmacMD5(byte[], byte[]);
descriptor: ([B[B)[B
flags: (0x0000)
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new javax.crypto.spec.SecretKeySpec
dup
aload 1
bipush 16
invokestatic java.util.Arrays.copyOf:([BI)[B
ldc "HmacMD5"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
1: astore 3
start local 3 2: aload 0
getfield com.sun.security.ntlm.NTLM.hmac:Ljavax/crypto/Mac;
aload 3
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
3: aload 0
getfield com.sun.security.ntlm.NTLM.hmac:Ljavax/crypto/Mac;
aload 2
invokevirtual javax.crypto.Mac.doFinal:([B)[B
4: areturn
end local 3 5: StackMap locals:
StackMap stack: java.security.InvalidKeyException
pop
6: getstatic com.sun.security.ntlm.NTLM.$assertionsDisabled:Z
ifne 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals:
StackMap stack: java.lang.RuntimeException
pop
8: getstatic com.sun.security.ntlm.NTLM.$assertionsDisabled:Z
ifne 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/security/ntlm/NTLM;
0 10 1 key [B
0 10 2 text [B
2 5 3 skey Ljavax/crypto/spec/SecretKeySpec;
Exception table:
from to target type
0 4 5 Class java.security.InvalidKeyException
0 4 7 Class java.lang.RuntimeException
MethodParameters:
Name Flags
key
text
byte[] calcV2(byte[], java.lang.String, byte[], byte[]);
descriptor: ([BLjava/lang/String;[B[B)[B
flags: (0x0000)
Code:
stack=5, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
getstatic java.nio.charset.StandardCharsets.UTF_16LE:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokevirtual com.sun.security.ntlm.NTLM.hmacMD5:([B[B)[B
astore 5
start local 5 1: aload 3
arraylength
bipush 8
iadd
newarray 8
astore 6
start local 6 2: aload 4
iconst_0
aload 6
iconst_0
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: aload 3
iconst_0
aload 6
bipush 8
aload 3
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: bipush 16
aload 3
arraylength
iadd
newarray 8
astore 7
start local 7 5: aload 0
aload 5
aload 6
invokevirtual com.sun.security.ntlm.NTLM.hmacMD5:([B[B)[B
iconst_0
aload 7
iconst_0
bipush 16
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: aload 3
iconst_0
aload 7
bipush 16
aload 3
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
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 Lcom/sun/security/ntlm/NTLM;
0 8 1 nthash [B
0 8 2 text Ljava/lang/String;
0 8 3 blob [B
0 8 4 challenge [B
1 8 5 ntlmv2hash [B
2 8 6 cn [B
5 8 7 result [B
MethodParameters:
Name Flags
nthash
text
blob
challenge
static byte[] ntlm2LM(byte[]);
descriptor: ([B)[B
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
bipush 24
invokestatic java.util.Arrays.copyOf:([BI)[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 nonce [B
MethodParameters:
Name Flags
nonce
byte[] ntlm2NTLM(byte[], byte[], byte[]);
descriptor: ([B[B[B)[B
flags: (0x0000)
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
bipush 16
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 4
start local 4 1: aload 2
iconst_0
aload 4
bipush 8
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: aload 0
getfield com.sun.security.ntlm.NTLM.md5:Ljava/security/MessageDigest;
aload 4
invokevirtual java.security.MessageDigest.digest:([B)[B
bipush 8
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 5
start local 5 3: aload 0
aload 1
aload 5
invokevirtual com.sun.security.ntlm.NTLM.calcResponse:([B[B)[B
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 4 0 this Lcom/sun/security/ntlm/NTLM;
0 4 1 ntlmHash [B
0 4 2 nonce [B
0 4 3 challenge [B
1 4 4 b [B
3 4 5 sesshash [B
MethodParameters:
Name Flags
ntlmHash
nonce
challenge
static byte[] getP1(char[]);
descriptor: ([C)[B
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.String
dup
aload 0
invokespecial java.lang.String.<init>:([C)V
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
1: getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 password [C
MethodParameters:
Name Flags
password
static byte[] getP2(char[]);
descriptor: ([C)[B
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.String
dup
aload 0
invokespecial java.lang.String.<init>:([C)V
getstatic java.nio.charset.StandardCharsets.UTF_16LE:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 password [C
MethodParameters:
Name Flags
password
}
SourceFile: "NTLM.java"
NestMembers:
com.sun.security.ntlm.NTLM$Reader com.sun.security.ntlm.NTLM$Writer
InnerClasses:
Reader = com.sun.security.ntlm.NTLM$Reader of com.sun.security.ntlm.NTLM
Writer = com.sun.security.ntlm.NTLM$Writer of com.sun.security.ntlm.NTLM