final class com.microsoft.sqlserver.jdbc.NTLMAuthentication extends com.microsoft.sqlserver.jdbc.SSPIAuthentication
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.microsoft.sqlserver.jdbc.NTLMAuthentication
super_class: com.microsoft.sqlserver.jdbc.SSPIAuthentication
{
private final java.util.logging.Logger logger;
descriptor: Ljava/util/logging/Logger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final byte[] ;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int NTLM_MESSAGE_TYPE_NEGOTIATE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int NTLM_MESSAGE_TYPE_CHALLENGE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int NTLM_MESSAGE_TYPE_AUTHENTICATE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final byte[] NTLM_CLIENT_CHALLENGE_RESPONSE_TYPE;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] NTLM_CLIENT_CHALLENGE_RESERVED1;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] NTLM_CLIENT_CHALLENGE_RESERVED2;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] NTLM_CLIENT_CHALLENGE_RESERVED3;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] NTLM_LMCHALLENAGERESPONSE;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] NTLMSSP_VERSION;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long NTLMSSP_NEGOTIATE_UNICODE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final long NTLMSSP_REQUEST_TARGET;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final long NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4096
private static final long NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8192
private static final long NTLMSSP_NEGOTIATE_TARGET_INFO;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8388608
private static final long NTLMSSP_NEGOTIATE_ALWAYS_SIGN;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32768
private static final long NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 524288
private static final short NTLM_AVID_MSVAVEOL;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final short NTLM_AVID_MSVAVNBCOMPUTERNAME;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final short NTLM_AVID_MSVAVNBDOMAINNAME;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final short NTLM_AVID_MSVAVDNSCOMPUTERNAME;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final short NTLM_AVID_MSVAVDNSDOMAINNAME;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final short NTLM_AVID_MSVAVDNSTREENAME;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final short NTLM_AVID_MSVAVFLAGS;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 6
private static final short NTLM_AVID_MSVAVTIMESTAMP;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
private static final short NTLM_AVID_MSVAVSINGLEHOST;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final short NTLM_AVID_MSVAVTARGETNAME;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 9
private static final int NTLM_AVID_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int NTLM_AVLEN_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int NTLM_AVFLAG_VALUE_MIC;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int NTLM_MIC_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int NTLM_AVID_MSVAVFLAGS_LEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int NTLM_NEGOTIATE_PAYLOAD_OFFSET;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final int NTLM_AUTHENTICATE_PAYLOAD_OFFSET;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 88
private static final int NTLM_CLIENT_NONCE_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int NTLM_SERVER_CHALLENGE_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int NTLM_TIMESTAMP_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final long WINDOWS_EPOCH_DIFF;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 11644473600
private com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext context;
descriptor: Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 8
newarray 8
dup
iconst_0
bipush 78
bastore
dup
iconst_1
bipush 84
bastore
dup
iconst_2
bipush 76
bastore
dup
iconst_3
bipush 77
bastore
dup
iconst_4
bipush 83
bastore
dup
iconst_5
bipush 83
bastore
dup
bipush 6
bipush 80
bastore
putstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_HEADER_SIGNATURE:[B
1: iconst_2
newarray 8
dup
iconst_0
iconst_1
bastore
dup
iconst_1
iconst_1
bastore
putstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_CLIENT_CHALLENGE_RESPONSE_TYPE:[B
2: iconst_2
newarray 8
putstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_CLIENT_CHALLENGE_RESERVED1:[B
3: iconst_4
newarray 8
putstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_CLIENT_CHALLENGE_RESERVED2:[B
4: iconst_4
newarray 8
putstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_CLIENT_CHALLENGE_RESERVED3:[B
5: bipush 24
newarray 8
putstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_LMCHALLENAGERESPONSE:[B
6: bipush 8
newarray 8
putstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLMSSP_VERSION:[B
7: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.microsoft.sqlserver.jdbc.SQLServerConnection, java.lang.String, java.lang.String, byte[], java.lang.String);
descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;Ljava/lang/String;[BLjava/lang/String;)V
flags: (0x0000)
Code:
stack=9, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial com.microsoft.sqlserver.jdbc.SSPIAuthentication.<init>:()V
1: aload 0
2: ldc "com.microsoft.sqlserver.jdbc.internals.NTLMAuthentication"
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.logger:Ljava/util/logging/Logger;
3: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
4: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
ifnonnull 6
5: aload 0
new com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext
dup
aload 0
aload 1
aload 2
aload 3
aload 4
aload 5
invokespecial com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.<init>:(Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;Ljava/lang/String;[BLjava/lang/String;)V
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
6: StackMap locals: com.microsoft.sqlserver.jdbc.NTLMAuthentication com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String java.lang.String byte[] java.lang.String
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
0 7 1 con Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
0 7 2 domainName Ljava/lang/String;
0 7 3 userName Ljava/lang/String;
0 7 4 passwordHash [B
0 7 5 workstation Ljava/lang/String;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
con final
domainName final
userName final
passwordHash final
workstation final
byte[] generateClientContext(byte[], boolean[]);
descriptor: ([B[Z)[B
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.initializeSecurityContext:([B[Z)[B
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
0 1 1 inToken [B
0 1 2 done [Z
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
inToken final
done final
void releaseClientContext();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
private void parseNtlmChallenge(byte[]);
descriptor: ([B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=15, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
astore 2
start local 2 1: getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_HEADER_SIGNATURE:[B
arraylength
newarray 8
astore 3
start local 3 2: aload 2
aload 3
invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
pop
3: aload 3
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_HEADER_SIGNATURE:[B
invokestatic java.util.Arrays.equals:([B[B)Z
ifne 7
4: new java.text.MessageFormat
dup
ldc "R_ntlmSignatureError"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 4
start local 4 5: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
astore 5
start local 5 6: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 4
aload 5
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
aconst_null
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 end local 4 7: StackMap locals: java.nio.ByteBuffer byte[]
StackMap stack:
aload 2
invokevirtual java.nio.ByteBuffer.getInt:()I
istore 4
start local 4 8: iload 4
iconst_2
if_icmpeq 12
9: new java.text.MessageFormat
dup
ldc "R_ntlmMessageTypeError"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 5
start local 5 10: iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
astore 6
start local 6 11: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 5
aload 6
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
aconst_null
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 end local 5 12: StackMap locals: int
StackMap stack:
aload 2
invokevirtual java.nio.ByteBuffer.getShort:()S
istore 5
start local 5 13: aload 2
invokevirtual java.nio.ByteBuffer.getShort:()S
pop
14: aload 2
invokevirtual java.nio.ByteBuffer.getInt:()I
pop
15: aload 2
invokevirtual java.nio.ByteBuffer.getInt:()I
pop
16: aload 2
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.serverChallenge:[B
invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
pop
17: aload 2
invokevirtual java.nio.ByteBuffer.getLong:()J
pop2
18: aload 2
invokevirtual java.nio.ByteBuffer.getShort:()S
istore 6
start local 6 19: aload 2
invokevirtual java.nio.ByteBuffer.getShort:()S
pop
20: aload 2
invokevirtual java.nio.ByteBuffer.getInt:()I
pop
21: aload 2
invokevirtual java.nio.ByteBuffer.getLong:()J
pop2
22: iload 5
newarray 8
astore 7
start local 7 23: aload 2
aload 7
invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
pop
24: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
iload 6
newarray 8
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.targetInfo:[B
25: aload 2
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.targetInfo:[B
invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
pop
26: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.targetInfo:[B
arraylength
ifne 28
27: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_ntlmNoTargetInfo"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aconst_null
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
28: StackMap locals: int int byte[]
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.targetInfo:[B
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
astore 8
start local 8 29: iconst_0
istore 9
start local 9 30: iconst_0
istore 10
start local 10 31: goto 48
32: StackMap locals: java.nio.ByteBuffer int int
StackMap stack:
aload 8
invokevirtual java.nio.ByteBuffer.getShort:()S
istore 11
start local 11 33: aload 8
invokevirtual java.nio.ByteBuffer.getShort:()S
newarray 8
astore 12
start local 12 34: aload 8
aload 12
invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
pop
35: iload 11
tableswitch { // 0 - 9
0: 40
1: 42
2: 42
3: 42
4: 42
5: 42
6: 42
7: 36
8: 42
9: 42
default: 43
}
36: StackMap locals: int byte[]
StackMap stack:
aload 12
arraylength
ifle 46
37: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
bipush 8
newarray 8
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.timestamp:[B
38: aload 12
iconst_0
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.timestamp:[B
iconst_0
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
39: goto 46
40: StackMap locals:
StackMap stack:
iconst_1
istore 9
41: goto 46
42: StackMap locals:
StackMap stack:
goto 46
43: StackMap locals:
StackMap stack:
new java.text.MessageFormat
dup
ldc "R_ntlmUnknownValue"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 13
start local 13 44: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 12
aastore
astore 14
start local 14 45: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 13
aload 14
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
aconst_null
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 14 end local 13 46: StackMap locals:
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 48
47: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.logger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " NTLM Challenge Message target info: AvId "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 11
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
end local 12 end local 11 48: StackMap locals:
StackMap stack:
iload 10
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.targetInfo:[B
arraylength
if_icmpge 49
iload 9
ifeq 32
end local 10 49: StackMap locals:
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.timestamp:[B
ifnull 50
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.timestamp:[B
arraylength
ifgt 53
50: StackMap locals:
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 55
51: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.logger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " NTLM Challenge Message target info error: Missing timestamp."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.warning:(Ljava/lang/String;)V
52: goto 55
53: StackMap locals:
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
aload 1
arraylength
newarray 8
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.challengeMsg:[B
54: aload 1
iconst_0
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.challengeMsg:[B
iconst_0
aload 1
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
55: StackMap locals:
StackMap stack:
return
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 56 0 this Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
0 56 1 inToken [B
1 56 2 token Ljava/nio/ByteBuffer;
2 56 3 signature [B
5 7 4 form Ljava/text/MessageFormat;
6 7 5 msgArgs [Ljava/lang/Object;
8 56 4 messageType I
10 12 5 form Ljava/text/MessageFormat;
11 12 6 msgArgs [Ljava/lang/Object;
13 56 5 targetNameLen I
19 56 6 targetInfoLen I
23 56 7 targetName [B
29 56 8 targetInfoBuf Ljava/nio/ByteBuffer;
30 56 9 done Z
31 49 10 i I
33 48 11 id I
34 48 12 value [B
44 46 13 form Ljava/text/MessageFormat;
45 46 14 msgArgs [Ljava/lang/Object;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
inToken final
private byte[] initializeSecurityContext(byte[], boolean[]);
descriptor: ([B[Z)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 1
aload 1
arraylength
ifne 2
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.generateNtlmNegotiate:()[B
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.parseNtlmChallenge:([B)V
3: aload 2
iconst_0
iconst_1
bastore
4: aload 0
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.generateNtlmAuthenticate:()[B
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
0 5 1 inToken [B
0 5 2 done [Z
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
inToken final
done final
private byte[] generateClientChallengeBlob(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: bipush 8
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
astore 2
start local 2 1: aload 2
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
invokestatic java.time.Instant.now:()Ljava/time/Instant;
invokevirtual java.time.Instant.getEpochSecond:()J
ldc 11644473600
ladd
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
ldc 100
ldiv
invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
pop
2: aload 2
invokevirtual java.nio.ByteBuffer.array:()[B
astore 3
start local 3 3: getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_CLIENT_CHALLENGE_RESPONSE_TYPE:[B
arraylength
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_CLIENT_CHALLENGE_RESERVED1:[B
arraylength
iadd
4: getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_CLIENT_CHALLENGE_RESERVED2:[B
arraylength
5: iadd
6: aload 3
arraylength
7: iadd
8: bipush 8
9: iadd
10: getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_CLIENT_CHALLENGE_RESERVED3:[B
arraylength
11: iadd
12: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.targetInfo:[B
arraylength
13: iadd
14: iconst_2
15: iadd
16: iconst_2
17: iadd
18: iconst_4
19: iadd
20: iconst_2
21: iadd
22: iconst_2
23: iadd
24: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.spnUbytes:[B
arraylength
25: iadd
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
26: getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
27: astore 4
start local 4 28: aload 4
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_CLIENT_CHALLENGE_RESPONSE_TYPE:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
29: aload 4
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_CLIENT_CHALLENGE_RESERVED1:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
30: aload 4
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_CLIENT_CHALLENGE_RESERVED2:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
31: aload 4
aload 3
iconst_0
bipush 8
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
32: aload 4
aload 1
iconst_0
bipush 8
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
33: aload 4
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_CLIENT_CHALLENGE_RESERVED3:[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
34: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.timestamp:[B
ifnull 35
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.timestamp:[B
arraylength
ifgt 41
35: StackMap locals: java.nio.ByteBuffer byte[] java.nio.ByteBuffer
StackMap stack:
aload 4
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.targetInfo:[B
iconst_0
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.targetInfo:[B
arraylength
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
36: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 45
37: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.logger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
38: ldc " MsvAvTimestamp not recieved from SQL Server in Challenge Message. MIC field will not be set."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
39: invokevirtual java.util.logging.Logger.warning:(Ljava/lang/String;)V
40: goto 45
41: StackMap locals:
StackMap stack:
aload 4
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.targetInfo:[B
iconst_0
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.targetInfo:[B
arraylength
iconst_2
isub
iconst_2
isub
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
42: aload 4
bipush 6
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
43: aload 4
iconst_4
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
44: aload 4
iconst_2
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
45: StackMap locals:
StackMap stack:
aload 4
bipush 9
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
46: aload 4
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.spnUbytes:[B
arraylength
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
47: aload 4
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.spnUbytes:[B
iconst_0
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.spnUbytes:[B
arraylength
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
48: aload 4
iconst_0
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
49: aload 4
iconst_0
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
50: aload 4
invokevirtual java.nio.ByteBuffer.array:()[B
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 51 0 this Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
0 51 1 clientNonce [B
1 51 2 time Ljava/nio/ByteBuffer;
3 51 3 currentTime [B
28 51 4 token Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
clientNonce final
private byte[] hmacMD5(byte[], byte[]);
descriptor: ([B[B)[B
flags: (0x0002) ACC_PRIVATE
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
ldc "HmacMD5"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 3
start local 3 1: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.mac:Ljavax/crypto/Mac;
aload 3
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
2: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.mac:Ljavax/crypto/Mac;
aload 2
invokevirtual javax.crypto.Mac.doFinal:([B)[B
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
0 3 1 key [B
0 3 2 data [B
1 3 3 keySpec Ljavax/crypto/spec/SecretKeySpec;
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
key final
data final
private static byte[] md4(byte[]);
descriptor: ([B)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: new mssql.security.provider.MD4
dup
invokespecial mssql.security.provider.MD4.<init>:()V
astore 1
start local 1 1: aload 1
invokevirtual mssql.security.provider.MD4.reset:()V
2: aload 1
aload 0
invokevirtual mssql.security.provider.MD4.update:([B)V
3: aload 1
invokevirtual mssql.security.provider.MD4.digest:()[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 str [B
1 4 1 md Lmssql/security/provider/MD4;
MethodParameters:
Name Flags
str final
private static byte[] unicode(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnull 1
aload 0
getstatic java.nio.charset.StandardCharsets.UTF_16LE:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: byte[]
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 str Ljava/lang/String;
MethodParameters:
Name Flags
str final
private byte[] concat(byte[], byte[]);
descriptor: ([B[B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 1
aload 2
ifnonnull 2
1: StackMap locals:
StackMap stack:
aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 1
arraylength
aload 2
arraylength
iadd
newarray 8
astore 3
start local 3 3: aload 1
iconst_0
aload 3
iconst_0
aload 1
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: aload 2
iconst_0
aload 3
aload 1
arraylength
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
0 6 1 arr1 [B
0 6 2 arr2 [B
3 6 3 temp [B
MethodParameters:
Name Flags
arr1 final
arr2 final
private int getByteArrayLength(byte[]);
descriptor: ([B)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: aload 1
arraylength
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
0 3 1 arr [B
MethodParameters:
Name Flags
arr
private byte[] ntowfv2();
descriptor: ()[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.passwordHash:[B
1: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.upperUserName:Ljava/lang/String;
ifnull 2
new java.lang.StringBuilder
dup
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.upperUserName:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.domainName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.unicode:(Ljava/lang/String;)[B
goto 3
2: StackMap locals: com.microsoft.sqlserver.jdbc.NTLMAuthentication
StackMap stack: com.microsoft.sqlserver.jdbc.NTLMAuthentication byte[]
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.domainName:Ljava/lang/String;
invokestatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.unicode:(Ljava/lang/String;)[B
3: StackMap locals: com.microsoft.sqlserver.jdbc.NTLMAuthentication
StackMap stack: com.microsoft.sqlserver.jdbc.NTLMAuthentication byte[] byte[]
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.hmacMD5:([B[B)[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
Exceptions:
throws java.security.InvalidKeyException
private byte[] computeResponse(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: bipush 8
newarray 8
astore 2
start local 2 1: invokestatic java.util.concurrent.ThreadLocalRandom.current:()Ljava/util/concurrent/ThreadLocalRandom;
aload 2
invokevirtual java.util.concurrent.ThreadLocalRandom.nextBytes:([B)V
2: aload 0
aload 2
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.generateClientChallengeBlob:([B)[B
astore 3
start local 3 3: aload 0
aload 1
aload 0
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.serverChallenge:[B
aload 3
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.concat:([B[B)[B
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.hmacMD5:([B[B)[B
astore 4
start local 4 4: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
aload 0
aload 1
aload 4
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.hmacMD5:([B[B)[B
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.sessionBaseKey:[B
5: aload 0
aload 4
aload 3
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.concat:([B[B)[B
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
0 6 1 responseKeyNT [B
1 6 2 clientNonce [B
3 6 3 temp [B
4 6 4 ntProofStr [B
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
responseKeyNT final
private byte[] getNtChallengeResp();
descriptor: ()[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.ntowfv2:()[B
astore 1
start local 1 1: aload 0
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.computeResponse:([B)[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
1 2 1 responseKeyNT [B
Exceptions:
throws java.security.InvalidKeyException
private byte[] generateNtlmAuthenticate();
descriptor: ()[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=13, args_size=1
start local 0 0: aload 0
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.domainUbytes:[B
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.getByteArrayLength:([B)I
istore 1
start local 1 1: aload 0
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.userNameUbytes:[B
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.getByteArrayLength:([B)I
istore 2
start local 2 2: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.workstation:Ljava/lang/String;
invokestatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.unicode:(Ljava/lang/String;)[B
astore 3
start local 3 3: aload 0
aload 3
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.getByteArrayLength:([B)I
istore 4
start local 4 4: aconst_null
astore 5
start local 5 5: aload 0
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.getNtChallengeResp:()[B
astore 6
start local 6 6: aload 0
aload 6
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.getByteArrayLength:([B)I
istore 7
start local 7 7: bipush 88
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_LMCHALLENAGERESPONSE:[B
arraylength
iadd
8: iload 7
9: iadd
10: iload 1
11: iadd
12: iload 2
13: iadd
14: iload 4
15: iadd
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
16: getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
17: astore 8
start local 8 18: aload 8
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_HEADER_SIGNATURE:[B
iconst_0
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_HEADER_SIGNATURE:[B
arraylength
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
19: aload 8
iconst_3
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
20: bipush 88
istore 9
start local 9 21: aload 8
iconst_0
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
22: aload 8
iconst_0
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
23: aload 8
iload 9
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
24: iload 9
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_LMCHALLENAGERESPONSE:[B
arraylength
iadd
istore 9
25: aload 8
iload 7
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
26: aload 8
iload 7
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
27: aload 8
iload 9
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
28: iload 9
iload 7
iadd
istore 9
29: aload 8
iload 1
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
30: aload 8
iload 1
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
31: aload 8
iload 9
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
32: iload 9
iload 1
iadd
istore 9
33: aload 8
iload 2
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
34: aload 8
iload 2
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
35: aload 8
iload 9
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
36: iload 9
iload 2
iadd
istore 9
37: aload 8
iload 4
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
38: aload 8
iload 4
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
39: aload 8
iload 9
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
40: iload 9
iload 4
iadd
istore 9
41: aload 8
iconst_0
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
42: aload 8
iconst_0
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
43: aload 8
iload 9
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
44: aload 8
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.negotiateFlags:J
l2i
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
45: aload 8
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLMSSP_VERSION:[B
iconst_0
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLMSSP_VERSION:[B
arraylength
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
46: bipush 16
newarray 8
astore 10
start local 10 47: aload 8
invokevirtual java.nio.ByteBuffer.position:()I
istore 11
start local 11 48: aload 8
aload 10
iconst_0
bipush 16
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
49: aload 8
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_LMCHALLENAGERESPONSE:[B
iconst_0
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_LMCHALLENAGERESPONSE:[B
arraylength
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
50: aload 8
aload 6
iconst_0
iload 7
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
51: aload 8
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.domainUbytes:[B
iconst_0
iload 1
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
52: aload 8
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.userNameUbytes:[B
iconst_0
iload 2
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
53: aload 8
aload 3
iconst_0
iload 4
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
54: aload 8
invokevirtual java.nio.ByteBuffer.array:()[B
astore 5
55: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.timestamp:[B
ifnull 67
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.timestamp:[B
arraylength
ifle 67
56: new javax.crypto.spec.SecretKeySpec
dup
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.sessionBaseKey:[B
ldc "HmacMD5"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
astore 12
start local 12 57: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.mac:Ljavax/crypto/Mac;
aload 12
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
58: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.mac:Ljavax/crypto/Mac;
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.negotiateMsg:[B
invokevirtual javax.crypto.Mac.update:([B)V
59: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.mac:Ljavax/crypto/Mac;
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.challengeMsg:[B
invokevirtual javax.crypto.Mac.update:([B)V
60: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.mac:Ljavax/crypto/Mac;
aload 5
invokevirtual javax.crypto.Mac.doFinal:([B)[B
astore 10
61: aload 10
iconst_0
aload 5
iload 11
bipush 16
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 62: goto 67
StackMap locals: com.microsoft.sqlserver.jdbc.NTLMAuthentication int int byte[] int byte[]
StackMap stack: java.security.InvalidKeyException
63: astore 6
start local 6 64: new java.text.MessageFormat
dup
ldc "R_ntlmAuthenticateError"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 7
start local 7 65: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
invokevirtual java.security.InvalidKeyException.getMessage:()Ljava/lang/String;
aastore
astore 8
start local 8 66: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 7
aload 8
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
aload 6
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 8 end local 7 end local 6 67: StackMap locals:
StackMap stack:
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 68 0 this Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
1 68 1 domainNameLen I
2 68 2 userNameLen I
3 68 3 workstationBytes [B
4 68 4 workstationLen I
5 68 5 msg [B
6 62 6 ntChallengeResp [B
7 62 7 ntChallengeLen I
18 62 8 token Ljava/nio/ByteBuffer;
21 62 9 offset I
47 62 10 mic [B
48 62 11 micPosition I
57 62 12 keySpec Ljavax/crypto/spec/SecretKeySpec;
64 67 6 e Ljava/security/InvalidKeyException;
65 67 7 form Ljava/text/MessageFormat;
66 67 8 msgArgs [Ljava/lang/Object;
Exception table:
from to target type
5 62 63 Class java.security.InvalidKeyException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
private byte[] generateNtlmNegotiate();
descriptor: ()[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.domainUbytes:[B
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.getByteArrayLength:([B)I
istore 1
start local 1 1: aload 0
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.workstation:Ljava/lang/String;
invokevirtual java.lang.String.getBytes:()[B
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.getByteArrayLength:([B)I
istore 2
start local 2 2: aconst_null
astore 3
start local 3 3: bipush 32
iload 1
iadd
iload 2
iadd
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
4: getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
5: astore 3
6: aload 3
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_HEADER_SIGNATURE:[B
iconst_0
getstatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.NTLM_HEADER_SIGNATURE:[B
arraylength
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
7: aload 3
iconst_1
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
8: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
ldc 8957957
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.negotiateFlags:J
9: aload 3
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.negotiateFlags:J
l2i
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
10: bipush 32
istore 4
start local 4 11: aload 3
iload 1
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
12: aload 3
iload 1
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
13: aload 3
iload 4
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
14: iload 4
iload 1
iadd
istore 4
15: aload 3
iload 2
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
16: aload 3
iload 2
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
17: aload 3
iload 4
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
18: iload 4
iload 2
iadd
istore 4
19: aload 3
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.domainUbytes:[B
iconst_0
iload 1
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
20: aload 3
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.workstation:Ljava/lang/String;
invokevirtual java.lang.String.getBytes:()[B
iconst_0
iload 2
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
21: aload 3
invokevirtual java.nio.ByteBuffer.array:()[B
astore 5
start local 5 22: aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
aload 5
arraylength
newarray 8
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.negotiateMsg:[B
23: aload 5
iconst_0
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication.context:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.negotiateMsg:[B
iconst_0
aload 5
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
24: 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 25 0 this Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
1 25 1 domainNameLen I
2 25 2 workstationLen I
3 25 3 token Ljava/nio/ByteBuffer;
11 25 4 offset I
22 25 5 msg [B
public static byte[] getNtlmPasswordHash(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_NtlmNoUserPasswordDomain"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aconst_null
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokestatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.unicode:(Ljava/lang/String;)[B
invokestatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.md4:([B)[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 password Ljava/lang/String;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
password
}
SourceFile: "NTLMAuthentication.java"
NestMembers:
com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext
InnerClasses:
private NTLMContext = com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext of com.microsoft.sqlserver.jdbc.NTLMAuthentication