final class com.microsoft.sqlserver.jdbc.AuthenticationJNI 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.AuthenticationJNI
super_class: com.microsoft.sqlserver.jdbc.SSPIAuthentication
{
private static final int maximumpointersize;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 128
private static boolean enabled;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.util.logging.Logger authLogger;
descriptor: Ljava/util/logging/Logger;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static int sspiBlobMaxlen;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private byte[] sniSec;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int[] sniSecLen;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private final java.lang.String dnsName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int port;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.microsoft.sqlserver.jdbc.SQLServerConnection con;
descriptor: Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
flags: (0x0002) ACC_PRIVATE
private static final java.lang.UnsatisfiedLinkError linkError;
descriptor: Ljava/lang/UnsatisfiedLinkError;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, 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=3, locals=3, args_size=0
0: ldc Lcom/microsoft/sqlserver/jdbc/AuthenticationJNI;
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.microsoft.sqlserver.jdbc.AuthenticationJNI.$assertionsDisabled:Z
3: iconst_0
putstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.enabled:Z
4: ldc "com.microsoft.sqlserver.jdbc.internals.AuthenticationJNI"
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
5: putstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.authLogger:Ljava/util/logging/Logger;
6: iconst_0
putstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.sspiBlobMaxlen:I
7: aconst_null
astore 0
start local 0 8: getstatic com.microsoft.sqlserver.jdbc.SQLServerDriver.AUTH_DLL_NAME:Ljava/lang/String;
invokestatic java.lang.System.loadLibrary:(Ljava/lang/String;)V
9: iconst_1
newarray 10
astore 1
start local 1 10: aload 1
iconst_0
iconst_0
iastore
11: aload 1
getstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.authLogger:Ljava/util/logging/Logger;
invokestatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.SNISecInitPackage:([ILjava/util/logging/Logger;)I
ifne 14
12: aload 1
iconst_0
iaload
putstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.sspiBlobMaxlen:I
13: goto 15
14: StackMap locals: java.lang.UnsatisfiedLinkError int[]
StackMap stack:
new java.lang.UnsatisfiedLinkError
dup
invokespecial java.lang.UnsatisfiedLinkError.<init>:()V
athrow
15: StackMap locals:
StackMap stack:
iconst_1
putstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.enabled:Z
end local 1 16: goto 23
StackMap locals: java.lang.UnsatisfiedLinkError
StackMap stack: java.lang.UnsatisfiedLinkError
17: astore 1
start local 1 18: aload 1
astore 0
end local 1 19: aload 0
putstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.linkError:Ljava/lang/UnsatisfiedLinkError;
goto 24
20: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
21: aload 0
putstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.linkError:Ljava/lang/UnsatisfiedLinkError;
22: aload 2
athrow
23: StackMap locals:
StackMap stack:
aload 0
putstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.linkError:Ljava/lang/UnsatisfiedLinkError;
end local 0 24: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
8 24 0 temp Ljava/lang/UnsatisfiedLinkError;
10 16 1 pkg [I
18 19 1 e Ljava/lang/UnsatisfiedLinkError;
Exception table:
from to target type
8 16 17 Class java.lang.UnsatisfiedLinkError
8 19 20 any
static int getMaxSSPIBlobSize();
descriptor: ()I
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.sspiBlobMaxlen:I
ireturn
LocalVariableTable:
Start End Slot Name Signature
static boolean isDllLoaded();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.enabled:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.microsoft.sqlserver.jdbc.SQLServerConnection, java.lang.String, int);
descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;I)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial com.microsoft.sqlserver.jdbc.SSPIAuthentication.<init>:()V
1: aload 0
sipush 128
newarray 8
putfield com.microsoft.sqlserver.jdbc.AuthenticationJNI.sniSec:[B
2: aload 0
iconst_1
newarray 10
putfield com.microsoft.sqlserver.jdbc.AuthenticationJNI.sniSecLen:[I
3: getstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.enabled:Z
ifne 7
4: aload 1
iconst_0
5: ldc "R_notConfiguredForIntegrated"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
getstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.linkError:Ljava/lang/UnsatisfiedLinkError;
6: invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate:(ILjava/lang/String;Ljava/lang/Throwable;)V
7: StackMap locals: com.microsoft.sqlserver.jdbc.AuthenticationJNI com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String int
StackMap stack:
aload 0
aload 1
putfield com.microsoft.sqlserver.jdbc.AuthenticationJNI.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
8: aload 0
aload 2
invokestatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.initDNSArray:(Ljava/lang/String;)Ljava/lang/String;
putfield com.microsoft.sqlserver.jdbc.AuthenticationJNI.dnsName:Ljava/lang/String;
9: aload 0
iload 3
putfield com.microsoft.sqlserver.jdbc.AuthenticationJNI.port:I
10: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/microsoft/sqlserver/jdbc/AuthenticationJNI;
0 11 1 con Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
0 11 2 address Ljava/lang/String;
0 11 3 serverport I
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
con
address
serverport
static com.microsoft.sqlserver.jdbc.FedAuthDllInfo getAccessTokenForWindowsIntegrated(java.lang.String, java.lang.String, java.lang.String, java.lang.String, long);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Lcom/microsoft/sqlserver/jdbc/FedAuthDllInfo;
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
1: aload 2
aload 3
lload 4
getstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.authLogger:Ljava/util/logging/Logger;
2: invokestatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.ADALGetAccessTokenForWindowsIntegrated:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JLjava/util/logging/Logger;)Lcom/microsoft/sqlserver/jdbc/FedAuthDllInfo;
astore 6
start local 6 3: aload 6
areturn
end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 stsURL Ljava/lang/String;
0 4 1 servicePrincipalName Ljava/lang/String;
0 4 2 clientConnectionId Ljava/lang/String;
0 4 3 clientId Ljava/lang/String;
0 4 4 expirationFileTime J
3 4 6 dllInfo Lcom/microsoft/sqlserver/jdbc/FedAuthDllInfo;
Exceptions:
throws com.microsoft.sqlserver.jdbc.DLLException
MethodParameters:
Name Flags
stsURL
servicePrincipalName
clientConnectionId
clientId
expirationFileTime
byte[] generateClientContext(byte[], boolean[]);
descriptor: ([B[Z)[B
flags: (0x0000)
Code:
stack=12, locals=7, args_size=3
start local 0 start local 1 start local 2 0: iconst_1
newarray 10
astore 4
start local 4 1: aload 4
iconst_0
invokestatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.getMaxSSPIBlobSize:()I
iastore
2: aload 4
iconst_0
iaload
newarray 8
astore 3
start local 3 3: getstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.$assertionsDisabled:Z
ifne 4
aload 0
getfield com.microsoft.sqlserver.jdbc.AuthenticationJNI.dnsName:Ljava/lang/String;
ifnonnull 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: byte[] int[]
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.AuthenticationJNI.sniSec:[B
aload 0
getfield com.microsoft.sqlserver.jdbc.AuthenticationJNI.sniSecLen:[I
aload 1
aload 1
arraylength
aload 3
aload 4
aload 2
aload 0
getfield com.microsoft.sqlserver.jdbc.AuthenticationJNI.dnsName:Ljava/lang/String;
aload 0
getfield com.microsoft.sqlserver.jdbc.AuthenticationJNI.port:I
5: aconst_null
aconst_null
getstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.authLogger:Ljava/util/logging/Logger;
6: invokestatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.SNISecGenClientContext:([B[I[BI[B[I[ZLjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/logging/Logger;)I
istore 5
start local 5 7: iload 5
ifeq 13
8: getstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.authLogger: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 10
9: getstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.authLogger: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 " Authentication failed code : "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.warning:(Ljava/lang/String;)V
10: StackMap locals: int
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.AuthenticationJNI.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
iconst_0
11: ldc "R_integratedAuthenticationFailed"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
getstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.linkError:Ljava/lang/UnsatisfiedLinkError;
12: invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate:(ILjava/lang/String;Ljava/lang/Throwable;)V
13: StackMap locals:
StackMap stack:
aload 4
iconst_0
iaload
newarray 8
astore 6
start local 6 14: aload 3
iconst_0
aload 6
iconst_0
aload 4
iconst_0
iaload
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
15: aload 6
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/microsoft/sqlserver/jdbc/AuthenticationJNI;
0 16 1 pin [B
0 16 2 done [Z
3 16 3 pOut [B
1 16 4 outsize [I
7 16 5 failure I
14 16 6 output [B
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
pin
done
void releaseClientContext();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield com.microsoft.sqlserver.jdbc.AuthenticationJNI.sniSecLen:[I
iconst_0
iaload
ifle 4
2: aload 0
getfield com.microsoft.sqlserver.jdbc.AuthenticationJNI.sniSec:[B
aload 0
getfield com.microsoft.sqlserver.jdbc.AuthenticationJNI.sniSecLen:[I
iconst_0
iaload
getstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.authLogger:Ljava/util/logging/Logger;
invokestatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.SNISecReleaseClientContext:([BILjava/util/logging/Logger;)I
istore 1
3: aload 0
getfield com.microsoft.sqlserver.jdbc.AuthenticationJNI.sniSecLen:[I
iconst_0
iconst_0
iastore
4: StackMap locals: int
StackMap stack:
getstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.authLogger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 6
5: getstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.authLogger: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 " Release client context status : "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/microsoft/sqlserver/jdbc/AuthenticationJNI;
1 7 1 success I
private static java.lang.String initDNSArray(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: iconst_1
anewarray java.lang.String
astore 1
start local 1 1: aload 0
aload 1
getstatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.authLogger:Ljava/util/logging/Logger;
invokestatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.GetDNSName:(Ljava/lang/String;[Ljava/lang/String;Ljava/util/logging/Logger;)I
ifeq 3
2: aload 1
iconst_0
aload 0
aastore
3: StackMap locals: java.lang.String[]
StackMap stack:
aload 1
iconst_0
aaload
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 address Ljava/lang/String;
1 4 1 dns [Ljava/lang/String;
MethodParameters:
Name Flags
address
private static native int SNISecGenClientContext(byte[], int[], byte[], int, byte[], int[], boolean[], java.lang.String, int, java.lang.String, java.lang.String, java.util.logging.Logger);
descriptor: ([B[I[BI[B[I[ZLjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/logging/Logger;)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
psec
secptrsize
pin
insize
pOut
outsize
done
servername
port
username
password
log
private static native int SNISecReleaseClientContext(byte[], int, java.util.logging.Logger);
descriptor: ([BILjava/util/logging/Logger;)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
psec
secptrsize
log
private static native int SNISecInitPackage(int[], java.util.logging.Logger);
descriptor: ([ILjava/util/logging/Logger;)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
pcbMaxToken
log
private static native int SNISecTerminatePackage(java.util.logging.Logger);
descriptor: (Ljava/util/logging/Logger;)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
log
private static native int SNIGetSID(byte[], java.util.logging.Logger);
descriptor: ([BLjava/util/logging/Logger;)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
SID
log
private static native boolean SNIIsEqualToCurrentSID(byte[], java.util.logging.Logger);
descriptor: ([BLjava/util/logging/Logger;)Z
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
SID
log
private static native int GetDNSName(java.lang.String, java.lang.String[], java.util.logging.Logger);
descriptor: (Ljava/lang/String;[Ljava/lang/String;Ljava/util/logging/Logger;)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
address
DNSName
log
private static synchronized native com.microsoft.sqlserver.jdbc.FedAuthDllInfo ADALGetAccessTokenForWindowsIntegrated(java.lang.String, java.lang.String, java.lang.String, java.lang.String, long, java.util.logging.Logger);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JLjava/util/logging/Logger;)Lcom/microsoft/sqlserver/jdbc/FedAuthDllInfo;
flags: (0x012a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED, ACC_NATIVE
MethodParameters:
Name Flags
stsURL
servicePrincipalName
clientConnectionId
clientId
expirationFileTime
log
static synchronized native byte[] DecryptColumnEncryptionKey(java.lang.String, java.lang.String, byte[]);
descriptor: (Ljava/lang/String;Ljava/lang/String;[B)[B
flags: (0x0128) ACC_STATIC, ACC_SYNCHRONIZED, ACC_NATIVE
Exceptions:
throws com.microsoft.sqlserver.jdbc.DLLException
MethodParameters:
Name Flags
masterKeyPath
encryptionAlgorithm
encryptedColumnEncryptionKey
static synchronized native boolean VerifyColumnMasterKeyMetadata(java.lang.String, boolean, byte[]);
descriptor: (Ljava/lang/String;Z[B)Z
flags: (0x0128) ACC_STATIC, ACC_SYNCHRONIZED, ACC_NATIVE
Exceptions:
throws com.microsoft.sqlserver.jdbc.DLLException
MethodParameters:
Name Flags
keyPath
allowEnclaveComputations
signature
}
SourceFile: "AuthenticationJNI.java"