Package com.microsoft.sqlserver.jdbc

## Interface ISQLServerEnclaveProvider

All Known Implementing Classes:
  `SQLServerVSMEnclaveProvider`

    public interface ISQLServerEnclaveProvider

Provides an interface to create an Enclave Session

### Method Summary

All Methods Instance Methods Abstract Methods
`ArrayList<byte[]>` `createEnclaveSession​(SQLServerConnection connection, String userSql, String preparedTypeDefinitions, com.microsoft.sqlserver.jdbc.Parameter[] params, ArrayList<String> parameterNames)` Creates the enclave session
`void` `getAttestationParameters​(boolean createNewParameters, String url)` Returns the attestation parameters
`byte[]` `getEnclavePackage​(String userSQL, ArrayList<byte[]> enclaveCEKs)`
`com.microsoft.sqlserver.jdbc.EnclaveSession` `getEnclaveSession()` Returns the enclave session
`void` `invalidateEnclaveSession()` Invalidates an enclave session

### Method Detail

#### getEnclavePackage

    byte[] getEnclavePackage​(String userSQL,
                             ArrayList<byte[]> enclaveCEKs)
                      throws SQLServerException

Throws:
  `SQLServerException`

#### getAttestationParameters

    void getAttestationParameters​(boolean createNewParameters,
                                  String url)
                           throws SQLServerException

Returns the attestation parameters

Parameters:
  `createNewParameters` - indicates whether to create new parameters
  `url` - attestation url
Throws:
  `SQLServerException` - when an error occurs.

#### createEnclaveSession

    ArrayList<byte[]> createEnclaveSession​(SQLServerConnection connection,
                                           String userSql,
                                           String preparedTypeDefinitions,
                                           com.microsoft.sqlserver.jdbc.Parameter[] params,
                                           ArrayList<String> parameterNames)
                                    throws SQLServerException

Creates the enclave session

Parameters:
  `connection` - connection
  `userSql` - user sql
  `preparedTypeDefinitions` - preparedTypeDefinitions
  `params` - params
  `parameterNames` - parameterNames
Returns:
  list of enclave requested CEKs
Throws:
  `SQLServerException` - when an error occurs.

#### invalidateEnclaveSession

    void invalidateEnclaveSession()

Invalidates an enclave session

#### getEnclaveSession

    com.microsoft.sqlserver.jdbc.EnclaveSession getEnclaveSession()

Returns the enclave session

Returns:
  the enclave session