mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-14 01:25:40 -05:00
Enable Always Encrypted enclave connection parameters (#919)
* Enable the enclave connection parameters. * Update the switch statement to use the enum constants for EnclaveAttestationProtocol * Update verbiage for Always Encrypted connection options * Update the argument exception to chose one specific to this connection option * Add resource logic to resource files. * Add error checking for when enclave parameters are added and Always Encrypted is set to disabled. * Add/Update unit tests
This commit is contained in:
@@ -1156,6 +1156,34 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection
|
||||
throw new ArgumentException(SR.ConnectionServiceConnStringInvalidColumnEncryptionSetting(connectionDetails.ColumnEncryptionSetting));
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(connectionDetails.EnclaveAttestationProtocol))
|
||||
{
|
||||
if (string.IsNullOrEmpty(connectionDetails.ColumnEncryptionSetting) || connectionDetails.ColumnEncryptionSetting.ToUpper() == "DISABLED")
|
||||
{
|
||||
throw new ArgumentException(SR.ConnectionServiceConnStringInvalidAlwaysEncryptedOptionCombination());
|
||||
}
|
||||
|
||||
switch (connectionDetails.EnclaveAttestationProtocol.ToUpper())
|
||||
{
|
||||
case "AAS":
|
||||
connectionBuilder.AttestationProtocol = SqlConnectionAttestationProtocol.AAS;
|
||||
break;
|
||||
case "HGS":
|
||||
connectionBuilder.AttestationProtocol = SqlConnectionAttestationProtocol.HGS;
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException(SR.ConnectionServiceConnStringInvalidEnclaveAttestationProtocol(connectionDetails.EnclaveAttestationProtocol));
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(connectionDetails.EnclaveAttestationUrl))
|
||||
{
|
||||
if (string.IsNullOrEmpty(connectionDetails.ColumnEncryptionSetting) || connectionDetails.ColumnEncryptionSetting.ToUpper() == "DISABLED")
|
||||
{
|
||||
throw new ArgumentException(SR.ConnectionServiceConnStringInvalidAlwaysEncryptedOptionCombination());
|
||||
}
|
||||
|
||||
connectionBuilder.EnclaveAttestationUrl = connectionDetails.EnclaveAttestationUrl;
|
||||
}
|
||||
if (connectionDetails.Encrypt.HasValue)
|
||||
{
|
||||
connectionBuilder.Encrypt = connectionDetails.Encrypt.Value;
|
||||
@@ -1328,6 +1356,8 @@ namespace Microsoft.SqlTools.ServiceLayer.Connection
|
||||
CurrentLanguage = builder.CurrentLanguage,
|
||||
DatabaseName = builder.InitialCatalog,
|
||||
ColumnEncryptionSetting = builder.ColumnEncryptionSetting.ToString(),
|
||||
EnclaveAttestationProtocol = builder.AttestationProtocol.ToString(),
|
||||
EnclaveAttestationUrl = builder.EnclaveAttestationUrl,
|
||||
Encrypt = builder.Encrypt,
|
||||
FailoverPartner = builder.FailoverPartner,
|
||||
LoadBalanceTimeout = builder.LoadBalanceTimeout,
|
||||
|
||||
Reference in New Issue
Block a user