public class com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider implements com.microsoft.sqlserver.jdbc.ISQLServerEnclaveProvider
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider
super_class: java.lang.Object
{
private static com.microsoft.sqlserver.jdbc.EnclaveSessionCache enclaveCache;
descriptor: Lcom/microsoft/sqlserver/jdbc/EnclaveSessionCache;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private com.microsoft.sqlserver.jdbc.VSMAttestationParameters vsmParams;
descriptor: Lcom/microsoft/sqlserver/jdbc/VSMAttestationParameters;
flags: (0x0002) ACC_PRIVATE
private com.microsoft.sqlserver.jdbc.VSMAttestationResponse hgsResponse;
descriptor: Lcom/microsoft/sqlserver/jdbc/VSMAttestationResponse;
flags: (0x0002) ACC_PRIVATE
private java.lang.String attestationUrl;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private com.microsoft.sqlserver.jdbc.EnclaveSession enclaveSession;
descriptor: Lcom/microsoft/sqlserver/jdbc/EnclaveSession;
flags: (0x0002) ACC_PRIVATE
private static java.util.Hashtable<java.lang.String, com.microsoft.sqlserver.jdbc.X509CertificateEntry> certificateCache;
descriptor: Ljava/util/Hashtable;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/Hashtable<Ljava/lang/String;Lcom/microsoft/sqlserver/jdbc/X509CertificateEntry;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new com.microsoft.sqlserver.jdbc.EnclaveSessionCache
dup
invokespecial com.microsoft.sqlserver.jdbc.EnclaveSessionCache.<init>:()V
putstatic com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.enclaveCache:Lcom/microsoft/sqlserver/jdbc/EnclaveSessionCache;
1: new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putstatic com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.certificateCache:Ljava/util/Hashtable;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.vsmParams:Lcom/microsoft/sqlserver/jdbc/VSMAttestationParameters;
2: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.hgsResponse:Lcom/microsoft/sqlserver/jdbc/VSMAttestationResponse;
3: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.attestationUrl:Ljava/lang/String;
4: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.enclaveSession:Lcom/microsoft/sqlserver/jdbc/EnclaveSession;
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerVSMEnclaveProvider;
public void getAttestationParameters(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.vsmParams:Lcom/microsoft/sqlserver/jdbc/VSMAttestationParameters;
ifnonnull 3
1: aload 0
aload 1
putfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.attestationUrl:Ljava/lang/String;
2: aload 0
new com.microsoft.sqlserver.jdbc.VSMAttestationParameters
dup
invokespecial com.microsoft.sqlserver.jdbc.VSMAttestationParameters.<init>:()V
putfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.vsmParams:Lcom/microsoft/sqlserver/jdbc/VSMAttestationParameters;
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerVSMEnclaveProvider;
0 4 1 url Ljava/lang/String;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
url
public java.util.ArrayList<byte[]> createEnclaveSession(com.microsoft.sqlserver.jdbc.SQLServerConnection, java.lang.String, java.lang.String, com.microsoft.sqlserver.jdbc.Parameter[], java.util.ArrayList<java.lang.String>);
descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;Ljava/lang/String;[Lcom/microsoft/sqlserver/jdbc/Parameter;Ljava/util/ArrayList;)Ljava/util/ArrayList;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new java.lang.StringBuilder
dup
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getServerName:()Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getCatalog:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.attestationUrl:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: astore 6
start local 6 3: getstatic com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.enclaveCache:Lcom/microsoft/sqlserver/jdbc/EnclaveSessionCache;
aload 6
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.microsoft.sqlserver.jdbc.EnclaveSessionCache.getSession:(Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/EnclaveCacheEntry;
astore 7
start local 7 4: aload 7
ifnull 7
5: aload 0
aload 7
invokevirtual com.microsoft.sqlserver.jdbc.EnclaveCacheEntry.getEnclaveSession:()Lcom/microsoft/sqlserver/jdbc/EnclaveSession;
putfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.enclaveSession:Lcom/microsoft/sqlserver/jdbc/EnclaveSession;
6: aload 0
aload 7
invokevirtual com.microsoft.sqlserver.jdbc.EnclaveCacheEntry.getBaseAttestationRequest:()Lcom/microsoft/sqlserver/jdbc/BaseAttestationRequest;
checkcast com.microsoft.sqlserver.jdbc.VSMAttestationParameters
putfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.vsmParams:Lcom/microsoft/sqlserver/jdbc/VSMAttestationParameters;
7: StackMap locals: java.lang.StringBuilder com.microsoft.sqlserver.jdbc.EnclaveCacheEntry
StackMap stack:
aload 0
aload 1
aload 2
aload 3
aload 4
8: aload 5
9: invokevirtual com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.describeParameterEncryption:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;Ljava/lang/String;[Lcom/microsoft/sqlserver/jdbc/Parameter;Ljava/util/ArrayList;)Ljava/util/ArrayList;
astore 8
start local 8 10: aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.enclaveEstablished:()Z
ifeq 12
11: aload 8
areturn
12: StackMap locals: java.util.ArrayList
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.hgsResponse:Lcom/microsoft/sqlserver/jdbc/VSMAttestationResponse;
ifnull 22
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.enclaveEstablished:()Z
ifne 22
13: aload 0
new com.microsoft.sqlserver.jdbc.EnclaveSession
dup
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.hgsResponse:Lcom/microsoft/sqlserver/jdbc/VSMAttestationResponse;
invokevirtual com.microsoft.sqlserver.jdbc.VSMAttestationResponse.getSessionID:()[B
14: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.vsmParams:Lcom/microsoft/sqlserver/jdbc/VSMAttestationParameters;
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.hgsResponse:Lcom/microsoft/sqlserver/jdbc/VSMAttestationResponse;
invokevirtual com.microsoft.sqlserver.jdbc.VSMAttestationResponse.getDHpublicKey:()[B
invokevirtual com.microsoft.sqlserver.jdbc.VSMAttestationParameters.createSessionSecret:([B)[B
invokespecial com.microsoft.sqlserver.jdbc.EnclaveSession.<init>:([B[B)V
15: putfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.enclaveSession:Lcom/microsoft/sqlserver/jdbc/EnclaveSession;
16: getstatic com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.enclaveCache:Lcom/microsoft/sqlserver/jdbc/EnclaveSessionCache;
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getServerName:()Ljava/lang/String;
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getCatalog:()Ljava/lang/String;
17: aload 1
getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.enclaveAttestationUrl:Ljava/lang/String;
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.vsmParams:Lcom/microsoft/sqlserver/jdbc/VSMAttestationParameters;
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.enclaveSession:Lcom/microsoft/sqlserver/jdbc/EnclaveSession;
18: invokevirtual com.microsoft.sqlserver.jdbc.EnclaveSessionCache.addEntry:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/microsoft/sqlserver/jdbc/BaseAttestationRequest;Lcom/microsoft/sqlserver/jdbc/EnclaveSession;)V
19: goto 22
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
20: astore 9
start local 9 21: aload 1
aload 0
aload 9
invokevirtual java.security.GeneralSecurityException.getLocalizedMessage:()Ljava/lang/String;
ldc "0"
iconst_0
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
end local 9 22: StackMap locals:
StackMap stack:
aload 8
areturn
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 23 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerVSMEnclaveProvider;
0 23 1 connection Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
0 23 2 userSql Ljava/lang/String;
0 23 3 preparedTypeDefinitions Ljava/lang/String;
0 23 4 params [Lcom/microsoft/sqlserver/jdbc/Parameter;
0 23 5 parameterNames Ljava/util/ArrayList<Ljava/lang/String;>;
3 23 6 keyLookup Ljava/lang/StringBuilder;
4 23 7 entry Lcom/microsoft/sqlserver/jdbc/EnclaveCacheEntry;
10 23 8 b Ljava/util/ArrayList<[B>;
21 22 9 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
13 19 20 Class java.security.GeneralSecurityException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
Signature: (Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;Ljava/lang/String;[Lcom/microsoft/sqlserver/jdbc/Parameter;Ljava/util/ArrayList<Ljava/lang/String;>;)Ljava/util/ArrayList<[B>;
MethodParameters:
Name Flags
connection
userSql
preparedTypeDefinitions
params
parameterNames
public void invalidateEnclaveSession();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.enclaveSession:Lcom/microsoft/sqlserver/jdbc/EnclaveSession;
ifnull 2
1: getstatic com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.enclaveCache:Lcom/microsoft/sqlserver/jdbc/EnclaveSessionCache;
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.enclaveSession:Lcom/microsoft/sqlserver/jdbc/EnclaveSession;
invokevirtual com.microsoft.sqlserver.jdbc.EnclaveSessionCache.removeEntry:(Lcom/microsoft/sqlserver/jdbc/EnclaveSession;)V
2: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.enclaveSession:Lcom/microsoft/sqlserver/jdbc/EnclaveSession;
3: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.vsmParams:Lcom/microsoft/sqlserver/jdbc/VSMAttestationParameters;
4: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.attestationUrl:Ljava/lang/String;
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerVSMEnclaveProvider;
public com.microsoft.sqlserver.jdbc.EnclaveSession getEnclaveSession();
descriptor: ()Lcom/microsoft/sqlserver/jdbc/EnclaveSession;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.enclaveSession:Lcom/microsoft/sqlserver/jdbc/EnclaveSession;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerVSMEnclaveProvider;
private void validateAttestationResponse();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.hgsResponse:Lcom/microsoft/sqlserver/jdbc/VSMAttestationResponse;
ifnull 8
1: aload 0
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.getAttestationCertificates:()[B
astore 1
start local 1 2: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.hgsResponse:Lcom/microsoft/sqlserver/jdbc/VSMAttestationResponse;
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.VSMAttestationResponse.validateCert:([B)V
3: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.hgsResponse:Lcom/microsoft/sqlserver/jdbc/VSMAttestationResponse;
invokevirtual com.microsoft.sqlserver.jdbc.VSMAttestationResponse.validateStatementSignature:()V
4: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.hgsResponse:Lcom/microsoft/sqlserver/jdbc/VSMAttestationResponse;
invokevirtual com.microsoft.sqlserver.jdbc.VSMAttestationResponse.validateDHPublicKey:()V
end local 1 5: goto 8
StackMap locals:
StackMap stack: java.lang.Exception
6: astore 1
start local 1 7: aconst_null
aload 0
aload 1
invokevirtual java.lang.Exception.getLocalizedMessage:()Ljava/lang/String;
ldc "0"
iconst_0
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
end local 1 8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerVSMEnclaveProvider;
2 5 1 attestationCerts [B
7 8 1 e Ljava/lang/Exception;
Exception table:
from to target type
1 5 6 Class java.io.IOException
1 5 6 Class java.security.GeneralSecurityException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
private byte[] getAttestationCertificates();
descriptor: ()[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: getstatic com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.certificateCache:Ljava/util/Hashtable;
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.attestationUrl:Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.microsoft.sqlserver.jdbc.X509CertificateEntry
astore 2
start local 2 2: aload 2
ifnull 5
aload 2
invokevirtual com.microsoft.sqlserver.jdbc.X509CertificateEntry.expired:()Z
ifne 5
3: aload 2
invokevirtual com.microsoft.sqlserver.jdbc.X509CertificateEntry.getCertificates:()[B
astore 1
4: goto 7
StackMap locals: byte[] com.microsoft.sqlserver.jdbc.X509CertificateEntry
StackMap stack:
5: aload 2
ifnull 7
aload 2
invokevirtual com.microsoft.sqlserver.jdbc.X509CertificateEntry.expired:()Z
ifeq 7
6: getstatic com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.certificateCache:Ljava/util/Hashtable;
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.attestationUrl:Ljava/lang/String;
invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
7: StackMap locals:
StackMap stack:
aload 1
ifnonnull 21
8: new java.net.URL
dup
new java.lang.StringBuilder
dup
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.attestationUrl:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/attestationservice.svc/v2.0/signingCertificates/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
astore 3
start local 3 9: aload 3
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
astore 4
start local 4 10: aload 4
invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
invokevirtual java.io.InputStream.available:()I
newarray 8
astore 5
start local 5 11: aload 4
invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
aload 5
iconst_0
aload 5
arraylength
invokevirtual java.io.InputStream.read:([BII)I
pop
12: new java.lang.String
dup
aload 5
invokespecial java.lang.String.<init>:([B)V
astore 6
start local 6 13: aload 6
iconst_1
aload 6
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
ldc ","
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 7
start local 7 14: aload 7
arraylength
newarray 8
astore 1
15: iconst_0
istore 8
start local 8 16: goto 19
17: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider byte[] com.microsoft.sqlserver.jdbc.X509CertificateEntry java.net.URL java.net.URLConnection byte[] java.lang.String java.lang.String[] int
StackMap stack:
aload 1
iload 8
aload 7
iload 8
aaload
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
i2b
bastore
18: iinc 8 1
StackMap locals:
StackMap stack:
19: iload 8
aload 1
arraylength
if_icmplt 17
end local 8 20: getstatic com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.certificateCache:Ljava/util/Hashtable;
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.attestationUrl:Ljava/lang/String;
new com.microsoft.sqlserver.jdbc.X509CertificateEntry
dup
aload 1
invokespecial com.microsoft.sqlserver.jdbc.X509CertificateEntry.<init>:([B)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 6 end local 5 end local 4 end local 3 21: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider byte[] com.microsoft.sqlserver.jdbc.X509CertificateEntry
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerVSMEnclaveProvider;
1 22 1 certData [B
2 22 2 cacheEntry Lcom/microsoft/sqlserver/jdbc/X509CertificateEntry;
9 21 3 url Ljava/net/URL;
10 21 4 con Ljava/net/URLConnection;
11 21 5 buff [B
13 21 6 s Ljava/lang/String;
14 21 7 bytesString [Ljava/lang/String;
16 20 8 i I
Exceptions:
throws java.io.IOException
private java.util.ArrayList<byte[]> describeParameterEncryption(com.microsoft.sqlserver.jdbc.SQLServerConnection, java.lang.String, java.lang.String, com.microsoft.sqlserver.jdbc.Parameter[], java.util.ArrayList<java.lang.String>);
descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;Ljava/lang/String;[Lcom/microsoft/sqlserver/jdbc/Parameter;Ljava/util/ArrayList;)Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=16, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6
start local 6 1: aconst_null
astore 7
aconst_null
astore 8
2: aload 1
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.enclaveEstablished:()Z
ifeq 3
ldc "EXEC sp_describe_parameter_encryption ?,?"
goto 4
StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.Parameter[] java.util.ArrayList java.util.ArrayList java.lang.Throwable java.lang.Throwable
StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerConnection
3: ldc "EXEC sp_describe_parameter_encryption ?,?,?"
StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.Parameter[] java.util.ArrayList java.util.ArrayList java.lang.Throwable java.lang.Throwable
StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String
4: invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
astore 9
start local 9 5: aconst_null
astore 10
aconst_null
astore 11
6: aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.enclaveEstablished:()Z
ifeq 10
aload 0
aload 9
aload 2
7: aload 3
8: invokevirtual com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.executeSDPEv1:(Ljava/sql/PreparedStatement;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;
9: goto 11
StackMap locals: java.sql.PreparedStatement java.lang.Throwable java.lang.Throwable
StackMap stack:
10: aload 0
aload 9
aload 2
aload 3
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.vsmParams:Lcom/microsoft/sqlserver/jdbc/VSMAttestationParameters;
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.executeSDPEv2:(Ljava/sql/PreparedStatement;Ljava/lang/String;Ljava/lang/String;Lcom/microsoft/sqlserver/jdbc/BaseAttestationRequest;)Ljava/sql/ResultSet;
11: StackMap locals:
StackMap stack: java.sql.ResultSet
astore 12
start local 12 12: aload 12
ifnonnull 17
13: aload 6
14: aload 12
ifnull 15
aload 12
invokeinterface java.sql.ResultSet.close:()V
15: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.Parameter[] java.util.ArrayList java.util.ArrayList java.lang.Throwable java.lang.Throwable java.sql.PreparedStatement java.lang.Throwable java.lang.Throwable java.sql.ResultSet
StackMap stack: java.util.ArrayList
aload 9
ifnull 16
aload 9
invokeinterface java.sql.PreparedStatement.close:()V
16: StackMap locals:
StackMap stack: java.util.ArrayList
areturn
17: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 3
aload 4
aload 5
aload 1
aload 9
aload 12
18: aload 6
19: invokevirtual com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.processSDPEv1:(Ljava/lang/String;Ljava/lang/String;[Lcom/microsoft/sqlserver/jdbc/Parameter;Ljava/util/ArrayList;Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/sql/PreparedStatement;Ljava/sql/ResultSet;Ljava/util/ArrayList;)V
20: aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.isAEv2:()Z
ifeq 36
aload 9
invokeinterface java.sql.PreparedStatement.getMoreResults:()Z
ifeq 36
21: aconst_null
astore 13
aconst_null
astore 14
22: aload 9
invokeinterface java.sql.PreparedStatement.getResultSet:()Ljava/sql/ResultSet;
checkcast com.microsoft.sqlserver.jdbc.SQLServerResultSet
astore 15
start local 15 23: aload 15
invokeinterface java.sql.ResultSet.next:()Z
ifeq 27
24: aload 0
new com.microsoft.sqlserver.jdbc.VSMAttestationResponse
dup
aload 15
iconst_1
invokeinterface java.sql.ResultSet.getBytes:(I)[B
invokespecial com.microsoft.sqlserver.jdbc.VSMAttestationResponse.<init>:([B)V
putfield com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.hgsResponse:Lcom/microsoft/sqlserver/jdbc/VSMAttestationResponse;
25: aload 0
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider.validateAttestationResponse:()V
26: goto 30
27: StackMap locals: java.lang.Throwable java.lang.Throwable java.sql.ResultSet
StackMap stack:
aconst_null
aload 0
28: ldc "R_UnableRetrieveParameterMetadata"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
ldc "0"
iconst_0
29: invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
30: StackMap locals:
StackMap stack:
aload 15
ifnull 36
aload 15
invokeinterface java.sql.ResultSet.close:()V
goto 36
StackMap locals:
StackMap stack: java.lang.Throwable
31: astore 13
aload 15
ifnull 32
aload 15
invokeinterface java.sql.ResultSet.close:()V
end local 15 StackMap locals:
StackMap stack:
32: aload 13
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
33: astore 14
aload 13
ifnonnull 34
aload 14
astore 13
goto 35
StackMap locals:
StackMap stack:
34: aload 13
aload 14
if_acmpeq 35
aload 13
aload 14
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
35: aload 13
athrow
36: StackMap locals:
StackMap stack:
aload 12
ifnull 42
aload 12
invokeinterface java.sql.ResultSet.close:()V
goto 42
StackMap locals:
StackMap stack: java.lang.Throwable
37: astore 10
aload 12
ifnull 38
aload 12
invokeinterface java.sql.ResultSet.close:()V
end local 12 StackMap locals:
StackMap stack:
38: aload 10
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
39: astore 11
aload 10
ifnonnull 40
aload 11
astore 10
goto 41
StackMap locals:
StackMap stack:
40: aload 10
aload 11
if_acmpeq 41
aload 10
aload 11
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
41: aload 10
athrow
42: StackMap locals:
StackMap stack:
aload 9
ifnull 54
aload 9
invokeinterface java.sql.PreparedStatement.close:()V
goto 54
StackMap locals:
StackMap stack: java.lang.Throwable
43: astore 7
aload 9
ifnull 44
aload 9
invokeinterface java.sql.PreparedStatement.close:()V
end local 9 StackMap locals:
StackMap stack:
44: aload 7
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
45: astore 8
aload 7
ifnonnull 46
aload 8
astore 7
goto 47
StackMap locals:
StackMap stack:
46: aload 7
aload 8
if_acmpeq 47
aload 7
aload 8
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
47: aload 7
athrow
StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerVSMEnclaveProvider com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.Parameter[] java.util.ArrayList java.util.ArrayList
StackMap stack: java.lang.Exception
48: astore 7
start local 7 49: aload 7
instanceof com.microsoft.sqlserver.jdbc.SQLServerException
ifeq 51
50: aload 7
checkcast com.microsoft.sqlserver.jdbc.SQLServerException
athrow
51: StackMap locals: java.lang.Exception
StackMap stack:
new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_UnableRetrieveParameterMetadata"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aconst_null
52: iconst_0
aload 7
53: invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V
athrow
end local 7 54: StackMap locals:
StackMap stack:
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 55 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerVSMEnclaveProvider;
0 55 1 connection Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
0 55 2 userSql Ljava/lang/String;
0 55 3 preparedTypeDefinitions Ljava/lang/String;
0 55 4 params [Lcom/microsoft/sqlserver/jdbc/Parameter;
0 55 5 parameterNames Ljava/util/ArrayList<Ljava/lang/String;>;
1 55 6 enclaveRequestedCEKs Ljava/util/ArrayList<[B>;
5 44 9 stmt Ljava/sql/PreparedStatement;
12 38 12 rs Ljava/sql/ResultSet;
23 32 15 hgsRs Ljava/sql/ResultSet;
49 54 7 e Ljava/lang/Exception;
Exception table:
from to target type
23 30 31 any
22 33 33 any
12 14 37 any
17 36 37 any
6 15 39 any
17 39 39 any
5 15 43 any
17 42 43 any
2 16 45 any
17 45 45 any
1 16 48 Class java.sql.SQLException
17 48 48 Class java.sql.SQLException
1 16 48 Class java.io.IOException
17 48 48 Class java.io.IOException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
Signature: (Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;Ljava/lang/String;[Lcom/microsoft/sqlserver/jdbc/Parameter;Ljava/util/ArrayList<Ljava/lang/String;>;)Ljava/util/ArrayList<[B>;
MethodParameters:
Name Flags
connection
userSql
preparedTypeDefinitions
params
parameterNames
}
SourceFile: "SQLServerVSMEnclaveProvider.java"