public final class com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider extends com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionKeyStoreProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider
  super_class: com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionKeyStoreProvider
{
  private static final java.util.logging.Logger windowsCertificateStoreLogger;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static boolean isWindows;
    descriptor: Z
    flags: (0x0008) ACC_STATIC

  java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  static final java.lang.String localMachineDirectory;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "LocalMachine"

  static final java.lang.String currentUserDirectory;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "CurrentUser"

  static final java.lang.String myCertificateStore;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "My"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 18
            ldc "com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider"
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
         1: .line 17
            putstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider.windowsCertificateStoreLogger:Ljava/util/logging/Logger;
         2: .line 29
            ldc "os.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "windows"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 30
            iconst_1
            putstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider.isWindows:Z
         4: .line 31
            goto 6
         5: .line 32
      StackMap locals:
      StackMap stack:
            iconst_0
            putstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider.isWindows:Z
         6: .line 34
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider this
         0: .line 39
            aload 0 /* this */
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionKeyStoreProvider.<init>:()V
         1: .line 22
            aload 0 /* this */
            ldc "MSSQL_CERTIFICATE_STORE"
            putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider.name:Ljava/lang/String;
         2: .line 40
            getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider.windowsCertificateStoreLogger:Ljava/util/logging/Logger;
            ldc Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionCertificateStoreProvider;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         3: .line 41
            ldc "SQLServerColumnEncryptionCertificateStoreProvider"
         4: .line 40
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;)V
         5: .line 42
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionCertificateStoreProvider;

  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 // com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider this
        start local 1 // java.lang.String name
         0: .line 45
            aload 0 /* this */
            aload 1 /* name */
            putfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider.name:Ljava/lang/String;
         1: .line 46
            return
        end local 1 // java.lang.String name
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionCertificateStoreProvider;
            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 // com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider this
         0: .line 49
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider.name:Ljava/lang/String;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionCertificateStoreProvider;

  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=4, args_size=4
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider this
        start local 1 // java.lang.String masterKeyPath
        start local 2 // java.lang.String encryptionAlgorithm
        start local 3 // byte[] plainTextColumnEncryptionKey
         0: .line 54
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            aconst_null
         1: .line 55
            ldc "R_InvalidWindowsCertificateStoreEncryption"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            aconst_null
            iconst_0
            iconst_0
         2: .line 54
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;IZ)V
            athrow
        end local 3 // byte[] plainTextColumnEncryptionKey
        end local 2 // java.lang.String encryptionAlgorithm
        end local 1 // java.lang.String masterKeyPath
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    3     0                          this  Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionCertificateStoreProvider;
            0    3     1                 masterKeyPath  Ljava/lang/String;
            0    3     2           encryptionAlgorithm  Ljava/lang/String;
            0    3     3  plainTextColumnEncryptionKey  [B
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                              Name  Flags
      masterKeyPath                 
      encryptionAlgorithm           
      plainTextColumnEncryptionKey  

  private byte[] decryptColumnEncryptionKeyWindows(java.lang.String, java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;[B)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider this
        start local 1 // java.lang.String masterKeyPath
        start local 2 // java.lang.String encryptionAlgorithm
        start local 3 // byte[] encryptedColumnEncryptionKey
         0: .line 61
            aload 1 /* masterKeyPath */
            aload 2 /* encryptionAlgorithm */
         1: .line 62
            aload 3 /* encryptedColumnEncryptionKey */
         2: .line 61
            invokestatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.DecryptColumnEncryptionKey:(Ljava/lang/String;Ljava/lang/String;[B)[B
         3: areturn
         4: .line 63
      StackMap locals:
      StackMap stack: com.microsoft.sqlserver.jdbc.DLLException
            astore 4 /* e */
        start local 4 // com.microsoft.sqlserver.jdbc.DLLException e
         5: .line 64
            aload 4 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.DLLException.GetErrCode:()I
            aload 4 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.DLLException.GetParam1:()Ljava/lang/String;
            aload 4 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.DLLException.GetParam2:()Ljava/lang/String;
            aload 4 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.DLLException.GetParam3:()Ljava/lang/String;
            invokestatic com.microsoft.sqlserver.jdbc.DLLException.buildException:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         6: .line 65
            aconst_null
            areturn
        end local 4 // com.microsoft.sqlserver.jdbc.DLLException e
        end local 3 // byte[] encryptedColumnEncryptionKey
        end local 2 // java.lang.String encryptionAlgorithm
        end local 1 // java.lang.String masterKeyPath
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    7     0                          this  Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionCertificateStoreProvider;
            0    7     1                 masterKeyPath  Ljava/lang/String;
            0    7     2           encryptionAlgorithm  Ljava/lang/String;
            0    7     3  encryptedColumnEncryptionKey  [B
            5    7     4                             e  Lcom/microsoft/sqlserver/jdbc/DLLException;
      Exception table:
        from    to  target  type
           0     3       4  Class com.microsoft.sqlserver.jdbc.DLLException
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                              Name  Flags
      masterKeyPath                 
      encryptionAlgorithm           
      encryptedColumnEncryptionKey  

  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=5, args_size=4
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider this
        start local 1 // java.lang.String masterKeyPath
        start local 2 // java.lang.String encryptionAlgorithm
        start local 3 // byte[] encryptedColumnEncryptionKey
         0: .line 71
            getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider.windowsCertificateStoreLogger:Ljava/util/logging/Logger;
            ldc Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionCertificateStoreProvider;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         1: .line 72
            ldc "decryptColumnEncryptionKey"
            ldc "Decrypting Column Encryption Key."
         2: .line 71
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 74
            getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider.isWindows:Z
            ifeq 8
         4: .line 75
            aload 0 /* this */
            aload 1 /* masterKeyPath */
            aload 2 /* encryptionAlgorithm */
         5: .line 76
            aload 3 /* encryptedColumnEncryptionKey */
         6: .line 75
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider.decryptColumnEncryptionKeyWindows:(Ljava/lang/String;Ljava/lang/String;[B)[B
            astore 4 /* plainCek */
        start local 4 // byte[] plainCek
         7: .line 77
            goto 9
        end local 4 // byte[] plainCek
         8: .line 78
      StackMap locals:
      StackMap stack:
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            ldc "R_notSupported"
            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
        start local 4 // byte[] plainCek
         9: .line 80
      StackMap locals: byte[]
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider.windowsCertificateStoreLogger:Ljava/util/logging/Logger;
            ldc Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionCertificateStoreProvider;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        10: .line 81
            ldc "decryptColumnEncryptionKey"
            ldc "Finished decrypting Column Encryption Key."
        11: .line 80
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
        12: .line 82
            aload 4 /* plainCek */
            areturn
        end local 4 // byte[] plainCek
        end local 3 // byte[] encryptedColumnEncryptionKey
        end local 2 // java.lang.String encryptionAlgorithm
        end local 1 // java.lang.String masterKeyPath
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0   13     0                          this  Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionCertificateStoreProvider;
            0   13     1                 masterKeyPath  Ljava/lang/String;
            0   13     2           encryptionAlgorithm  Ljava/lang/String;
            0   13     3  encryptedColumnEncryptionKey  [B
            7    8     4                      plainCek  [B
            9   13     4                      plainCek  [B
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                              Name  Flags
      masterKeyPath                 
      encryptionAlgorithm           
      encryptedColumnEncryptionKey  

  public boolean verifyColumnMasterKeyMetadata(java.lang.String, boolean, byte[]);
    descriptor: (Ljava/lang/String;Z[B)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider this
        start local 1 // java.lang.String masterKeyPath
        start local 2 // boolean allowEnclaveComputations
        start local 3 // byte[] signature
         0: .line 89
            aload 1 /* masterKeyPath */
            iload 2 /* allowEnclaveComputations */
            aload 3 /* signature */
            invokestatic com.microsoft.sqlserver.jdbc.AuthenticationJNI.VerifyColumnMasterKeyMetadata:(Ljava/lang/String;Z[B)Z
         1: ireturn
         2: .line 90
      StackMap locals:
      StackMap stack: com.microsoft.sqlserver.jdbc.DLLException
            astore 4 /* e */
        start local 4 // com.microsoft.sqlserver.jdbc.DLLException e
         3: .line 91
            aload 4 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.DLLException.GetErrCode:()I
            aload 4 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.DLLException.GetParam1:()Ljava/lang/String;
            aload 4 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.DLLException.GetParam2:()Ljava/lang/String;
            aload 4 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.DLLException.GetParam3:()Ljava/lang/String;
            invokestatic com.microsoft.sqlserver.jdbc.DLLException.buildException:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         4: .line 92
            iconst_0
            ireturn
        end local 4 // com.microsoft.sqlserver.jdbc.DLLException e
        end local 3 // byte[] signature
        end local 2 // boolean allowEnclaveComputations
        end local 1 // java.lang.String masterKeyPath
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerColumnEncryptionCertificateStoreProvider this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    5     0                      this  Lcom/microsoft/sqlserver/jdbc/SQLServerColumnEncryptionCertificateStoreProvider;
            0    5     1             masterKeyPath  Ljava/lang/String;
            0    5     2  allowEnclaveComputations  Z
            0    5     3                 signature  [B
            3    5     4                         e  Lcom/microsoft/sqlserver/jdbc/DLLException;
      Exception table:
        from    to  target  type
           0     1       2  Class com.microsoft.sqlserver.jdbc.DLLException
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                          Name  Flags
      masterKeyPath             
      allowEnclaveComputations  
      signature                 
}
SourceFile: "SQLServerColumnEncryptionCertificateStoreProvider.java"