public class com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider 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.SQLServerColumnEncryptionJavaKeyStoreProvider
super_class: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionKeyStoreProvider
{
java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.lang.String keyStorePath;
descriptor: Ljava/lang/String;
flags: (0x0000)
char[] keyStorePwd;
descriptor: [C
flags: (0x0000)
private static final java.util.logging.Logger javaKeyStoreLogger;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider"
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
1: putstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.javaKeyStoreLogger:Ljava/util/logging/Logger;
2: 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.SQLServerColumnEncryptionJavaKeyStoreProvider.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/SQLServerColumnEncryptionJavaKeyStoreProvider;
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.SQLServerColumnEncryptionJavaKeyStoreProvider.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
public void <init>(java.lang.String, char[]);
descriptor: (Ljava/lang/String;[C)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 "MSSQL_JAVA_KEYSTORE"
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.name:Ljava/lang/String;
2: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.keyStorePath:Ljava/lang/String;
3: aload 0
aconst_null
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.keyStorePwd:[C
4: getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.javaKeyStoreLogger:Ljava/util/logging/Logger;
ldc Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
5: ldc "SQLServerColumnEncryptionJavaKeyStoreProvider"
6: invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;)V
7: aload 1
ifnull 8
aload 1
invokevirtual java.lang.String.length:()I
ifne 11
8: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider java.lang.String char[]
StackMap stack:
new java.text.MessageFormat
dup
ldc "R_InvalidConnectionSetting"
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 9: iconst_2
anewarray java.lang.Object
dup
iconst_0
ldc "keyStoreLocation"
aastore
dup
iconst_1
aload 1
aastore
astore 4
start local 4 10: 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 11: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.keyStorePath:Ljava/lang/String;
12: getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.javaKeyStoreLogger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 14
13: getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.javaKeyStoreLogger:Ljava/util/logging/Logger;
ldc "Path of key store provider is set."
invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
14: StackMap locals:
StackMap stack:
aload 2
ifnonnull 16
15: ldc ""
invokevirtual java.lang.String.toCharArray:()[C
astore 2
16: StackMap locals:
StackMap stack:
aload 0
aload 2
arraylength
newarray 5
putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.keyStorePwd:[C
17: aload 2
iconst_0
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.keyStorePwd:[C
iconst_0
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
18: getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.javaKeyStoreLogger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 20
19: getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.javaKeyStoreLogger:Ljava/util/logging/Logger;
ldc "Password for key store provider is set."
invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
20: StackMap locals:
StackMap stack:
getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.javaKeyStoreLogger:Ljava/util/logging/Logger;
ldc Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
21: ldc "SQLServerColumnEncryptionJavaKeyStoreProvider"
22: invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
23: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
0 24 1 keyStoreLocation Ljava/lang/String;
0 24 2 keyStoreSecret [C
9 11 3 form Ljava/text/MessageFormat;
10 11 4 msgArgs [Ljava/lang/Object;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
keyStoreLocation
keyStoreSecret
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=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.javaKeyStoreLogger:Ljava/util/logging/Logger;
ldc Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
1: ldc "decryptColumnEncryptionKey"
ldc "Decrypting Column Encryption Key."
2: invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
3: aload 1
invokestatic com.microsoft.sqlserver.jdbc.KeyStoreProviderCommon.validateNonEmptyMasterKeyPath:(Ljava/lang/String;)V
4: aload 0
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.getCertificateDetails:(Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/CertificateDetails;
astore 4
start local 4 5: aload 1
aload 2
6: aload 3
aload 4
7: invokestatic com.microsoft.sqlserver.jdbc.KeyStoreProviderCommon.decryptColumnEncryptionKey:(Ljava/lang/String;Ljava/lang/String;[BLcom/microsoft/sqlserver/jdbc/CertificateDetails;)[B
astore 5
start local 5 8: getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.javaKeyStoreLogger:Ljava/util/logging/Logger;
ldc Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
9: ldc "decryptColumnEncryptionKey"
ldc "Finished decrypting Column Encryption Key."
10: invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
11: aload 5
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 12 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
0 12 1 masterKeyPath Ljava/lang/String;
0 12 2 encryptionAlgorithm Ljava/lang/String;
0 12 3 encryptedColumnEncryptionKey [B
5 12 4 certificateDetails Lcom/microsoft/sqlserver/jdbc/CertificateDetails;
8 12 5 plainCEK [B
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
masterKeyPath
encryptionAlgorithm
encryptedColumnEncryptionKey
private com.microsoft.sqlserver.jdbc.CertificateDetails getCertificateDetails(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/CertificateDetails;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=9, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: aconst_null
astore 4
start local 4 3: aload 1
ifnull 4
aload 1
invokevirtual java.lang.String.length:()I
ifne 7
4: StackMap locals: java.io.FileInputStream java.security.KeyStore com.microsoft.sqlserver.jdbc.CertificateDetails
StackMap stack:
new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aconst_null
ldc "R_InvalidMasterKeyDetails"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aconst_null
5: iconst_0
iconst_0
6: invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;IZ)V
athrow
7: StackMap locals:
StackMap stack:
ldc "JKS"
invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
astore 3
8: new java.io.FileInputStream
dup
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.keyStorePath:Ljava/lang/String;
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
astore 2
9: aload 3
aload 2
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.keyStorePwd:[C
invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
10: goto 17
StackMap locals:
StackMap stack: java.io.IOException
11: pop
12: aload 2
ifnull 14
13: aload 2
invokevirtual java.io.FileInputStream.close:()V
14: StackMap locals:
StackMap stack:
ldc "PKCS12"
invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
astore 3
15: new java.io.FileInputStream
dup
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.keyStorePath:Ljava/lang/String;
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
astore 2
16: aload 3
aload 2
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.keyStorePwd:[C
invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
17: StackMap locals:
StackMap stack:
aload 0
aload 3
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.getCertificateDetailsByAlias:(Ljava/security/KeyStore;Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/CertificateDetails;
astore 4
18: goto 31
StackMap locals:
StackMap stack: java.io.FileNotFoundException
19: pop
20: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 0
ldc "R_KeyStoreNotFound"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)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
21: StackMap locals:
StackMap stack: java.lang.Exception
astore 5
start local 5 22: new java.text.MessageFormat
dup
ldc "R_invalidKeyStoreFile"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 6
start local 6 23: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.keyStorePath:Ljava/lang/String;
aastore
astore 7
start local 7 24: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 6
aload 7
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
aload 5
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 7 end local 6 end local 5 25: StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
26: aload 2
ifnull 30
27: aload 2
invokevirtual java.io.FileInputStream.close:()V
28: goto 30
29: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider java.lang.String java.io.FileInputStream java.security.KeyStore com.microsoft.sqlserver.jdbc.CertificateDetails top top top java.lang.Throwable
StackMap stack: java.io.IOException
pop
30: StackMap locals:
StackMap stack:
aload 8
athrow
31: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider java.lang.String java.io.FileInputStream java.security.KeyStore com.microsoft.sqlserver.jdbc.CertificateDetails
StackMap stack:
aload 2
ifnull 35
32: aload 2
invokevirtual java.io.FileInputStream.close:()V
33: goto 35
34: StackMap locals:
StackMap stack: java.io.IOException
pop
35: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
0 36 1 masterKeyPath Ljava/lang/String;
1 36 2 fis Ljava/io/FileInputStream;
2 36 3 keyStore Ljava/security/KeyStore;
3 36 4 certificateDetails Lcom/microsoft/sqlserver/jdbc/CertificateDetails;
22 25 5 e Ljava/lang/Exception;
23 25 6 form Ljava/text/MessageFormat;
24 25 7 msgArgs [Ljava/lang/Object;
Exception table:
from to target type
7 10 11 Class java.io.IOException
3 18 19 Class java.io.FileNotFoundException
3 18 21 Class java.io.IOException
3 18 21 Class java.security.cert.CertificateException
3 18 21 Class java.security.NoSuchAlgorithmException
3 18 21 Class java.security.KeyStoreException
3 25 25 any
26 28 29 Class java.io.IOException
31 33 34 Class java.io.IOException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
masterKeyPath
private com.microsoft.sqlserver.jdbc.CertificateDetails getCertificateDetailsByAlias(java.security.KeyStore, java.lang.String);
descriptor: (Ljava/security/KeyStore;Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/CertificateDetails;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokevirtual java.security.KeyStore.getCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate;
checkcast java.security.cert.X509Certificate
astore 3
start local 3 1: aload 1
aload 2
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.keyStorePwd:[C
invokevirtual java.security.KeyStore.getKey:(Ljava/lang/String;[C)Ljava/security/Key;
astore 4
start local 4 2: aload 3
ifnonnull 8
3: new java.text.MessageFormat
dup
4: ldc "R_CertificateNotFoundForAlias"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
5: invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 5
start local 5 6: iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
ldc "MSSQL_JAVA_KEYSTORE"
aastore
astore 6
start local 6 7: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 0
aload 5
aload 6
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 6 end local 5 8: StackMap locals: java.security.cert.X509Certificate java.security.Key
StackMap stack:
aload 4
ifnonnull 10
9: new java.security.UnrecoverableKeyException
dup
invokespecial java.security.UnrecoverableKeyException.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
new com.microsoft.sqlserver.jdbc.CertificateDetails
dup
aload 3
aload 4
invokespecial com.microsoft.sqlserver.jdbc.CertificateDetails.<init>:(Ljava/security/cert/X509Certificate;Ljava/security/Key;)V
11: areturn
end local 4 end local 3 12: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider java.security.KeyStore java.lang.String
StackMap stack: java.security.UnrecoverableKeyException
pop
13: new java.text.MessageFormat
dup
ldc "R_UnrecoverableKeyAE"
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 14: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
astore 4
start local 4 15: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 0
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 16: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 3
start local 3 17: new java.text.MessageFormat
dup
ldc "R_CertificateError"
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 18: iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.name:Ljava/lang/String;
aastore
astore 5
start local 5 19: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 4
aload 5
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
aload 3
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 20 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
0 20 1 keyStore Ljava/security/KeyStore;
0 20 2 alias Ljava/lang/String;
1 12 3 publicCertificate Ljava/security/cert/X509Certificate;
2 12 4 keyPrivate Ljava/security/Key;
6 8 5 form Ljava/text/MessageFormat;
7 8 6 msgArgs [Ljava/lang/Object;
14 16 3 form Ljava/text/MessageFormat;
15 16 4 msgArgs [Ljava/lang/Object;
17 20 3 e Ljava/security/GeneralSecurityException;
18 20 4 form Ljava/text/MessageFormat;
19 20 5 msgArgs [Ljava/lang/Object;
Exception table:
from to target type
0 11 12 Class java.security.UnrecoverableKeyException
0 11 16 Class java.security.NoSuchAlgorithmException
0 11 16 Class java.security.KeyStoreException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
keyStore
alias
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=7, locals=16, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.javaKeyStoreLogger:Ljava/util/logging/Logger;
ldc Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
1: ldc "encryptColumnEncryptionKey"
ldc "Encrypting Column Encryption Key."
2: invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
3: getstatic com.microsoft.sqlserver.jdbc.KeyStoreProviderCommon.version:[B
astore 4
start local 4 4: aload 1
invokestatic com.microsoft.sqlserver.jdbc.KeyStoreProviderCommon.validateNonEmptyMasterKeyPath:(Ljava/lang/String;)V
5: aload 3
ifnonnull 9
6: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aconst_null
ldc "R_NullColumnEncryptionKey"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aconst_null
iconst_0
7: iconst_0
8: invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;IZ)V
athrow
9: StackMap locals: byte[]
StackMap stack:
aload 3
arraylength
ifne 13
10: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aconst_null
ldc "R_EmptyColumnEncryptionKey"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
aconst_null
iconst_0
11: iconst_0
12: invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;IZ)V
athrow
13: StackMap locals:
StackMap stack:
aload 2
iconst_1
invokestatic com.microsoft.sqlserver.jdbc.KeyStoreProviderCommon.validateEncryptionAlgorithm:(Ljava/lang/String;Z)V
14: aload 0
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.getCertificateDetails:(Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/CertificateDetails;
astore 5
start local 5 15: aload 0
aload 3
aload 5
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.encryptRSAOAEP:([BLcom/microsoft/sqlserver/jdbc/CertificateDetails;)[B
astore 6
start local 6 16: aload 0
aload 6
arraylength
i2s
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.getLittleEndianBytesFromShort:(S)[B
astore 7
start local 7 17: 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
astore 8
start local 8 18: aload 0
aload 8
arraylength
i2s
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.getLittleEndianBytesFromShort:(S)[B
astore 9
start local 9 19: aload 4
arraylength
aload 9
arraylength
iadd
aload 7
arraylength
iadd
20: aload 8
arraylength
21: iadd
22: aload 6
arraylength
23: iadd
newarray 8
astore 10
start local 10 24: aload 4
arraylength
istore 11
start local 11 25: aload 4
iconst_0
aload 10
iconst_0
aload 4
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
26: aload 9
iconst_0
aload 10
iload 11
aload 9
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
27: iload 11
aload 9
arraylength
iadd
istore 11
28: aload 7
iconst_0
aload 10
iload 11
aload 7
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
29: iload 11
aload 7
arraylength
iadd
istore 11
30: aload 8
iconst_0
aload 10
iload 11
aload 8
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
31: iload 11
aload 8
arraylength
iadd
istore 11
32: aload 6
iconst_0
aload 10
iload 11
aload 6
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
33: aload 0
aload 10
aload 5
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.rsaSignHashedData:([BLcom/microsoft/sqlserver/jdbc/CertificateDetails;)[B
astore 12
start local 12 34: aload 4
arraylength
aload 7
arraylength
iadd
aload 9
arraylength
iadd
35: aload 6
arraylength
36: iadd
37: aload 8
arraylength
38: iadd
39: aload 12
arraylength
40: iadd
istore 13
start local 13 41: iload 13
newarray 8
astore 14
start local 14 42: iconst_0
istore 15
start local 15 43: aload 4
iconst_0
aload 14
iload 15
aload 4
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
44: iload 15
aload 4
arraylength
iadd
istore 15
45: aload 9
iconst_0
aload 14
iload 15
aload 9
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
46: iload 15
aload 9
arraylength
iadd
istore 15
47: aload 7
iconst_0
aload 14
iload 15
aload 7
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
48: iload 15
aload 7
arraylength
iadd
istore 15
49: aload 8
iconst_0
aload 14
iload 15
aload 8
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
50: iload 15
aload 8
arraylength
iadd
istore 15
51: aload 6
iconst_0
aload 14
iload 15
aload 6
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
52: iload 15
aload 6
arraylength
iadd
istore 15
53: aload 12
iconst_0
aload 14
iload 15
aload 12
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
54: getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.javaKeyStoreLogger:Ljava/util/logging/Logger;
ldc Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
55: ldc "encryptColumnEncryptionKey"
ldc "Finished encrypting Column Encryption Key."
56: invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
57: aload 14
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 58 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
0 58 1 masterKeyPath Ljava/lang/String;
0 58 2 encryptionAlgorithm Ljava/lang/String;
0 58 3 plainTextColumnEncryptionKey [B
4 58 4 version [B
15 58 5 certificateDetails Lcom/microsoft/sqlserver/jdbc/CertificateDetails;
16 58 6 cipherText [B
17 58 7 cipherTextLength [B
18 58 8 masterKeyPathBytes [B
19 58 9 keyPathLength [B
24 58 10 dataToSign [B
25 58 11 destinationPosition I
34 58 12 signedHash [B
41 58 13 encryptedColumnEncryptionKeyLength I
42 58 14 encryptedColumnEncryptionKey [B
43 58 15 currentIndex I
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
masterKeyPath
encryptionAlgorithm
plainTextColumnEncryptionKey
private byte[] encryptRSAOAEP(byte[], com.microsoft.sqlserver.jdbc.CertificateDetails);
descriptor: ([BLcom/microsoft/sqlserver/jdbc/CertificateDetails;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: ldc "RSA/ECB/OAEPWithSHA-1AndMGF1Padding"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 4
start local 4 2: aload 4
iconst_1
aload 2
getfield com.microsoft.sqlserver.jdbc.CertificateDetails.certificate:Ljava/security/cert/X509Certificate;
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
3: aload 4
aload 1
invokevirtual javax.crypto.Cipher.update:([B)[B
pop
4: aload 4
invokevirtual javax.crypto.Cipher.doFinal:()[B
astore 3
end local 4 5: goto 10
6: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider byte[] com.microsoft.sqlserver.jdbc.CertificateDetails byte[]
StackMap stack: java.security.GeneralSecurityException
astore 4
start local 4 7: new java.text.MessageFormat
dup
ldc "R_EncryptionFailed"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 5
start local 5 8: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
aastore
astore 6
start local 6 9: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 0
aload 5
aload 6
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 6 end local 5 end local 4 10: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
0 11 1 plainText [B
0 11 2 certificateDetails Lcom/microsoft/sqlserver/jdbc/CertificateDetails;
1 11 3 cipherText [B
2 5 4 rsa Ljavax/crypto/Cipher;
7 10 4 e Ljava/security/GeneralSecurityException;
8 10 5 form Ljava/text/MessageFormat;
9 10 6 msgArgs [Ljava/lang/Object;
Exception table:
from to target type
1 5 6 Class java.security.InvalidKeyException
1 5 6 Class java.security.NoSuchAlgorithmException
1 5 6 Class javax.crypto.IllegalBlockSizeException
1 5 6 Class javax.crypto.NoSuchPaddingException
1 5 6 Class javax.crypto.BadPaddingException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
plainText
certificateDetails
private byte[] rsaSignHashedData(byte[], com.microsoft.sqlserver.jdbc.CertificateDetails);
descriptor: ([BLcom/microsoft/sqlserver/jdbc/CertificateDetails;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 4
start local 4 1: ldc "SHA256withRSA"
invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
astore 3
start local 3 2: aload 3
aload 2
getfield com.microsoft.sqlserver.jdbc.CertificateDetails.privateKey:Ljava/security/Key;
checkcast java.security.PrivateKey
invokevirtual java.security.Signature.initSign:(Ljava/security/PrivateKey;)V
3: aload 3
aload 1
invokevirtual java.security.Signature.update:([B)V
4: aload 3
invokevirtual java.security.Signature.sign:()[B
astore 4
5: goto 10
end local 3 StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider byte[] com.microsoft.sqlserver.jdbc.CertificateDetails top byte[]
StackMap stack: java.security.GeneralSecurityException
6: astore 5
start local 5 7: new java.text.MessageFormat
dup
ldc "R_EncryptionFailed"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 6
start local 6 8: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
aastore
astore 7
start local 7 9: 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 end local 5 start local 3 10: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider byte[] com.microsoft.sqlserver.jdbc.CertificateDetails java.security.Signature byte[]
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
0 11 1 dataToSign [B
0 11 2 certificateDetails Lcom/microsoft/sqlserver/jdbc/CertificateDetails;
2 6 3 signature Ljava/security/Signature;
10 11 3 signature Ljava/security/Signature;
1 11 4 signedHash [B
7 10 5 e Ljava/security/GeneralSecurityException;
8 10 6 form Ljava/text/MessageFormat;
9 10 7 msgArgs [Ljava/lang/Object;
Exception table:
from to target type
1 5 6 Class java.security.InvalidKeyException
1 5 6 Class java.security.NoSuchAlgorithmException
1 5 6 Class java.security.SignatureException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
dataToSign
certificateDetails
private byte[] getLittleEndianBytesFromShort(short);
descriptor: (S)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: iconst_2
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 2
start local 2 1: aload 2
getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
pop
2: aload 2
iload 1
invokevirtual java.nio.ByteBuffer.putShort:(S)Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.array:()[B
astore 3
start local 3 3: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
0 4 1 value S
1 4 2 byteBuffer Ljava/nio/ByteBuffer;
3 4 3 byteValue [B
MethodParameters:
Name Flags
value
private boolean rsaVerifySignature(byte[], byte[], com.microsoft.sqlserver.jdbc.CertificateDetails);
descriptor: ([B[BLcom/microsoft/sqlserver/jdbc/CertificateDetails;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: ldc "SHA256withRSA"
invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
astore 4
start local 4 1: aload 4
aload 3
getfield com.microsoft.sqlserver.jdbc.CertificateDetails.privateKey:Ljava/security/Key;
checkcast java.security.PrivateKey
invokevirtual java.security.Signature.initSign:(Ljava/security/PrivateKey;)V
2: aload 4
aload 1
invokevirtual java.security.Signature.update:([B)V
3: aload 4
invokevirtual java.security.Signature.sign:()[B
astore 5
start local 5 4: aload 4
aload 3
getfield com.microsoft.sqlserver.jdbc.CertificateDetails.certificate:Ljava/security/cert/X509Certificate;
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
5: aload 4
aload 1
invokevirtual java.security.Signature.update:([B)V
6: aload 4
aload 5
invokevirtual java.security.Signature.verify:([B)Z
7: ireturn
end local 5 end local 4 8: StackMap locals:
StackMap stack: java.security.GeneralSecurityException
astore 4
start local 4 9: new java.text.MessageFormat
dup
ldc "R_VerifySignatureFailed"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 5
start local 5 10: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
aastore
astore 6
start local 6 11: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 0
aload 5
aload 6
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 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 12 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
0 12 1 dataToVerify [B
0 12 2 signature [B
0 12 3 certificateDetails Lcom/microsoft/sqlserver/jdbc/CertificateDetails;
1 8 4 sig Ljava/security/Signature;
4 8 5 signedHash [B
9 12 4 e Ljava/security/GeneralSecurityException;
10 12 5 form Ljava/text/MessageFormat;
11 12 6 msgArgs [Ljava/lang/Object;
Exception table:
from to target type
0 7 8 Class java.security.InvalidKeyException
0 7 8 Class java.security.NoSuchAlgorithmException
0 7 8 Class java.security.SignatureException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
dataToVerify
signature
certificateDetails
public boolean verifyColumnMasterKeyMetadata(java.lang.String, boolean, byte[]);
descriptor: (Ljava/lang/String;Z[B)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, 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: aload 0
aload 1
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.getCertificateDetails:(Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/CertificateDetails;
astore 4
start local 4 4: aload 4
ifnonnull 6
5: iconst_0
ireturn
6: StackMap locals: com.microsoft.sqlserver.jdbc.CertificateDetails
StackMap stack:
ldc "SHA-256"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 5
start local 5 7: aload 5
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.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
8: aload 5
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
9: aload 5
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
10: aload 0
aload 5
invokevirtual java.security.MessageDigest.digest:()[B
aload 3
aload 4
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionJavaKeyStoreProvider.rsaVerifySignature:([B[BLcom/microsoft/sqlserver/jdbc/CertificateDetails;)Z
11: ireturn
end local 5 12: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
astore 5
start local 5 13: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
ldc "R_NoSHA256Algorithm"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)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 14 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionJavaKeyStoreProvider;
0 14 1 masterKeyPath Ljava/lang/String;
0 14 2 allowEnclaveComputations Z
0 14 3 signature [B
4 14 4 certificateDetails Lcom/microsoft/sqlserver/jdbc/CertificateDetails;
7 12 5 md Ljava/security/MessageDigest;
13 14 5 e Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
6 11 12 Class java.security.NoSuchAlgorithmException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
masterKeyPath
allowEnclaveComputations
signature
}
SourceFile: "SQLServerColumnEncryptionJavaKeyStoreProvider.java"