public interface com.microsoft.sqlserver.jdbc.ISQLServerEnclaveProvider
minor version: 0
major version: 59
flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
this_class: com.microsoft.sqlserver.jdbc.ISQLServerEnclaveProvider
super_class: java.lang.Object
{
public static final java.lang.String SDPE1;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "EXEC sp_describe_parameter_encryption ?,?"
public static final java.lang.String SDPE2;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "EXEC sp_describe_parameter_encryption ?,?,?"
public byte[] getEnclavePackage(java.lang.String, java.util.ArrayList<byte[]>);
descriptor: (Ljava/lang/String;Ljava/util/ArrayList;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokeinterface com.microsoft.sqlserver.jdbc.ISQLServerEnclaveProvider.getEnclaveSession:()Lcom/microsoft/sqlserver/jdbc/EnclaveSession;
astore 3
start local 3 1: aload 3
ifnull 28
2: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 4
start local 4 3: aload 4
aload 3
invokevirtual com.microsoft.sqlserver.jdbc.EnclaveSession.getSessionID:()[B
invokevirtual java.io.ByteArrayOutputStream.write:([B)V
4: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 5
start local 5 5: bipush 16
newarray 8
astore 6
start local 6 6: invokestatic java.security.SecureRandom.getInstanceStrong:()Ljava/security/SecureRandom;
aload 6
invokevirtual java.security.SecureRandom.nextBytes:([B)V
7: aload 5
aload 6
invokevirtual java.io.ByteArrayOutputStream.write:([B)V
8: aload 5
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;
aload 3
invokevirtual com.microsoft.sqlserver.jdbc.EnclaveSession.getCounter:()J
invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
9: invokevirtual java.nio.ByteBuffer.array:()[B
10: invokevirtual java.io.ByteArrayOutputStream.write:([B)V
11: aload 5
ldc "SHA-256"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
aload 1
getstatic java.nio.charset.StandardCharsets.UTF_16LE:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokevirtual java.security.MessageDigest.digest:([B)[B
invokevirtual java.io.ByteArrayOutputStream.write:([B)V
12: aload 2
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 8
goto 15
StackMap locals: com.microsoft.sqlserver.jdbc.ISQLServerEnclaveProvider java.lang.String java.util.ArrayList com.microsoft.sqlserver.jdbc.EnclaveSession java.io.ByteArrayOutputStream java.io.ByteArrayOutputStream byte[] top java.util.Iterator
StackMap stack:
13: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast byte[]
astore 7
start local 7 14: aload 5
aload 7
invokevirtual java.io.ByteArrayOutputStream.write:([B)V
end local 7 15: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
16: aload 2
invokevirtual java.util.ArrayList.clear:()V
17: new com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey
dup
18: aload 3
invokevirtual com.microsoft.sqlserver.jdbc.EnclaveSession.getSessionSecret:()[B
ldc "AEAD_AES_256_CBC_HMAC_SHA256"
19: invokespecial com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.<init>:([BLjava/lang/String;)V
astore 7
start local 7 20: new com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256Algorithm
dup
aload 7
21: getstatic com.microsoft.sqlserver.jdbc.SQLServerEncryptionType.Randomized:Lcom/microsoft/sqlserver/jdbc/SQLServerEncryptionType;
iconst_1
22: invokespecial com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256Algorithm.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerAeadAes256CbcHmac256EncryptionKey;Lcom/microsoft/sqlserver/jdbc/SQLServerEncryptionType;B)V
astore 8
start local 8 23: aload 4
aload 8
aload 5
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256Algorithm.encryptData:([B)[B
invokevirtual java.io.ByteArrayOutputStream.write:([B)V
24: aload 4
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
25: areturn
end local 8 end local 7 end local 6 end local 5 end local 4 26: StackMap locals: com.microsoft.sqlserver.jdbc.ISQLServerEnclaveProvider java.lang.String java.util.ArrayList com.microsoft.sqlserver.jdbc.EnclaveSession
StackMap stack: java.lang.Exception
astore 4
start local 4 27: aconst_null
aload 0
aload 4
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 4 28: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lcom/microsoft/sqlserver/jdbc/ISQLServerEnclaveProvider;
0 29 1 userSQL Ljava/lang/String;
0 29 2 enclaveCEKs Ljava/util/ArrayList<[B>;
1 29 3 enclaveSession Lcom/microsoft/sqlserver/jdbc/EnclaveSession;
3 26 4 enclavePackage Ljava/io/ByteArrayOutputStream;
5 26 5 keys Ljava/io/ByteArrayOutputStream;
6 26 6 randomGUID [B
14 15 7 b [B
20 26 7 encryptedKey Lcom/microsoft/sqlserver/jdbc/SQLServerAeadAes256CbcHmac256EncryptionKey;
23 26 8 algo Lcom/microsoft/sqlserver/jdbc/SQLServerAeadAes256CbcHmac256Algorithm;
27 28 4 e Ljava/lang/Exception;
Exception table:
from to target type
2 25 26 Class java.security.GeneralSecurityException
2 25 26 Class com.microsoft.sqlserver.jdbc.SQLServerException
2 25 26 Class java.io.IOException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
Signature: (Ljava/lang/String;Ljava/util/ArrayList<[B>;)[B
MethodParameters:
Name Flags
userSQL
enclaveCEKs
public java.sql.ResultSet executeSDPEv2(java.sql.PreparedStatement, java.lang.String, java.lang.String, com.microsoft.sqlserver.jdbc.BaseAttestationRequest);
descriptor: (Ljava/sql/PreparedStatement;Ljava/lang/String;Ljava/lang/String;Lcom/microsoft/sqlserver/jdbc/BaseAttestationRequest;)Ljava/sql/ResultSet;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
checkcast com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement
iconst_1
putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.isInternalEncryptionQuery:Z
1: aload 1
iconst_1
aload 2
invokeinterface java.sql.PreparedStatement.setNString:(ILjava/lang/String;)V
2: aload 3
ifnull 5
aload 3
invokevirtual java.lang.String.length:()I
ifeq 5
3: aload 1
iconst_2
aload 3
invokeinterface java.sql.PreparedStatement.setNString:(ILjava/lang/String;)V
4: goto 6
5: StackMap locals:
StackMap stack:
aload 1
iconst_2
ldc ""
invokeinterface java.sql.PreparedStatement.setNString:(ILjava/lang/String;)V
6: StackMap locals:
StackMap stack:
aload 1
iconst_3
aload 4
invokevirtual com.microsoft.sqlserver.jdbc.BaseAttestationRequest.getBytes:()[B
invokeinterface java.sql.PreparedStatement.setBytes:(I[B)V
7: aload 1
checkcast com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQueryInternal:()Ljava/sql/ResultSet;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/microsoft/sqlserver/jdbc/ISQLServerEnclaveProvider;
0 8 1 stmt Ljava/sql/PreparedStatement;
0 8 2 userSql Ljava/lang/String;
0 8 3 preparedTypeDefinitions Ljava/lang/String;
0 8 4 req Lcom/microsoft/sqlserver/jdbc/BaseAttestationRequest;
Exceptions:
throws java.sql.SQLException, java.io.IOException
MethodParameters:
Name Flags
stmt
userSql
preparedTypeDefinitions
req
public java.sql.ResultSet executeSDPEv1(java.sql.PreparedStatement, java.lang.String, java.lang.String);
descriptor: (Ljava/sql/PreparedStatement;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
checkcast com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement
iconst_1
putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.isInternalEncryptionQuery:Z
1: aload 1
iconst_1
aload 2
invokeinterface java.sql.PreparedStatement.setNString:(ILjava/lang/String;)V
2: aload 3
ifnull 5
aload 3
invokevirtual java.lang.String.length:()I
ifeq 5
3: aload 1
iconst_2
aload 3
invokeinterface java.sql.PreparedStatement.setNString:(ILjava/lang/String;)V
4: goto 6
5: StackMap locals:
StackMap stack:
aload 1
iconst_2
ldc ""
invokeinterface java.sql.PreparedStatement.setNString:(ILjava/lang/String;)V
6: StackMap locals:
StackMap stack:
aload 1
checkcast com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQueryInternal:()Ljava/sql/ResultSet;
areturn
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/ISQLServerEnclaveProvider;
0 7 1 stmt Ljava/sql/PreparedStatement;
0 7 2 userSql Ljava/lang/String;
0 7 3 preparedTypeDefinitions Ljava/lang/String;
Exceptions:
throws java.sql.SQLException
MethodParameters:
Name Flags
stmt
userSql
preparedTypeDefinitions
public void processSDPEv1(java.lang.String, java.lang.String, com.microsoft.sqlserver.jdbc.Parameter[], java.util.ArrayList<java.lang.String>, com.microsoft.sqlserver.jdbc.SQLServerConnection, java.sql.PreparedStatement, java.sql.ResultSet, java.util.ArrayList<byte[]>);
descriptor: (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
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=23, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 9
start local 9 1: aconst_null
astore 10
start local 10 2: iconst_0
istore 11
start local 11 3: goto 38
4: StackMap locals: java.util.Map com.microsoft.sqlserver.jdbc.CekTableEntry int
StackMap stack:
aload 7
getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.KeyOrdinal:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet1;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.value:()I
invokeinterface java.sql.ResultSet.getInt:(I)I
istore 12
start local 12 5: aload 9
iload 12
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 9
6: new com.microsoft.sqlserver.jdbc.CekTableEntry
dup
iload 12
invokespecial com.microsoft.sqlserver.jdbc.CekTableEntry.<init>:(I)V
astore 10
7: aload 9
aload 10
getfield com.microsoft.sqlserver.jdbc.CekTableEntry.ordinal:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 10
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: goto 10
9: StackMap locals: int
StackMap stack:
aload 9
iload 12
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.microsoft.sqlserver.jdbc.CekTableEntry
astore 10
10: StackMap locals:
StackMap stack:
aload 7
getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.ProviderName:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet1;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.value:()I
invokeinterface java.sql.ResultSet.getString:(I)Ljava/lang/String;
astore 13
start local 13 11: aload 7
getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.KeyEncryptionAlgorithm:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet1;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.value:()I
invokeinterface java.sql.ResultSet.getString:(I)Ljava/lang/String;
astore 14
start local 14 12: aload 7
getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.KeyPath:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet1;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.value:()I
invokeinterface java.sql.ResultSet.getString:(I)Ljava/lang/String;
astore 15
start local 15 13: aload 7
getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.DbId:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet1;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.value:()I
invokeinterface java.sql.ResultSet.getInt:(I)I
istore 16
start local 16 14: aload 7
getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.KeyMdVersion:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet1;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.value:()I
invokeinterface java.sql.ResultSet.getBytes:(I)[B
astore 17
start local 17 15: aload 7
getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.KeyId:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet1;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.value:()I
invokeinterface java.sql.ResultSet.getInt:(I)I
istore 18
start local 18 16: aload 7
getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.EncryptedKey:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet1;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.value:()I
invokeinterface java.sql.ResultSet.getBytes:(I)[B
astore 19
start local 19 17: aload 10
aload 19
iload 16
iload 18
aload 7
getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.KeyVersion:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet1;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.value:()I
invokeinterface java.sql.ResultSet.getInt:(I)I
18: aload 17
aload 15
aload 13
aload 14
19: invokevirtual com.microsoft.sqlserver.jdbc.CekTableEntry.add:([BIII[BLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
20: getstatic com.microsoft.sqlserver.jdbc.ColumnEncryptionVersion.AE_v2:Lcom/microsoft/sqlserver/jdbc/ColumnEncryptionVersion;
invokevirtual com.microsoft.sqlserver.jdbc.ColumnEncryptionVersion.value:()I
aload 5
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getServerColumnEncryptionVersion:()Lcom/microsoft/sqlserver/jdbc/ColumnEncryptionVersion;
invokevirtual com.microsoft.sqlserver.jdbc.ColumnEncryptionVersion.value:()I
if_icmpgt 24
21: aload 7
22: getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.IsRequestedByEnclave:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet1;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.value:()I
invokeinterface java.sql.ResultSet.getBoolean:(I)Z
23: istore 11
24: StackMap locals: com.microsoft.sqlserver.jdbc.ISQLServerEnclaveProvider java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.Parameter[] java.util.ArrayList com.microsoft.sqlserver.jdbc.SQLServerConnection java.sql.PreparedStatement java.sql.ResultSet java.util.ArrayList java.util.Map com.microsoft.sqlserver.jdbc.CekTableEntry int int java.lang.String java.lang.String java.lang.String int byte[] int byte[]
StackMap stack:
iload 11
ifeq 38
25: aload 7
getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.EnclaveCMKSignature:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet1;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet1.value:()I
invokeinterface java.sql.ResultSet.getBytes:(I)[B
astore 20
start local 20 26: aload 5
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getTrustedServerNameAE:()Ljava/lang/String;
astore 21
start local 21 27: aload 5
aload 13
aload 15
aload 21
28: iload 11
aload 20
29: invokestatic com.microsoft.sqlserver.jdbc.SQLServerSecurityUtility.verifyColumnMasterKeyMetadata:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[B)V
30: bipush 46
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 22
start local 22 31: aload 22
getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
iload 16
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
32: aload 22
aload 17
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
33: aload 22
iload 18
i2s
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
pop
34: aload 22
aload 5
aload 13
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getColumnEncryptionKeyStoreProvider:(Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionKeyStoreProvider;
35: aload 15
aload 14
aload 19
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionKeyStoreProvider.decryptColumnEncryptionKey:(Ljava/lang/String;Ljava/lang/String;[B)[B
36: invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
37: aload 8
aload 22
invokevirtual java.nio.ByteBuffer.array:()[B
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 22 end local 21 end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 38: StackMap locals: com.microsoft.sqlserver.jdbc.ISQLServerEnclaveProvider java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.Parameter[] java.util.ArrayList com.microsoft.sqlserver.jdbc.SQLServerConnection java.sql.PreparedStatement java.sql.ResultSet java.util.ArrayList java.util.Map com.microsoft.sqlserver.jdbc.CekTableEntry int
StackMap stack:
aload 7
invokeinterface java.sql.ResultSet.next:()Z
ifne 4
39: aload 6
invokeinterface java.sql.PreparedStatement.getMoreResults:()Z
ifne 43
40: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aconst_null
ldc "R_UnexpectedDescribeParamFormat"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aconst_null
41: iconst_0
iconst_0
42: invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;IZ)V
athrow
43: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.sql.PreparedStatement.getResultSet:()Ljava/sql/ResultSet;
checkcast com.microsoft.sqlserver.jdbc.SQLServerResultSet
astore 7
44: goto 71
45: StackMap locals:
StackMap stack:
aload 7
getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet2.ParameterName:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet2;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet2.value:()I
invokeinterface java.sql.ResultSet.getString:(I)Ljava/lang/String;
astore 12
start local 12 46: aload 4
aload 12
invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
istore 13
start local 13 47: aload 7
getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet2.ColumnEncryptionKeyOrdinal:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet2;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet2.value:()I
invokeinterface java.sql.ResultSet.getInt:(I)I
istore 14
start local 14 48: aload 9
iload 14
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.microsoft.sqlserver.jdbc.CekTableEntry
astore 10
49: aload 10
ifnull 55
aload 9
invokeinterface java.util.Map.size:()I
iload 14
if_icmpge 55
50: new java.text.MessageFormat
dup
51: ldc "R_InvalidEncryptionKeyOrdinal"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
52: invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 15
start local 15 53: iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 14
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 10
invokevirtual com.microsoft.sqlserver.jdbc.CekTableEntry.getSize:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
astore 16
start local 16 54: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aconst_null
aload 15
aload 16
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
aconst_null
iconst_0
iconst_0
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;IZ)V
athrow
end local 16 end local 15 55: StackMap locals: java.lang.String int int
StackMap stack:
aload 7
getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet2.ColumnEncrytionType:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet2;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet2.value:()I
invokeinterface java.sql.ResultSet.getInt:(I)I
i2b
invokestatic com.microsoft.sqlserver.jdbc.SQLServerEncryptionType.of:(B)Lcom/microsoft/sqlserver/jdbc/SQLServerEncryptionType;
56: astore 15
start local 15 57: getstatic com.microsoft.sqlserver.jdbc.SQLServerEncryptionType.PlainText:Lcom/microsoft/sqlserver/jdbc/SQLServerEncryptionType;
aload 15
if_acmpeq 65
58: aload 3
iload 13
aaload
new com.microsoft.sqlserver.jdbc.CryptoMetadata
dup
aload 10
iload 14
i2s
59: aload 7
getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet2.ColumnEncryptionAlgorithm:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet2;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet2.value:()I
invokeinterface java.sql.ResultSet.getInt:(I)I
i2b
aconst_null
60: aload 15
getfield com.microsoft.sqlserver.jdbc.SQLServerEncryptionType.value:B
61: aload 7
getstatic com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet2.NormalizationRuleVersion:Lcom/microsoft/sqlserver/jdbc/DescribeParameterEncryptionResultSet2;
invokevirtual com.microsoft.sqlserver.jdbc.DescribeParameterEncryptionResultSet2.value:()I
invokeinterface java.sql.ResultSet.getInt:(I)I
i2b
invokespecial com.microsoft.sqlserver.jdbc.CryptoMetadata.<init>:(Lcom/microsoft/sqlserver/jdbc/CekTableEntry;SBLjava/lang/String;BB)V
62: putfield com.microsoft.sqlserver.jdbc.Parameter.cryptoMeta:Lcom/microsoft/sqlserver/jdbc/CryptoMetadata;
63: aload 3
iload 13
aaload
getfield com.microsoft.sqlserver.jdbc.Parameter.cryptoMeta:Lcom/microsoft/sqlserver/jdbc/CryptoMetadata;
aload 5
invokestatic com.microsoft.sqlserver.jdbc.SQLServerSecurityUtility.decryptSymmetricKey:(Lcom/microsoft/sqlserver/jdbc/CryptoMetadata;Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)V
64: goto 71
65: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerEncryptionType
StackMap stack:
aload 3
iload 13
aaload
invokevirtual com.microsoft.sqlserver.jdbc.Parameter.getForceEncryption:()Z
ifeq 71
66: new java.text.MessageFormat
dup
67: ldc "R_ForceEncryptionTrue_HonorAETrue_UnencryptedColumn"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
68: invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 16
start local 16 69: iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
iload 13
iconst_1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
astore 17
start local 17 70: aconst_null
aload 5
aload 16
aload 17
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
ldc "0"
iconst_1
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 17 end local 16 end local 15 end local 14 end local 13 end local 12 71: StackMap locals: com.microsoft.sqlserver.jdbc.ISQLServerEnclaveProvider java.lang.String java.lang.String com.microsoft.sqlserver.jdbc.Parameter[] java.util.ArrayList com.microsoft.sqlserver.jdbc.SQLServerConnection java.sql.PreparedStatement java.sql.ResultSet java.util.ArrayList java.util.Map com.microsoft.sqlserver.jdbc.CekTableEntry int
StackMap stack:
aload 7
invokeinterface java.sql.ResultSet.next:()Z
ifeq 72
aload 3
ifnonnull 45
72: StackMap locals:
StackMap stack:
return
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 73 0 this Lcom/microsoft/sqlserver/jdbc/ISQLServerEnclaveProvider;
0 73 1 userSql Ljava/lang/String;
0 73 2 preparedTypeDefinitions Ljava/lang/String;
0 73 3 params [Lcom/microsoft/sqlserver/jdbc/Parameter;
0 73 4 parameterNames Ljava/util/ArrayList<Ljava/lang/String;>;
0 73 5 connection Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
0 73 6 stmt Ljava/sql/PreparedStatement;
0 73 7 rs Ljava/sql/ResultSet;
0 73 8 enclaveRequestedCEKs Ljava/util/ArrayList<[B>;
1 73 9 cekList Ljava/util/Map<Ljava/lang/Integer;Lcom/microsoft/sqlserver/jdbc/CekTableEntry;>;
2 73 10 cekEntry Lcom/microsoft/sqlserver/jdbc/CekTableEntry;
3 73 11 isRequestedByEnclave Z
5 38 12 currentOrdinal I
11 38 13 keyStoreName Ljava/lang/String;
12 38 14 algo Ljava/lang/String;
13 38 15 keyPath Ljava/lang/String;
14 38 16 dbID I
15 38 17 mdVer [B
16 38 18 keyID I
17 38 19 encryptedKey [B
26 38 20 keySignature [B
27 38 21 serverName Ljava/lang/String;
31 38 22 aev2CekEntry Ljava/nio/ByteBuffer;
46 71 12 paramName Ljava/lang/String;
47 71 13 paramIndex I
48 71 14 cekOrdinal I
53 55 15 form Ljava/text/MessageFormat;
54 55 16 msgArgs [Ljava/lang/Object;
57 71 15 encType Lcom/microsoft/sqlserver/jdbc/SQLServerEncryptionType;
69 71 16 form Ljava/text/MessageFormat;
70 71 17 msgArgs [Ljava/lang/Object;
Exceptions:
throws java.sql.SQLException
Signature: (Ljava/lang/String;Ljava/lang/String;[Lcom/microsoft/sqlserver/jdbc/Parameter;Ljava/util/ArrayList<Ljava/lang/String;>;Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/sql/PreparedStatement;Ljava/sql/ResultSet;Ljava/util/ArrayList<[B>;)V
MethodParameters:
Name Flags
userSql
preparedTypeDefinitions
params
parameterNames
connection
stmt
rs
enclaveRequestedCEKs
public abstract void getAttestationParameters(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
url
public abstract 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: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
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 abstract void invalidateEnclaveSession();
descriptor: ()V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract com.microsoft.sqlserver.jdbc.EnclaveSession getEnclaveSession();
descriptor: ()Lcom/microsoft/sqlserver/jdbc/EnclaveSession;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
}
SourceFile: "ISQLServerEnclaveProvider.java"