public class com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider extends com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionKeyStoreProvider
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider
super_class: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionKeyStoreProvider
{
private static final java.util.logging.Logger akvLogger;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int KEY_NAME_INDEX;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int KEY_URL_SPLIT_LENGTH_WITH_VERSION;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 6
private static final java.lang.String KEY_URL_DELIMITER;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "/"
private static final java.lang.String NULL_VALUE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "R_NullValue"
private com.azure.core.http.HttpPipeline keyVaultPipeline;
descriptor: Lcom/azure/core/http/HttpPipeline;
flags: (0x0002) ACC_PRIVATE
private com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential keyVaultTokenCredential;
descriptor: Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
flags: (0x0002) ACC_PRIVATE
java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0000)
private static final java.lang.String MSSQL_JDBC_PROPERTIES;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "mssql-jdbc.properties"
private static final java.lang.String AKV_TRUSTED_ENDPOINTS_KEYWORD;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "AKVTrustedEndpoints"
private static final java.lang.String RSA_ENCRYPTION_ALGORITHM_WITH_OAEP_FOR_AKV;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "RSA-OAEP"
private static final java.util.List<java.lang.String> akvTrustedEndpoints;
descriptor: Ljava/util/List;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/String;>;
private final byte[] firstVersion;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.util.Map<java.lang.String, com.azure.security.keyvault.keys.KeyClient> cachedKeyClients;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Lcom/azure/security/keyvault/keys/KeyClient;>;
private java.util.Map<java.lang.String, com.azure.security.keyvault.keys.cryptography.CryptographyClient> cachedCryptographyClients;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Lcom/azure/security/keyvault/keys/cryptography/CryptographyClient;>;
private com.azure.core.credential.TokenCredential credential;
descriptor: Lcom/azure/core/credential/TokenCredential;
flags: (0x0002) ACC_PRIVATE
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=1, locals=0, args_size=0
0: ldc Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
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.SQLServerColumnEncryptionAzureKeyVaultProvider.$assertionsDisabled:Z
3: ldc "com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider"
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
4: putstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.akvLogger:Ljava/util/logging/Logger;
5: invokestatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.getTrustedEndpoints:()Ljava/util/List;
putstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.akvTrustedEndpoints:Ljava/util/List;
return
LocalVariableTable:
Start End Slot Name Signature
public void setName(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.name:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 2 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
public void <init>(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionKeyStoreProvider.<init>:()V
1: aload 0
ldc "AZURE_KEY_VAULT"
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.name:Ljava/lang/String;
2: aload 0
iconst_1
newarray 8
dup
iconst_0
iconst_1
bastore
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.firstVersion:[B
3: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedKeyClients:Ljava/util/Map;
4: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedCryptographyClients:Ljava/util/Map;
5: aload 1
ifnull 6
aload 1
invokevirtual java.lang.String.isEmpty:()Z
ifeq 9
6: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider java.lang.String java.lang.String
StackMap stack:
new java.text.MessageFormat
dup
ldc "R_NullValue"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 3
start local 3 7: iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "Client ID"
aastore
astore 4
start local 4 8: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 3
aload 4
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 4 end local 3 9: StackMap locals:
StackMap stack:
aload 2
ifnull 10
aload 2
invokevirtual java.lang.String.isEmpty:()Z
ifeq 13
10: StackMap locals:
StackMap stack:
new java.text.MessageFormat
dup
ldc "R_NullValue"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 3
start local 3 11: iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "Client Key"
aastore
astore 4
start local 4 12: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 3
aload 4
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 4 end local 3 13: StackMap locals:
StackMap stack:
aload 0
new com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential
dup
aload 1
aload 2
invokespecial com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.<init>:(Ljava/lang/String;Ljava/lang/String;)V
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.keyVaultTokenCredential:Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
14: aload 0
new com.microsoft.sqlserver.jdbc.KeyVaultHttpPipelineBuilder
dup
invokespecial com.microsoft.sqlserver.jdbc.KeyVaultHttpPipelineBuilder.<init>:()V
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.keyVaultTokenCredential:Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
invokevirtual com.microsoft.sqlserver.jdbc.KeyVaultHttpPipelineBuilder.credential:(Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;)Lcom/microsoft/sqlserver/jdbc/KeyVaultHttpPipelineBuilder;
invokevirtual com.microsoft.sqlserver.jdbc.KeyVaultHttpPipelineBuilder.buildPipeline:()Lcom/azure/core/http/HttpPipeline;
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.keyVaultPipeline:Lcom/azure/core/http/HttpPipeline;
15: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 16 1 clientId Ljava/lang/String;
0 16 2 clientKey Ljava/lang/String;
7 9 3 form Ljava/text/MessageFormat;
8 9 4 msgArgs1 [Ljava/lang/Object;
11 13 3 form Ljava/text/MessageFormat;
12 13 4 msgArgs1 [Ljava/lang/Object;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
clientId
clientKey
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionKeyStoreProvider.<init>:()V
1: aload 0
ldc "AZURE_KEY_VAULT"
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.name:Ljava/lang/String;
2: aload 0
iconst_1
newarray 8
dup
iconst_0
iconst_1
bastore
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.firstVersion:[B
3: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedKeyClients:Ljava/util/Map;
4: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedCryptographyClients:Ljava/util/Map;
5: aload 0
new com.azure.identity.ManagedIdentityCredentialBuilder
dup
invokespecial com.azure.identity.ManagedIdentityCredentialBuilder.<init>:()V
invokevirtual com.azure.identity.ManagedIdentityCredentialBuilder.build:()Lcom/azure/identity/ManagedIdentityCredential;
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.setCredential:(Lcom/azure/core/credential/TokenCredential;)V
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionKeyStoreProvider.<init>:()V
1: aload 0
ldc "AZURE_KEY_VAULT"
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.name:Ljava/lang/String;
2: aload 0
iconst_1
newarray 8
dup
iconst_0
iconst_1
bastore
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.firstVersion:[B
3: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedKeyClients:Ljava/util/Map;
4: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedCryptographyClients:Ljava/util/Map;
5: aload 1
ifnull 6
aload 1
invokevirtual java.lang.String.isEmpty:()Z
ifeq 9
6: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider java.lang.String
StackMap stack:
new java.text.MessageFormat
dup
ldc "R_NullValue"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 2
start local 2 7: iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "Client ID"
aastore
astore 3
start local 3 8: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 2
aload 3
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 3 end local 2 9: StackMap locals:
StackMap stack:
aload 0
new com.azure.identity.ManagedIdentityCredentialBuilder
dup
invokespecial com.azure.identity.ManagedIdentityCredentialBuilder.<init>:()V
aload 1
invokevirtual com.azure.identity.ManagedIdentityCredentialBuilder.clientId:(Ljava/lang/String;)Lcom/azure/identity/ManagedIdentityCredentialBuilder;
invokevirtual com.azure.identity.ManagedIdentityCredentialBuilder.build:()Lcom/azure/identity/ManagedIdentityCredential;
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.setCredential:(Lcom/azure/core/credential/TokenCredential;)V
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 11 1 clientId Ljava/lang/String;
7 9 2 form Ljava/text/MessageFormat;
8 9 3 msgArgs1 [Ljava/lang/Object;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
clientId
public void <init>(com.azure.core.credential.TokenCredential);
descriptor: (Lcom/azure/core/credential/TokenCredential;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionKeyStoreProvider.<init>:()V
1: aload 0
ldc "AZURE_KEY_VAULT"
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.name:Ljava/lang/String;
2: aload 0
iconst_1
newarray 8
dup
iconst_0
iconst_1
bastore
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.firstVersion:[B
3: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedKeyClients:Ljava/util/Map;
4: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedCryptographyClients:Ljava/util/Map;
5: aload 1
ifnonnull 9
6: new java.text.MessageFormat
dup
ldc "R_NullValue"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 2
start local 2 7: iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "Token Credential"
aastore
astore 3
start local 3 8: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 2
aload 3
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 3 end local 2 9: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider com.azure.core.credential.TokenCredential
StackMap stack:
aload 0
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.setCredential:(Lcom/azure/core/credential/TokenCredential;)V
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 11 1 tokenCredential Lcom/azure/core/credential/TokenCredential;
7 9 2 form Ljava/text/MessageFormat;
8 9 3 msgArgs1 [Ljava/lang/Object;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
tokenCredential
public void <init>(com.microsoft.sqlserver.jdbc.SQLServerKeyVaultAuthenticationCallback);
descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerKeyVaultAuthenticationCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionKeyStoreProvider.<init>:()V
1: aload 0
ldc "AZURE_KEY_VAULT"
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.name:Ljava/lang/String;
2: aload 0
iconst_1
newarray 8
dup
iconst_0
iconst_1
bastore
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.firstVersion:[B
3: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedKeyClients:Ljava/util/Map;
4: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedCryptographyClients:Ljava/util/Map;
5: aload 1
ifnonnull 9
6: new java.text.MessageFormat
dup
ldc "R_NullValue"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 2
start local 2 7: iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "SQLServerKeyVaultAuthenticationCallback"
aastore
astore 3
start local 3 8: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 2
aload 3
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 3 end local 2 9: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider com.microsoft.sqlserver.jdbc.SQLServerKeyVaultAuthenticationCallback
StackMap stack:
aload 0
new com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential
dup
aload 1
invokespecial com.microsoft.sqlserver.jdbc.KeyVaultTokenCredential.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerKeyVaultAuthenticationCallback;)V
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.keyVaultTokenCredential:Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
10: aload 0
new com.microsoft.sqlserver.jdbc.KeyVaultHttpPipelineBuilder
dup
invokespecial com.microsoft.sqlserver.jdbc.KeyVaultHttpPipelineBuilder.<init>:()V
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.keyVaultTokenCredential:Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;
invokevirtual com.microsoft.sqlserver.jdbc.KeyVaultHttpPipelineBuilder.credential:(Lcom/microsoft/sqlserver/jdbc/KeyVaultTokenCredential;)Lcom/microsoft/sqlserver/jdbc/KeyVaultHttpPipelineBuilder;
invokevirtual com.microsoft.sqlserver.jdbc.KeyVaultHttpPipelineBuilder.buildPipeline:()Lcom/azure/core/http/HttpPipeline;
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.keyVaultPipeline:Lcom/azure/core/http/HttpPipeline;
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 12 1 authenticationCallback Lcom/microsoft/sqlserver/jdbc/SQLServerKeyVaultAuthenticationCallback;
7 9 2 form Ljava/text/MessageFormat;
8 9 3 msgArgs1 [Ljava/lang/Object;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
authenticationCallback
private void setCredential(com.azure.core.credential.TokenCredential);
descriptor: (Lcom/azure/core/credential/TokenCredential;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 4
1: new java.text.MessageFormat
dup
ldc "R_NullValue"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 2
start local 2 2: iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "Credential"
aastore
astore 3
start local 3 3: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 2
aload 3
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 3 end local 2 4: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.credential:Lcom/azure/core/credential/TokenCredential;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 6 1 credential Lcom/azure/core/credential/TokenCredential;
2 4 2 form Ljava/text/MessageFormat;
3 4 3 msgArgs1 [Ljava/lang/Object;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
credential
public byte[] decryptColumnEncryptionKey(java.lang.String, java.lang.String, byte[]);
descriptor: (Ljava/lang/String;Ljava/lang/String;[B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=17, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.ValidateNonEmptyAKVPath:(Ljava/lang/String;)V
1: aload 3
ifnonnull 3
2: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_NullEncryptedColumnEncryptionKey"
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
3: StackMap locals:
StackMap stack:
aload 3
arraylength
ifne 5
4: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_EmptyEncryptedColumnEncryptionKey"
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
5: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.validateEncryptionAlgorithm:(Ljava/lang/String;)Lcom/azure/security/keyvault/keys/cryptography/models/KeyWrapAlgorithm;
astore 4
start local 4 6: aload 0
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.getAKVKeySize:(Ljava/lang/String;)I
istore 5
start local 5 7: aload 3
iconst_0
baload
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.firstVersion:[B
iconst_0
baload
if_icmpeq 15
8: new java.text.MessageFormat
dup
9: ldc "R_InvalidEcryptionAlgorithmVersion"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
10: invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 6
start local 6 11: iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "%02X "
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
iconst_0
baload
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aastore
dup
iconst_1
12: ldc "%02X "
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.firstVersion:[B
iconst_0
baload
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aastore
13: astore 7
start local 7 14: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 0
aload 6
aload 7
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 7 end local 6 15: StackMap locals: com.azure.security.keyvault.keys.cryptography.models.KeyWrapAlgorithm int
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.firstVersion:[B
arraylength
istore 6
start local 6 16: aload 0
aload 3
iload 6
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.convertTwoBytesToShort:([BI)S
istore 7
start local 7 17: iinc 6 2
18: aload 0
aload 3
iload 6
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.convertTwoBytesToShort:([BI)S
istore 8
start local 8 19: iinc 6 2
20: iload 6
iload 7
iadd
istore 6
21: iload 8
iload 5
if_icmpeq 25
22: new java.text.MessageFormat
dup
ldc "R_AKVKeyLengthError"
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 23: iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 8
invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
aastore
dup
iconst_1
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 1
aastore
astore 10
start local 10 24: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 0
aload 9
aload 10
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 10 end local 9 25: StackMap locals: int int int
StackMap stack:
aload 3
arraylength
iload 6
isub
iload 8
isub
istore 9
start local 9 26: iload 9
iload 5
if_icmpeq 30
27: new java.text.MessageFormat
dup
ldc "R_AKVSignatureLengthError"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 10
start local 10 28: iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 9
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 1
aastore
astore 11
start local 11 29: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 0
aload 10
aload 11
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 11 end local 10 30: StackMap locals: int
StackMap stack:
iload 8
newarray 8
astore 10
start local 10 31: aload 3
iload 6
aload 10
iconst_0
iload 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
32: iload 6
iload 8
iadd
istore 6
33: iload 9
newarray 8
astore 11
start local 11 34: aload 3
iload 6
aload 11
iconst_0
iload 9
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
35: aload 3
arraylength
aload 11
arraylength
isub
newarray 8
astore 12
start local 12 36: aload 3
iconst_0
aload 12
iconst_0
37: aload 3
arraylength
aload 11
arraylength
isub
38: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
39: aconst_null
astore 13
start local 13 40: ldc "SHA-256"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 13
41: goto 44
StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider java.lang.String java.lang.String byte[] com.azure.security.keyvault.keys.cryptography.models.KeyWrapAlgorithm int int int int int byte[] byte[] byte[] java.security.MessageDigest
StackMap stack: java.security.NoSuchAlgorithmException
42: astore 14
start local 14 43: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_NoSHA256Algorithm"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aload 14
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 14 44: StackMap locals:
StackMap stack:
aload 13
aload 12
invokevirtual java.security.MessageDigest.update:([B)V
45: aload 13
invokevirtual java.security.MessageDigest.digest:()[B
astore 14
start local 14 46: aload 14
ifnonnull 48
47: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_HashNull"
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
48: StackMap locals: byte[]
StackMap stack:
aload 0
aload 14
aload 11
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.AzureKeyVaultVerifySignature:([B[BLjava/lang/String;)Z
ifne 52
49: new java.text.MessageFormat
dup
ldc "R_CEKSignatureNotMatchCMK"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 15
start local 15 50: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
astore 16
start local 16 51: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 0
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 52: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 4
aload 10
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.AzureKeyVaultUnWrap:(Ljava/lang/String;Lcom/azure/security/keyvault/keys/cryptography/models/KeyWrapAlgorithm;[B)[B
astore 15
start local 15 53: aload 15
areturn
end local 15 end local 14 end local 13 end local 12 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 54 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 54 1 masterKeyPath Ljava/lang/String;
0 54 2 encryptionAlgorithm Ljava/lang/String;
0 54 3 encryptedColumnEncryptionKey [B
6 54 4 keyWrapAlgorithm Lcom/azure/security/keyvault/keys/cryptography/models/KeyWrapAlgorithm;
7 54 5 keySizeInBytes I
11 15 6 form Ljava/text/MessageFormat;
14 15 7 msgArgs [Ljava/lang/Object;
16 54 6 currentIndex I
17 54 7 keyPathLength S
19 54 8 cipherTextLength S
23 25 9 form Ljava/text/MessageFormat;
24 25 10 msgArgs [Ljava/lang/Object;
26 54 9 signatureLength I
28 30 10 form Ljava/text/MessageFormat;
29 30 11 msgArgs [Ljava/lang/Object;
31 54 10 cipherText [B
34 54 11 signature [B
36 54 12 hash [B
40 54 13 md Ljava/security/MessageDigest;
43 44 14 e Ljava/security/NoSuchAlgorithmException;
46 54 14 dataToVerify [B
50 52 15 form Ljava/text/MessageFormat;
51 52 16 msgArgs [Ljava/lang/Object;
53 54 15 decryptedCEK [B
Exception table:
from to target type
40 41 42 Class java.security.NoSuchAlgorithmException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
masterKeyPath
encryptionAlgorithm
encryptedColumnEncryptionKey
private short convertTwoBytesToShort(byte[], int);
descriptor: ([BI)S
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 2
iconst_1
iadd
aload 1
arraylength
if_icmplt 4
1: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aconst_null
ldc "R_ByteToShortConversion"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aconst_null
iconst_0
2: iconst_0
3: invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;IZ)V
athrow
4: StackMap locals:
StackMap stack:
iconst_2
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 4
start local 4 5: aload 4
getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
pop
6: aload 4
aload 1
iload 2
baload
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
7: aload 4
aload 1
iload 2
iconst_1
iadd
baload
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
8: aload 4
iconst_0
invokevirtual java.nio.ByteBuffer.getShort:(I)S
istore 3
start local 3 9: iload 3
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 10 1 input [B
0 10 2 index I
9 10 3 shortVal S
5 10 4 byteBuffer Ljava/nio/ByteBuffer;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
input
index
public byte[] encryptColumnEncryptionKey(java.lang.String, java.lang.String, byte[]);
descriptor: (Ljava/lang/String;Ljava/lang/String;[B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=19, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.ValidateNonEmptyAKVPath:(Ljava/lang/String;)V
1: aload 3
ifnonnull 3
2: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_NullColumnEncryptionKey"
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
3: StackMap locals:
StackMap stack:
aload 3
arraylength
ifne 5
4: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_EmptyCEK"
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
5: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.validateEncryptionAlgorithm:(Ljava/lang/String;)Lcom/azure/security/keyvault/keys/cryptography/models/KeyWrapAlgorithm;
astore 4
start local 4 6: aload 0
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.getAKVKeySize:(Ljava/lang/String;)I
istore 5
start local 5 7: iconst_1
newarray 8
dup
iconst_0
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.firstVersion:[B
iconst_0
baload
bastore
astore 6
start local 6 8: aload 1
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
getstatic java.nio.charset.StandardCharsets.UTF_16LE:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
astore 7
start local 7 9: iconst_2
newarray 8
astore 8
start local 8 10: aload 8
iconst_0
aload 7
arraylength
i2s
sipush 255
iand
i2b
bastore
11: aload 8
iconst_1
aload 7
arraylength
i2s
bipush 8
ishr
sipush 255
iand
i2b
bastore
12: aload 0
aload 1
aload 4
aload 3
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.AzureKeyVaultWrap:(Ljava/lang/String;Lcom/azure/security/keyvault/keys/cryptography/models/KeyWrapAlgorithm;[B)[B
astore 9
start local 9 13: iconst_2
newarray 8
astore 10
start local 10 14: aload 10
iconst_0
aload 9
arraylength
i2s
sipush 255
iand
i2b
bastore
15: aload 10
iconst_1
aload 9
arraylength
i2s
bipush 8
ishr
sipush 255
iand
i2b
bastore
16: aload 9
arraylength
iload 5
if_icmpeq 18
17: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_CipherTextLengthNotMatchRSASize"
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
18: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider java.lang.String java.lang.String byte[] com.azure.security.keyvault.keys.cryptography.models.KeyWrapAlgorithm int byte[] byte[] byte[] byte[] byte[]
StackMap stack:
aload 6
arraylength
aload 8
arraylength
iadd
aload 10
arraylength
iadd
19: aload 7
arraylength
20: iadd
21: aload 9
arraylength
22: iadd
newarray 8
astore 11
start local 11 23: aload 6
arraylength
istore 12
start local 12 24: aload 6
iconst_0
aload 11
iconst_0
aload 6
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
25: aload 8
iconst_0
aload 11
iload 12
aload 8
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
26: iload 12
aload 8
arraylength
iadd
istore 12
27: aload 10
iconst_0
aload 11
iload 12
aload 10
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
28: iload 12
aload 10
arraylength
iadd
istore 12
29: aload 7
iconst_0
aload 11
iload 12
aload 7
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
30: iload 12
aload 7
arraylength
iadd
istore 12
31: aload 9
iconst_0
aload 11
iload 12
aload 9
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
32: aconst_null
astore 13
start local 13 33: ldc "SHA-256"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 13
34: goto 37
StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider java.lang.String java.lang.String byte[] com.azure.security.keyvault.keys.cryptography.models.KeyWrapAlgorithm int byte[] byte[] byte[] byte[] byte[] byte[] int java.security.MessageDigest
StackMap stack: java.security.NoSuchAlgorithmException
35: astore 14
start local 14 36: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_NoSHA256Algorithm"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aload 14
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 14 37: StackMap locals:
StackMap stack:
aload 13
aload 11
invokevirtual java.security.MessageDigest.update:([B)V
38: aload 13
invokevirtual java.security.MessageDigest.digest:()[B
astore 14
start local 14 39: aload 0
aload 14
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.AzureKeyVaultSignHashedData:([BLjava/lang/String;)[B
astore 15
start local 15 40: aload 15
arraylength
iload 5
if_icmpeq 42
41: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_SignedHashLengthError"
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
42: StackMap locals: byte[] byte[]
StackMap stack:
aload 0
aload 14
aload 15
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.AzureKeyVaultVerifySignature:([B[BLjava/lang/String;)Z
ifne 44
43: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_InvalidSignatureComputed"
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
44: StackMap locals:
StackMap stack:
aload 6
arraylength
aload 10
arraylength
iadd
aload 8
arraylength
iadd
45: aload 9
arraylength
46: iadd
47: aload 7
arraylength
48: iadd
49: aload 15
arraylength
50: iadd
istore 16
start local 16 51: iload 16
newarray 8
astore 17
start local 17 52: iconst_0
istore 18
start local 18 53: aload 6
iconst_0
aload 17
iload 18
aload 6
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
54: iload 18
aload 6
arraylength
iadd
istore 18
55: aload 8
iconst_0
aload 17
iload 18
aload 8
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
56: iload 18
aload 8
arraylength
iadd
istore 18
57: aload 10
iconst_0
aload 17
iload 18
aload 10
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
58: iload 18
aload 10
arraylength
iadd
istore 18
59: aload 7
iconst_0
aload 17
iload 18
aload 7
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
60: iload 18
aload 7
arraylength
iadd
istore 18
61: aload 9
iconst_0
aload 17
iload 18
aload 9
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
62: iload 18
aload 9
arraylength
iadd
istore 18
63: aload 15
iconst_0
aload 17
iload 18
aload 15
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
64: aload 17
areturn
end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 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 65 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 65 1 masterKeyPath Ljava/lang/String;
0 65 2 encryptionAlgorithm Ljava/lang/String;
0 65 3 columnEncryptionKey [B
6 65 4 keyWrapAlgorithm Lcom/azure/security/keyvault/keys/cryptography/models/KeyWrapAlgorithm;
7 65 5 keySizeInBytes I
8 65 6 version [B
9 65 7 masterKeyPathBytes [B
10 65 8 keyPathLength [B
13 65 9 cipherText [B
14 65 10 cipherTextLength [B
23 65 11 dataToHash [B
24 65 12 destinationPosition I
33 65 13 md Ljava/security/MessageDigest;
36 37 14 e Ljava/security/NoSuchAlgorithmException;
39 65 14 dataToSign [B
40 65 15 signedHash [B
51 65 16 encryptedColumnEncryptionKeyLength I
52 65 17 encryptedColumnEncryptionKey [B
53 65 18 currentIndex I
Exception table:
from to target type
33 34 35 Class java.security.NoSuchAlgorithmException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
masterKeyPath
encryptionAlgorithm
columnEncryptionKey
private com.azure.security.keyvault.keys.cryptography.models.KeyWrapAlgorithm validateEncryptionAlgorithm(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/azure/security/keyvault/keys/cryptography/models/KeyWrapAlgorithm;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 4
1: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aconst_null
ldc "R_NullKeyEncryptionAlgorithm"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aconst_null
iconst_0
2: iconst_0
3: invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;IZ)V
athrow
4: StackMap locals:
StackMap stack:
ldc "RSA_OAEP"
aload 1
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 6
5: ldc "RSA-OAEP"
astore 1
6: StackMap locals:
StackMap stack:
ldc "RSA-OAEP"
aload 1
invokevirtual java.lang.String.trim:()Ljava/lang/String;
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 10
7: new java.text.MessageFormat
dup
ldc "R_InvalidKeyEncryptionAlgorithm"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 2
start local 2 8: iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
ldc "RSA-OAEP"
aastore
astore 3
start local 3 9: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 0
aload 2
aload 3
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 3 end local 2 10: StackMap locals:
StackMap stack:
aload 1
invokestatic com.azure.security.keyvault.keys.cryptography.models.KeyWrapAlgorithm.fromString:(Ljava/lang/String;)Lcom/azure/security/keyvault/keys/cryptography/models/KeyWrapAlgorithm;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 11 1 encryptionAlgorithm Ljava/lang/String;
8 10 2 form Ljava/text/MessageFormat;
9 10 3 msgArgs [Ljava/lang/Object;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
encryptionAlgorithm
private void ValidateNonEmptyAKVPath(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
invokevirtual java.lang.String.trim:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifeq 4
1: StackMap locals:
StackMap stack:
new java.text.MessageFormat
dup
ldc "R_AKVPathNull"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 2
start local 2 2: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
astore 3
start local 3 3: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aconst_null
aload 2
aload 3
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 3 end local 2 4: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 5: new java.net.URI
dup
aload 1
invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
astore 2
6: aload 2
invokevirtual java.net.URI.getHost:()Ljava/lang/String;
astore 3
start local 3 7: aload 3
ifnull 9
8: aload 3
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
astore 3
9: StackMap locals: java.net.URI java.lang.String
StackMap stack:
getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.akvTrustedEndpoints:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 13
StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider java.lang.String java.net.URI java.lang.String top java.util.Iterator
StackMap stack:
10: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 11: aload 3
ifnull 13
aload 3
aload 4
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 13
12: return
end local 4 13: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
end local 3 14: goto 19
StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider java.lang.String java.net.URI
StackMap stack: java.net.URISyntaxException
15: astore 3
start local 3 16: new java.text.MessageFormat
dup
ldc "R_AKVURLInvalid"
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 17: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
astore 5
start local 5 18: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 4
aload 5
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
aconst_null
iconst_0
aload 3
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V
athrow
end local 5 end local 4 end local 3 19: StackMap locals:
StackMap stack:
new java.text.MessageFormat
dup
ldc "R_AKVMasterKeyPathInvalid"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 3
start local 3 20: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
astore 4
start local 4 21: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aconst_null
aload 3
aload 4
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 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 22 1 masterKeyPath Ljava/lang/String;
2 4 2 form Ljava/text/MessageFormat;
3 4 3 msgArgs [Ljava/lang/Object;
5 22 2 parsedUri Ljava/net/URI;
7 14 3 host Ljava/lang/String;
11 13 4 endpoint Ljava/lang/String;
16 19 3 e Ljava/net/URISyntaxException;
17 19 4 form Ljava/text/MessageFormat;
18 19 5 msgArgs [Ljava/lang/Object;
20 22 3 form Ljava/text/MessageFormat;
21 22 4 msgArgs [Ljava/lang/Object;
Exception table:
from to target type
5 12 15 Class java.net.URISyntaxException
13 14 15 Class java.net.URISyntaxException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
masterKeyPath
private byte[] AzureKeyVaultWrap(java.lang.String, com.azure.security.keyvault.keys.cryptography.models.KeyWrapAlgorithm, byte[]);
descriptor: (Ljava/lang/String;Lcom/azure/security/keyvault/keys/cryptography/models/KeyWrapAlgorithm;[B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ifnonnull 2
1: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_CEKNull"
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
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.getCryptographyClient:(Ljava/lang/String;)Lcom/azure/security/keyvault/keys/cryptography/CryptographyClient;
astore 4
start local 4 3: aload 4
getstatic com.azure.security.keyvault.keys.cryptography.models.KeyWrapAlgorithm.RSA_OAEP:Lcom/azure/security/keyvault/keys/cryptography/models/KeyWrapAlgorithm;
aload 3
invokevirtual com.azure.security.keyvault.keys.cryptography.CryptographyClient.wrapKey:(Lcom/azure/security/keyvault/keys/cryptography/models/KeyWrapAlgorithm;[B)Lcom/azure/security/keyvault/keys/cryptography/models/WrapResult;
astore 5
start local 5 4: aload 5
invokevirtual com.azure.security.keyvault.keys.cryptography.models.WrapResult.getEncryptedKey:()[B
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 5 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 5 1 masterKeyPath Ljava/lang/String;
0 5 2 encryptionAlgorithm Lcom/azure/security/keyvault/keys/cryptography/models/KeyWrapAlgorithm;
0 5 3 columnEncryptionKey [B
3 5 4 cryptoClient Lcom/azure/security/keyvault/keys/cryptography/CryptographyClient;
4 5 5 wrappedKey Lcom/azure/security/keyvault/keys/cryptography/models/WrapResult;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
masterKeyPath
encryptionAlgorithm
columnEncryptionKey
private byte[] AzureKeyVaultUnWrap(java.lang.String, com.azure.security.keyvault.keys.cryptography.models.KeyWrapAlgorithm, byte[]);
descriptor: (Ljava/lang/String;Lcom/azure/security/keyvault/keys/cryptography/models/KeyWrapAlgorithm;[B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ifnonnull 2
1: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_EncryptedCEKNull"
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 3
arraylength
ifne 4
3: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_EmptyEncryptedCEK"
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
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.getCryptographyClient:(Ljava/lang/String;)Lcom/azure/security/keyvault/keys/cryptography/CryptographyClient;
astore 4
start local 4 5: aload 4
aload 2
aload 3
invokevirtual com.azure.security.keyvault.keys.cryptography.CryptographyClient.unwrapKey:(Lcom/azure/security/keyvault/keys/cryptography/models/KeyWrapAlgorithm;[B)Lcom/azure/security/keyvault/keys/cryptography/models/UnwrapResult;
astore 5
start local 5 6: aload 5
invokevirtual com.azure.security.keyvault.keys.cryptography.models.UnwrapResult.getKey:()[B
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 7 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 7 1 masterKeyPath Ljava/lang/String;
0 7 2 encryptionAlgorithm Lcom/azure/security/keyvault/keys/cryptography/models/KeyWrapAlgorithm;
0 7 3 encryptedColumnEncryptionKey [B
5 7 4 cryptoClient Lcom/azure/security/keyvault/keys/cryptography/CryptographyClient;
6 7 5 unwrappedKey Lcom/azure/security/keyvault/keys/cryptography/models/UnwrapResult;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
masterKeyPath
encryptionAlgorithm
encryptedColumnEncryptionKey
private com.azure.security.keyvault.keys.cryptography.CryptographyClient getCryptographyClient(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/azure/security/keyvault/keys/cryptography/CryptographyClient;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedCryptographyClients:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 2
1: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedCryptographyClients:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.azure.security.keyvault.keys.cryptography.CryptographyClient
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.getKeyVaultKey:(Ljava/lang/String;)Lcom/azure/security/keyvault/keys/models/KeyVaultKey;
astore 2
start local 2 3: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.credential:Lcom/azure/core/credential/TokenCredential;
ifnull 8
4: new com.azure.security.keyvault.keys.cryptography.CryptographyClientBuilder
dup
invokespecial com.azure.security.keyvault.keys.cryptography.CryptographyClientBuilder.<init>:()V
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.credential:Lcom/azure/core/credential/TokenCredential;
invokevirtual com.azure.security.keyvault.keys.cryptography.CryptographyClientBuilder.credential:(Lcom/azure/core/credential/TokenCredential;)Lcom/azure/security/keyvault/keys/cryptography/CryptographyClientBuilder;
aload 2
invokevirtual com.azure.security.keyvault.keys.models.KeyVaultKey.getId:()Ljava/lang/String;
invokevirtual com.azure.security.keyvault.keys.cryptography.CryptographyClientBuilder.keyIdentifier:(Ljava/lang/String;)Lcom/azure/security/keyvault/keys/cryptography/CryptographyClientBuilder;
5: invokevirtual com.azure.security.keyvault.keys.cryptography.CryptographyClientBuilder.buildClient:()Lcom/azure/security/keyvault/keys/cryptography/CryptographyClient;
6: astore 3
start local 3 7: goto 11
end local 3 8: StackMap locals: com.azure.security.keyvault.keys.models.KeyVaultKey
StackMap stack:
new com.azure.security.keyvault.keys.cryptography.CryptographyClientBuilder
dup
invokespecial com.azure.security.keyvault.keys.cryptography.CryptographyClientBuilder.<init>:()V
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.keyVaultPipeline:Lcom/azure/core/http/HttpPipeline;
invokevirtual com.azure.security.keyvault.keys.cryptography.CryptographyClientBuilder.pipeline:(Lcom/azure/core/http/HttpPipeline;)Lcom/azure/security/keyvault/keys/cryptography/CryptographyClientBuilder;
9: aload 2
invokevirtual com.azure.security.keyvault.keys.models.KeyVaultKey.getId:()Ljava/lang/String;
invokevirtual com.azure.security.keyvault.keys.cryptography.CryptographyClientBuilder.keyIdentifier:(Ljava/lang/String;)Lcom/azure/security/keyvault/keys/cryptography/CryptographyClientBuilder;
invokevirtual com.azure.security.keyvault.keys.cryptography.CryptographyClientBuilder.buildClient:()Lcom/azure/security/keyvault/keys/cryptography/CryptographyClient;
10: astore 3
start local 3 11: StackMap locals: com.azure.security.keyvault.keys.cryptography.CryptographyClient
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedCryptographyClients:Ljava/util/Map;
aload 1
aload 3
invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedCryptographyClients:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.azure.security.keyvault.keys.cryptography.CryptographyClient
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 13 1 masterKeyPath Ljava/lang/String;
3 13 2 retrievedKey Lcom/azure/security/keyvault/keys/models/KeyVaultKey;
7 8 3 cryptoClient Lcom/azure/security/keyvault/keys/cryptography/CryptographyClient;
11 13 3 cryptoClient Lcom/azure/security/keyvault/keys/cryptography/CryptographyClient;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
masterKeyPath
private byte[] AzureKeyVaultSignHashedData(byte[], java.lang.String);
descriptor: ([BLjava/lang/String;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.$assertionsDisabled:Z
ifne 2
aload 1
ifnull 1
aload 1
arraylength
ifne 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.getCryptographyClient:(Ljava/lang/String;)Lcom/azure/security/keyvault/keys/cryptography/CryptographyClient;
astore 3
start local 3 3: aload 3
getstatic com.azure.security.keyvault.keys.cryptography.models.SignatureAlgorithm.RS256:Lcom/azure/security/keyvault/keys/cryptography/models/SignatureAlgorithm;
aload 1
invokevirtual com.azure.security.keyvault.keys.cryptography.CryptographyClient.sign:(Lcom/azure/security/keyvault/keys/cryptography/models/SignatureAlgorithm;[B)Lcom/azure/security/keyvault/keys/cryptography/models/SignResult;
astore 4
start local 4 4: aload 4
invokevirtual com.azure.security.keyvault.keys.cryptography.models.SignResult.getSignature:()[B
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 5 1 dataToSign [B
0 5 2 masterKeyPath Ljava/lang/String;
3 5 3 cryptoClient Lcom/azure/security/keyvault/keys/cryptography/CryptographyClient;
4 5 4 signedData Lcom/azure/security/keyvault/keys/cryptography/models/SignResult;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
dataToSign
masterKeyPath
private boolean AzureKeyVaultVerifySignature(byte[], byte[], java.lang.String);
descriptor: ([B[BLjava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.$assertionsDisabled:Z
ifne 2
aload 1
ifnull 1
aload 1
arraylength
ifne 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.$assertionsDisabled:Z
ifne 4
aload 2
ifnull 3
aload 2
arraylength
ifne 4
StackMap locals:
StackMap stack:
3: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.getCryptographyClient:(Ljava/lang/String;)Lcom/azure/security/keyvault/keys/cryptography/CryptographyClient;
astore 4
start local 4 5: aload 4
getstatic com.azure.security.keyvault.keys.cryptography.models.SignatureAlgorithm.RS256:Lcom/azure/security/keyvault/keys/cryptography/models/SignatureAlgorithm;
aload 1
aload 2
invokevirtual com.azure.security.keyvault.keys.cryptography.CryptographyClient.verify:(Lcom/azure/security/keyvault/keys/cryptography/models/SignatureAlgorithm;[B[B)Lcom/azure/security/keyvault/keys/cryptography/models/VerifyResult;
astore 5
start local 5 6: aload 5
invokevirtual com.azure.security.keyvault.keys.cryptography.models.VerifyResult.isValid:()Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
ireturn
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/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 7 1 dataToVerify [B
0 7 2 signature [B
0 7 3 masterKeyPath Ljava/lang/String;
5 7 4 cryptoClient Lcom/azure/security/keyvault/keys/cryptography/CryptographyClient;
6 7 5 valid Lcom/azure/security/keyvault/keys/cryptography/models/VerifyResult;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
dataToVerify
signature
masterKeyPath
private int getAKVKeySize(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.getKeyVaultKey:(Ljava/lang/String;)Lcom/azure/security/keyvault/keys/models/KeyVaultKey;
astore 2
start local 2 1: aload 2
invokevirtual com.azure.security.keyvault.keys.models.KeyVaultKey.getKey:()Lcom/azure/security/keyvault/keys/models/JsonWebKey;
invokevirtual com.azure.security.keyvault.keys.models.JsonWebKey.getN:()[B
arraylength
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 2 1 masterKeyPath Ljava/lang/String;
1 2 2 retrievedKey Lcom/azure/security/keyvault/keys/models/KeyVaultKey;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
masterKeyPath
private com.azure.security.keyvault.keys.models.KeyVaultKey getKeyVaultKey(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/azure/security/keyvault/keys/models/KeyVaultKey;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=9, args_size=2
start local 0 start local 1 0: aload 1
ldc "/"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 2
start local 2 1: aload 2
iconst_4
aaload
astore 3
start local 3 2: aconst_null
astore 4
start local 4 3: aload 2
arraylength
bipush 6
if_icmpne 5
4: aload 2
aload 2
arraylength
iconst_1
isub
aaload
astore 4
5: StackMap locals: java.lang.String[] java.lang.String java.lang.String
StackMap stack:
aload 0
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.getKeyClient:(Ljava/lang/String;)Lcom/azure/security/keyvault/keys/KeyClient;
astore 5
start local 5 6: aload 4
ifnull 9
7: aload 5
aload 3
aload 4
invokevirtual com.azure.security.keyvault.keys.KeyClient.getKey:(Ljava/lang/String;Ljava/lang/String;)Lcom/azure/security/keyvault/keys/models/KeyVaultKey;
astore 6
start local 6 8: goto 10
end local 6 9: StackMap locals: com.azure.security.keyvault.keys.KeyClient
StackMap stack:
aload 5
aload 3
invokevirtual com.azure.security.keyvault.keys.KeyClient.getKey:(Ljava/lang/String;)Lcom/azure/security/keyvault/keys/models/KeyVaultKey;
astore 6
start local 6 10: StackMap locals: com.azure.security.keyvault.keys.models.KeyVaultKey
StackMap stack:
aload 6
ifnonnull 14
11: new java.text.MessageFormat
dup
ldc "R_AKVKeyNotFound"
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 12: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aload 2
arraylength
iconst_1
isub
aaload
aastore
astore 8
start local 8 13: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aconst_null
aload 7
aload 8
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 8 end local 7 14: StackMap locals:
StackMap stack:
aload 6
invokevirtual com.azure.security.keyvault.keys.models.KeyVaultKey.getKeyType:()Lcom/azure/security/keyvault/keys/models/KeyType;
getstatic com.azure.security.keyvault.keys.models.KeyType.RSA:Lcom/azure/security/keyvault/keys/models/KeyType;
if_acmpeq 18
aload 6
invokevirtual com.azure.security.keyvault.keys.models.KeyVaultKey.getKeyType:()Lcom/azure/security/keyvault/keys/models/KeyType;
getstatic com.azure.security.keyvault.keys.models.KeyType.RSA_HSM:Lcom/azure/security/keyvault/keys/models/KeyType;
if_acmpeq 18
15: new java.text.MessageFormat
dup
ldc "R_NonRSAKey"
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 16: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
invokevirtual com.azure.security.keyvault.keys.models.KeyVaultKey.getKeyType:()Lcom/azure/security/keyvault/keys/models/KeyType;
invokevirtual com.azure.security.keyvault.keys.models.KeyType.toString:()Ljava/lang/String;
aastore
astore 8
start local 8 17: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aconst_null
aload 7
aload 8
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 8 end local 7 18: StackMap locals:
StackMap stack:
aload 6
19: areturn
end local 6 end local 5 20: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider java.lang.String java.lang.String[] java.lang.String java.lang.String
StackMap stack: java.lang.RuntimeException
astore 5
start local 5 21: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 5
invokevirtual java.lang.RuntimeException.getMessage:()Ljava/lang/String;
aload 5
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
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 22 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 22 1 masterKeyPath Ljava/lang/String;
1 22 2 keyTokens [Ljava/lang/String;
2 22 3 keyName Ljava/lang/String;
3 22 4 keyVersion Ljava/lang/String;
6 20 5 keyClient Lcom/azure/security/keyvault/keys/KeyClient;
8 9 6 retrievedKey Lcom/azure/security/keyvault/keys/models/KeyVaultKey;
10 20 6 retrievedKey Lcom/azure/security/keyvault/keys/models/KeyVaultKey;
12 14 7 form Ljava/text/MessageFormat;
13 14 8 msgArgs [Ljava/lang/Object;
16 18 7 form Ljava/text/MessageFormat;
17 18 8 msgArgs [Ljava/lang/Object;
21 22 5 e Ljava/lang/RuntimeException;
Exception table:
from to target type
5 19 20 Class java.lang.RuntimeException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
masterKeyPath
private com.azure.security.keyvault.keys.KeyClient getKeyClient(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/azure/security/keyvault/keys/KeyClient;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedKeyClients:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 2
1: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedKeyClients:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.azure.security.keyvault.keys.KeyClient
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokestatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.getVaultUrl:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 3: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.credential:Lcom/azure/core/credential/TokenCredential;
ifnull 6
4: new com.azure.security.keyvault.keys.KeyClientBuilder
dup
invokespecial com.azure.security.keyvault.keys.KeyClientBuilder.<init>:()V
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.credential:Lcom/azure/core/credential/TokenCredential;
invokevirtual com.azure.security.keyvault.keys.KeyClientBuilder.credential:(Lcom/azure/core/credential/TokenCredential;)Lcom/azure/security/keyvault/keys/KeyClientBuilder;
aload 2
invokevirtual com.azure.security.keyvault.keys.KeyClientBuilder.vaultUrl:(Ljava/lang/String;)Lcom/azure/security/keyvault/keys/KeyClientBuilder;
invokevirtual com.azure.security.keyvault.keys.KeyClientBuilder.buildClient:()Lcom/azure/security/keyvault/keys/KeyClient;
astore 3
start local 3 5: goto 7
end local 3 6: StackMap locals: java.lang.String
StackMap stack:
new com.azure.security.keyvault.keys.KeyClientBuilder
dup
invokespecial com.azure.security.keyvault.keys.KeyClientBuilder.<init>:()V
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.keyVaultPipeline:Lcom/azure/core/http/HttpPipeline;
invokevirtual com.azure.security.keyvault.keys.KeyClientBuilder.pipeline:(Lcom/azure/core/http/HttpPipeline;)Lcom/azure/security/keyvault/keys/KeyClientBuilder;
aload 2
invokevirtual com.azure.security.keyvault.keys.KeyClientBuilder.vaultUrl:(Ljava/lang/String;)Lcom/azure/security/keyvault/keys/KeyClientBuilder;
invokevirtual com.azure.security.keyvault.keys.KeyClientBuilder.buildClient:()Lcom/azure/security/keyvault/keys/KeyClient;
astore 3
start local 3 7: StackMap locals: com.azure.security.keyvault.keys.KeyClient
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedKeyClients:Ljava/util/Map;
aload 1
aload 3
invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.cachedKeyClients:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.azure.security.keyvault.keys.KeyClient
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 9 1 masterKeyPath Ljava/lang/String;
3 9 2 vaultUrl Ljava/lang/String;
5 6 3 keyClient Lcom/azure/security/keyvault/keys/KeyClient;
7 9 3 keyClient Lcom/azure/security/keyvault/keys/KeyClient;
MethodParameters:
Name Flags
masterKeyPath
private static java.lang.String getVaultUrl(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
ldc "/"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 1
start local 1 1: aload 1
iconst_2
aaload
astore 2
start local 2 2: new java.lang.StringBuilder
dup
ldc "https://"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 masterKeyPath Ljava/lang/String;
1 3 1 keyTokens [Ljava/lang/String;
2 3 2 hostName Ljava/lang/String;
MethodParameters:
Name Flags
masterKeyPath
public boolean verifyColumnMasterKeyMetadata(java.lang.String, boolean, byte[]);
descriptor: (Ljava/lang/String;Z[B)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokestatic com.microsoft.sqlserver.jdbc.KeyStoreProviderCommon.validateNonEmptyMasterKeyPath:(Ljava/lang/String;)V
3: ldc "SHA-256"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 4
start local 4 4: aload 4
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.name:Ljava/lang/String;
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
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.update:([B)V
5: aload 4
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
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.update:([B)V
6: aload 4
ldc "true"
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.update:([B)V
7: aload 4
invokevirtual java.security.MessageDigest.digest:()[B
astore 5
start local 5 8: aload 5
ifnonnull 10
9: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_HashNull"
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
10: StackMap locals: java.security.MessageDigest byte[]
StackMap stack:
aload 0
aload 5
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.AzureKeyVaultSignHashedData:([BLjava/lang/String;)[B
astore 6
start local 6 11: aload 6
ifnonnull 13
12: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_SignedHashLengthError"
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
13: StackMap locals: byte[]
StackMap stack:
aload 0
aload 5
aload 3
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.AzureKeyVaultVerifySignature:([B[BLjava/lang/String;)Z
14: ireturn
end local 6 end local 5 end local 4 15: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider java.lang.String int byte[]
StackMap stack: java.security.NoSuchAlgorithmException
astore 4
start local 4 16: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_NoSHA256Algorithm"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aload 4
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionAzureKeyVaultProvider;
0 17 1 masterKeyPath Ljava/lang/String;
0 17 2 allowEnclaveComputations Z
0 17 3 signature [B
4 15 4 md Ljava/security/MessageDigest;
8 15 5 dataToVerify [B
11 15 6 signedHash [B
16 17 4 e Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
3 14 15 Class java.security.NoSuchAlgorithmException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
masterKeyPath
allowEnclaveComputations
signature
private static java.util.List<java.lang.String> getTrustedEndpoints();
descriptor: ()Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=9, args_size=0
0: invokestatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.getMssqlJdbcProperties:()Ljava/util/Properties;
astore 0
start local 0 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 2: iconst_1
istore 2
start local 2 3: aload 0
ifnull 18
4: aload 0
ldc "AKVTrustedEndpoints"
invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 5: aload 3
ifnull 18
aload 3
invokevirtual java.lang.String.trim:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifne 18
6: aload 3
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 3
7: bipush 59
aload 3
iconst_0
invokevirtual java.lang.String.charAt:(I)C
if_icmpeq 10
8: iconst_0
istore 2
9: goto 11
10: StackMap locals: java.util.Properties java.util.List int java.lang.String
StackMap stack:
aload 3
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
11: StackMap locals:
StackMap stack:
aload 3
ldc ";"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 4
start local 4 12: aload 4
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 17
StackMap locals: java.util.Properties java.util.List int java.lang.String java.lang.String[] top int int java.lang.String[]
StackMap stack:
13: aload 8
iload 6
aaload
astore 5
start local 5 14: aload 5
ifnull 16
aload 5
invokevirtual java.lang.String.trim:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifne 16
15: aload 1
aload 5
invokevirtual java.lang.String.trim:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 16: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
17: iload 6
iload 7
if_icmplt 13
end local 4 end local 3 18: StackMap locals: java.util.Properties java.util.List int
StackMap stack:
iload 2
ifeq 27
19: aload 1
ldc "vault.azure.net"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
20: aload 1
ldc "vault.azure.cn"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
21: aload 1
ldc "vault.usgovcloudapi.net"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
22: aload 1
ldc "vault.microsoftazure.de"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
23: aload 1
ldc "managedhsm.azure.net"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
24: aload 1
ldc "managedhsm.azure.cn"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
25: aload 1
ldc "managedhsm.usgovcloudapi.net"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
26: aload 1
ldc "managedhsm.microsoftazure.de"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
27: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 28 0 mssqlJdbcProperties Ljava/util/Properties;
2 28 1 trustedEndpoints Ljava/util/List<Ljava/lang/String;>;
3 28 2 append Z
5 18 3 endpoints Ljava/lang/String;
12 18 4 entries [Ljava/lang/String;
14 16 5 entry Ljava/lang/String;
Signature: ()Ljava/util/List<Ljava/lang/String;>;
private static java.util.Properties getMssqlJdbcProperties();
descriptor: ()Ljava/util/Properties;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=0
0: aconst_null
astore 0
start local 0 1: aconst_null
astore 1
aconst_null
astore 2
2: new java.io.FileInputStream
dup
ldc "mssql-jdbc.properties"
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
astore 3
start local 3 3: new java.util.Properties
dup
invokespecial java.util.Properties.<init>:()V
astore 0
4: aload 0
aload 3
invokevirtual java.util.Properties.load:(Ljava/io/InputStream;)V
5: aload 3
ifnull 14
aload 3
invokevirtual java.io.FileInputStream.close:()V
goto 14
StackMap locals: java.util.Properties java.lang.Throwable java.lang.Throwable java.io.FileInputStream
StackMap stack: java.lang.Throwable
6: astore 1
aload 3
ifnull 7
aload 3
invokevirtual java.io.FileInputStream.close:()V
end local 3 StackMap locals:
StackMap stack:
7: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 2
aload 1
ifnonnull 9
aload 2
astore 1
goto 10
StackMap locals:
StackMap stack:
9: aload 1
aload 2
if_acmpeq 10
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
10: aload 1
athrow
StackMap locals: java.util.Properties
StackMap stack: java.io.IOException
11: astore 1
start local 1 12: getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.akvLogger: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 14
13: getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionAzureKeyVaultProvider.akvLogger:Ljava/util/logging/Logger;
new java.lang.StringBuilder
dup
ldc "Unable to load the mssql-jdbc.properties file: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
end local 1 14: StackMap locals:
StackMap stack:
aload 0
ifnull 15
aload 0
invokevirtual java.util.Properties.isEmpty:()Z
ifne 15
aload 0
goto 16
StackMap locals:
StackMap stack:
15: aconst_null
StackMap locals:
StackMap stack: java.util.Properties
16: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 17 0 props Ljava/util/Properties;
3 7 3 in Ljava/io/FileInputStream;
12 14 1 e Ljava/io/IOException;
Exception table:
from to target type
3 5 6 any
2 8 8 any
1 11 11 Class java.io.IOException
}
SourceFile: "SQLServerColumnEncryptionAzureKeyVaultProvider.java"