Class SQLServerVSMEnclaveProvider


  • public class SQLServerVSMEnclaveProvider
    extends Object
    Provides the implementation of the VSM Enclave Provider. The enclave provider encapsulates the client-side implementation details of the enclave attestation protocol.
    • Constructor Detail

      • SQLServerVSMEnclaveProvider

        public SQLServerVSMEnclaveProvider()
        default constructor
    • Method Detail

      • invalidateEnclaveSession

        public void invalidateEnclaveSession()
      • getEnclaveSession

        public com.microsoft.sqlserver.jdbc.EnclaveSession getEnclaveSession()
      • getEnclavePackage

        public default byte[] getEnclavePackage​(String userSQL,
                                                ArrayList<byte[]> enclaveCEKs)
                                         throws SQLServerException
        Get the Enclave package
        Parameters:
        userSQL - user sql
        enclaveCEKs - enclave CEKs
        Returns:
        the enclave package
        Throws:
        SQLServerException - if error
      • executeSDPEv2

        public default ResultSet executeSDPEv2​(PreparedStatement stmt,
                                               String userSql,
                                               String preparedTypeDefinitions,
                                               com.microsoft.sqlserver.jdbc.BaseAttestationRequest req)
                                        throws SQLException,
                                               IOException
        Execute sp_describe_parameter_encryption for AEv2
        Parameters:
        stmt - statement
        userSql - user sql
        preparedTypeDefinitions - prepared type definitions
        req - request
        Returns:
        result set
        Throws:
        SQLException - if error
        IOException - if IO exception
      • executeSDPEv1

        public default ResultSet executeSDPEv1​(PreparedStatement stmt,
                                               String userSql,
                                               String preparedTypeDefinitions)
                                        throws SQLException
        Execute sp_describe_parameter_encryption
        Parameters:
        stmt - stmt
        userSql - user sql
        preparedTypeDefinitions - prepared type definitions
        Returns:
        result set
        Throws:
        SQLException - if error
      • processSDPEv1

        public default void processSDPEv1​(String userSql,
                                          String preparedTypeDefinitions,
                                          com.microsoft.sqlserver.jdbc.Parameter[] params,
                                          ArrayList<String> parameterNames,
                                          SQLServerConnection connection,
                                          SQLServerStatement sqlServerStatement,
                                          PreparedStatement stmt,
                                          ResultSet rs,
                                          ArrayList<byte[]> enclaveRequestedCEKs)
                                   throws SQLException
        Process result from sp_describe_parameter_encryption
        Parameters:
        userSql - user sql
        preparedTypeDefinitions - prepared type definitions
        params - params
        parameterNames - param names
        connection - connection
        sqlServerStatement - sqlServerStatement
        stmt - statement
        rs - result set
        enclaveRequestedCEKs - enclave requested CEKs
        Throws:
        SQLException - if error