class com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext
super_class: java.lang.Object
{
private final java.lang.String domainName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] domainUbytes;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String upperUserName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] userNameUbytes;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] passwordHash;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.String workstation;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private final byte[] spnUbytes;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private javax.crypto.Mac mac;
descriptor: Ljavax/crypto/Mac;
flags: (0x0002) ACC_PRIVATE
private long negotiateFlags;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private byte[] sessionBaseKey;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] timestamp;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] targetInfo;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] serverChallenge;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] negotiateMsg;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] challengeMsg;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
final com.microsoft.sqlserver.jdbc.NTLMAuthentication this$0;
descriptor: Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.microsoft.sqlserver.jdbc.NTLMAuthentication, com.microsoft.sqlserver.jdbc.SQLServerConnection, java.lang.String, java.lang.String, byte[], java.lang.String);
descriptor: (Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;Ljava/lang/String;[BLjava/lang/String;)V
flags: (0x0000)
Code:
stack=4, locals=11, args_size=7
start local 0 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
aload 1
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.this$0:Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication;
1: aload 0
invokespecial java.lang.Object.<init>:()V
2: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.mac:Ljavax/crypto/Mac;
3: aload 0
lconst_0
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.negotiateFlags:J
4: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.sessionBaseKey:[B
5: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.timestamp:[B
6: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.targetInfo:[B
7: aload 0
bipush 8
newarray 8
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.serverChallenge:[B
8: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.negotiateMsg:[B
9: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.challengeMsg:[B
10: aload 0
aload 3
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.domainName:Ljava/lang/String;
11: aload 0
aload 0
getfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.domainName:Ljava/lang/String;
invokestatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.unicode:(Ljava/lang/String;)[B
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.domainUbytes:[B
12: aload 0
aload 4
ifnull 13
aload 4
invokestatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.unicode:(Ljava/lang/String;)[B
goto 14
StackMap locals: com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext com.microsoft.sqlserver.jdbc.NTLMAuthentication com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String java.lang.String byte[] java.lang.String
StackMap stack: com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext
13: aconst_null
StackMap locals: com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext com.microsoft.sqlserver.jdbc.NTLMAuthentication com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String java.lang.String byte[] java.lang.String
StackMap stack: com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext byte[]
14: putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.userNameUbytes:[B
15: aload 0
aload 4
ifnull 16
aload 4
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
goto 17
StackMap locals:
StackMap stack: com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext
16: aconst_null
StackMap locals: com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext com.microsoft.sqlserver.jdbc.NTLMAuthentication com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String java.lang.String byte[] java.lang.String
StackMap stack: com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext java.lang.String
17: putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.upperUserName:Ljava/lang/String;
18: aload 0
aload 5
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.passwordHash:[B
19: aload 0
aload 6
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.workstation:Ljava/lang/String;
20: aload 2
ifnull 21
aload 1
aload 2
invokevirtual com.microsoft.sqlserver.jdbc.NTLMAuthentication.getSpn:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)Ljava/lang/String;
goto 22
StackMap locals:
StackMap stack:
21: aconst_null
StackMap locals:
StackMap stack: java.lang.String
22: astore 7
start local 7 23: aload 0
aload 7
ifnull 24
aload 7
invokestatic com.microsoft.sqlserver.jdbc.NTLMAuthentication.unicode:(Ljava/lang/String;)[B
goto 25
StackMap locals: com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext com.microsoft.sqlserver.jdbc.NTLMAuthentication com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String java.lang.String byte[] java.lang.String java.lang.String
StackMap stack: com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext
24: aconst_null
StackMap locals: com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext com.microsoft.sqlserver.jdbc.NTLMAuthentication com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String java.lang.String byte[] java.lang.String java.lang.String
StackMap stack: com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext byte[]
25: putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.spnUbytes:[B
26: aload 1
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 28
27: aload 1
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 " SPN detected: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
28: StackMap locals:
StackMap stack:
aload 0
ldc "HmacMD5"
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
putfield com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext.mac:Ljavax/crypto/Mac;
29: goto 34
StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
30: astore 8
start local 8 31: new java.text.MessageFormat
dup
ldc "R_ntlmHmacMD5Error"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 9
start local 9 32: iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
dup
iconst_1
aload 8
invokevirtual java.security.NoSuchAlgorithmException.getMessage:()Ljava/lang/String;
aastore
astore 10
start local 10 33: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 9
aload 10
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
aload 8
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 10 end local 9 end local 8 34: StackMap locals:
StackMap stack:
return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lcom/microsoft/sqlserver/jdbc/NTLMAuthentication$NTLMContext;
0 35 2 con Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
0 35 3 domainName Ljava/lang/String;
0 35 4 userName Ljava/lang/String;
0 35 5 passwordHash [B
0 35 6 workstation Ljava/lang/String;
23 35 7 spn Ljava/lang/String;
31 34 8 e Ljava/security/NoSuchAlgorithmException;
32 34 9 form Ljava/text/MessageFormat;
33 34 10 msgArgs [Ljava/lang/Object;
Exception table:
from to target type
28 29 30 Class java.security.NoSuchAlgorithmException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
this$0 final
con final
domainName final
userName final
passwordHash final
workstation final
}
SourceFile: "NTLMAuthentication.java"
NestHost: com.microsoft.sqlserver.jdbc.NTLMAuthentication
InnerClasses:
private NTLMContext = com.microsoft.sqlserver.jdbc.NTLMAuthentication$NTLMContext of com.microsoft.sqlserver.jdbc.NTLMAuthentication