Skip to content
This repository was archived by the owner on Aug 7, 2020. It is now read-only.

Commit 2bb81c2

Browse files
authored
Clean up powershell formatting. (#31)
1 parent b274523 commit 2bb81c2

File tree

4 files changed

+105
-86
lines changed

4 files changed

+105
-86
lines changed

.vscode/settings.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"editor.renderWhitespace": "all",
3+
"editor.renderControlCharacters": true,
4+
"omnisharp.projectLoadTimeout": 120,
5+
"files.autoGuessEncoding": true,
6+
"files.encoding": "utf8bom",
7+
"files.insertFinalNewline": true,
8+
"files.trimFinalNewlines": true,
9+
"files.trimTrailingWhitespace": true,
10+
"powershell.helpCompletion": "BlockComment",
11+
"powershell.debugging.createTemporaryIntegratedConsole": true,
12+
"powershell.scriptAnalysis.enable": true,
13+
"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
14+
"[powershell]": {
15+
"editor.autoIndent": true,
16+
"editor.detectIndentation": false,
17+
"editor.insertSpaces": true,
18+
"editor.tabSize": 4
19+
}
20+
}

Invoke-EncryptColumns.ps1

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,76 +4,76 @@
44

55
[cmdletbinding()]
66
param(
7-
[Parameter(Mandatory = $true, ValueFromPipeline = $true)] [string] $ConnectionString,
8-
[string] $AuthSchema = 'Authentication',
9-
[string] $AppSchema = 'Purchasing',
10-
[string] $LogSchema = 'Logging',
11-
[string] $AuthColumnKeyName = "AuthColumnsKey",
12-
[string] $AppColumnKeyName = "AppColumnsKey",
13-
[string] $LogColumnKeyName = "LogColumnsKey",
7+
[Parameter(Mandatory = $true, ValueFromPipeline = $true)] [string] $ConnectionString,
8+
[string] $AuthSchema = 'Authentication',
9+
[string] $AppSchema = 'Purchasing',
10+
[string] $LogSchema = 'Logging',
11+
[string] $AuthColumnKeyName = "AuthColumnsKey",
12+
[string] $AppColumnKeyName = "AppColumnsKey",
13+
[string] $LogColumnKeyName = "LogColumnsKey",
1414
[switch] $Script,
1515
[string] $LogFileDirectory = $pwd
1616

1717
)
1818

1919
try {
20-
$smoDatabase = Get-SqlDatabase -ConnectionString $ConnectionString
21-
$smoDatabase.DefaultSchema = $null # If we don't do this Set-SqlColumnEncryption will not respect the schema set by New-SqlColumnEncryptionSettings
20+
$smoDatabase = Get-SqlDatabase -ConnectionString $ConnectionString
21+
$smoDatabase.DefaultSchema = $null # If we don't do this Set-SqlColumnEncryption will not respect the schema set by New-SqlColumnEncryptionSettings
2222
}
2323
catch {
24-
Write-Error $_
25-
break
24+
Write-Error $_
25+
break
2626
}
2727

2828
$encryptionChanges = @()
2929

3030
# Change table [Authentication].[AspNetUsers]
3131
if ($smoDatabase.ColumnEncryptionKeys[$AuthColumnKeyName].Length -Eq 0) {
32-
Write-Warning "Authentication Column Encryption Key $AuthColumnKeyName does not exist."
32+
Write-Warning "Authentication Column Encryption Key $AuthColumnKeyName does not exist."
3333
}
3434
elseif ($smoDatabase.Schemas[$AuthSchema].Length -eq 0) {
35-
Write-Warning "Authentication Schema $AuthSchema does not exist."
35+
Write-Warning "Authentication Schema $AuthSchema does not exist."
3636
}
3737
else {
38-
Write-Debug "Adding ColumnEncryptionSettings for Auth Column Key $AuthColumnKeyName."
39-
$encryptionChanges += New-SqlColumnEncryptionSettings -ColumnName "$($AuthSchema).AspNetUsers.SSN" -EncryptionType Randomized -EncryptionKey $AuthColumnKeyName
38+
Write-Debug "Adding ColumnEncryptionSettings for Auth Column Key $AuthColumnKeyName."
39+
$encryptionChanges += New-SqlColumnEncryptionSettings -ColumnName "$($AuthSchema).AspNetUsers.SSN" -EncryptionType Randomized -EncryptionKey $AuthColumnKeyName
4040
}
4141

4242
# Change table [Purchasing].[CreditCards]
4343
if ($smoDatabase.ColumnEncryptionKeys[$AppColumnKeyName].Length -Eq 0) {
44-
Write-Warning "Application Column Encryption Key $AppColumnKeyName does not exist."
44+
Write-Warning "Application Column Encryption Key $AppColumnKeyName does not exist."
4545
}
4646
elseif ($smoDatabase.Schemas[$AppSchema].Length -eq 0) {
47-
Write-Warning "Application Schema $AppSchema does not exist."
47+
Write-Warning "Application Schema $AppSchema does not exist."
4848
}
4949
else {
50-
Write-Debug "Adding ColumnEncryptionSettings for App Column Key $AppColumnKeyName."
51-
$encryptionChanges += New-SqlColumnEncryptionSettings -ColumnName "$($AppSchema).CreditCards.CardNumber" -EncryptionType Randomized -EncryptionKey $AppColumnKeyName
52-
$encryptionChanges += New-SqlColumnEncryptionSettings -ColumnName "$($AppSchema).CreditCards.CCV" -EncryptionType Randomized -EncryptionKey $AppColumnKeyName
50+
Write-Debug "Adding ColumnEncryptionSettings for App Column Key $AppColumnKeyName."
51+
$encryptionChanges += New-SqlColumnEncryptionSettings -ColumnName "$($AppSchema).CreditCards.CardNumber" -EncryptionType Randomized -EncryptionKey $AppColumnKeyName
52+
$encryptionChanges += New-SqlColumnEncryptionSettings -ColumnName "$($AppSchema).CreditCards.CCV" -EncryptionType Randomized -EncryptionKey $AppColumnKeyName
5353
}
5454

5555
# Change table [Logging].[Log]
5656
if ($smoDatabase.ColumnEncryptionKeys[$LogColumnKeyName].Length -Eq 0) {
57-
Write-Warning "Logging Column Encryption Key $LogColumnKeyName does not exist."
57+
Write-Warning "Logging Column Encryption Key $LogColumnKeyName does not exist."
5858
}
5959
elseif ($smoDatabase.Schemas[$LogSchema].Length -eq 0) {
60-
Write-Warning "Logging Schema $LogSchema does not exist."
60+
Write-Warning "Logging Schema $LogSchema does not exist."
6161
}
6262
else {
63-
Write-Debug "Adding ColumnEncryptionSettings for Log Column Key $LogColumnKeyName."
64-
$encryptionChanges += New-SqlColumnEncryptionSettings -ColumnName "$($LogSchema).Log.User" -EncryptionType Deterministic -EncryptionKey $LogColumnKeyName
65-
$encryptionChanges += New-SqlColumnEncryptionSettings -ColumnName "$($LogSchema).Log.ClientIP" -EncryptionType Deterministic -EncryptionKey $LogColumnKeyName
63+
Write-Debug "Adding ColumnEncryptionSettings for Log Column Key $LogColumnKeyName."
64+
$encryptionChanges += New-SqlColumnEncryptionSettings -ColumnName "$($LogSchema).Log.User" -EncryptionType Deterministic -EncryptionKey $LogColumnKeyName
65+
$encryptionChanges += New-SqlColumnEncryptionSettings -ColumnName "$($LogSchema).Log.ClientIP" -EncryptionType Deterministic -EncryptionKey $LogColumnKeyName
6666
}
6767

6868

6969
if ($encryptionChanges.Length -eq 0) {
70-
Write-Warning "Could not find any column keys or schemas to encrypt."
70+
Write-Warning "Could not find any column keys or schemas to encrypt."
7171
}
7272
else {
73-
Write-Verbose "Applying Column Encryption to $($encryptionChanges.Length) column(s)."
74-
Set-SqlColumnEncryption `
75-
-ColumnEncryptionSettings $encryptionChanges `
76-
-InputObject $smoDatabase `
77-
-Script:$Script `
78-
-LogFileDirectory $LogFileDirectory
73+
Write-Verbose "Applying Column Encryption to $($encryptionChanges.Length) column(s)."
74+
Set-SqlColumnEncryption `
75+
-ColumnEncryptionSettings $encryptionChanges `
76+
-InputObject $smoDatabase `
77+
-Script:$Script `
78+
-LogFileDirectory $LogFileDirectory
7979
}

New-EncryptionKeys.ps1

Lines changed: 49 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -4,87 +4,84 @@
44

55
[cmdletbinding()]
66
param(
7-
[Parameter(Mandatory = $true, ValueFromPipeline = $true)] [string] $ConnectionString,
8-
[string] $MasterKeyDNSName = "CN=Always Encrypted Sample Cert",
9-
[switch] $RemoveExistingCerts,
10-
[switch] $ExportCertificate,
11-
[switch] $ExportCertificateKeys,
12-
[string] $MasterKeySQLName = "AlwaysEncryptedSampleCMK",
13-
[string] $AuthColumnKeyName = "AuthColumnsKey",
14-
[string] $AppColumnKeyName = "AppColumnsKey",
15-
[string] $LogColumnKeyName = "LogColumnsKey"
7+
[Parameter(Mandatory = $true, ValueFromPipeline = $true)] [string] $ConnectionString,
8+
[string] $MasterKeyDNSName = "CN=Always Encrypted Sample Cert",
9+
[switch] $RemoveExistingCerts,
10+
[switch] $ExportCertificate,
11+
[switch] $ExportCertificateKeys,
12+
[string] $MasterKeySQLName = "AlwaysEncryptedSampleCMK",
13+
[string] $AuthColumnKeyName = "AuthColumnsKey",
14+
[string] $AppColumnKeyName = "AppColumnsKey",
15+
[string] $LogColumnKeyName = "LogColumnsKey"
1616
)
1717

18-
Import-Module SqlServer
19-
2018
try {
21-
$smoDatabase = Get-SqlDatabase -ConnectionString $ConnectionString
19+
$smoDatabase = Get-SqlDatabase -ConnectionString $ConnectionString
2220
}
2321
catch {
24-
Write-Error $_
25-
break
22+
Write-Error $_
23+
break
2624
}
2725

2826
if ($RemoveExistingCerts) {
29-
Write-Verbose "Removing All Existing Certificates Named $($MasterKeyDNSName)"
27+
Write-Verbose "Removing All Existing Certificates Named $($MasterKeyDNSName)"
3028
$existingColumns = Get-SqlColumnEncryptionKey -InputObject $smoDatabase
3129
$existingColumns | ForEach-Object {
3230
Remove-SqlColumnEncryptionKey -Name $_.Name -InputObject $smoDatabase
3331
}
3432
Remove-SqlColumnMasterKey -Name $MasterKeySQLName -InputObject $smoDatabase
35-
Get-ChildItem Cert:\CurrentUser\My | Where-Object subject -eq $MasterKeyDNSName | Remove-Item
33+
Get-ChildItem Cert:\CurrentUser\My | Where-Object subject -eq $MasterKeyDNSName | Remove-Item
3634
}
3735

38-
$Cert = (Get-ChildItem Cert:\CurrentUser\My | Where-Object subject -eq 'CN=Always Encrypted Sample Cert') | Select-Object Thumbprint -First 1
36+
$Cert = (Get-ChildItem Cert:\CurrentUser\My | Where-Object subject -eq 'CN=Always Encrypted Sample Cert') | Select-Object Thumbprint -First 1
3937
if ($Cert) {
40-
Write-Verbose "Certificate `"$($MasterKeyDNSName)`" Already exists"
38+
Write-Verbose "Certificate `"$($MasterKeyDNSName)`" Already exists"
4139
}
4240
else {
43-
Write-Host "Creating Self Signed Certificate `"$($MasterKeyDNSName)`""
44-
$Cert = New-SelfSignedCertificate `
45-
-Subject $MasterKeyDNSName `
46-
-CertStoreLocation Cert:\CurrentUser\My `
47-
-KeyExportPolicy Exportable `
48-
-Type DocumentEncryptionCert `
49-
-KeyUsage DataEncipherment `
50-
-KeySpec KeyExchange
51-
= "CurrentUser/My/$($cert.ThumbPrint)"
52-
Write-Verbose "Certificate Master Key Path: $($cmkPath)"
41+
Write-Host "Creating Self Signed Certificate `"$($MasterKeyDNSName)`""
42+
$Cert = New-SelfSignedCertificate `
43+
-Subject $MasterKeyDNSName `
44+
-CertStoreLocation Cert:\CurrentUser\My `
45+
-KeyExportPolicy Exportable `
46+
-Type DocumentEncryptionCert `
47+
-KeyUsage DataEncipherment `
48+
-KeySpec KeyExchange
49+
$CmkPath = "Cert:\CurrentUser\My\$($cert.ThumbPrint)"
50+
Write-Verbose "Column Master Key Certificate Path: $($CmkPath)"
5351
}
5452

5553
if ($ExportCertificate) {
56-
Get-ChildItem Cert:\CurrentUser\My |
57-
Where-Object subject -eq "CN=Always Encrypted Sample Cert" |
58-
Export-Certificate -FilePath "$($MasterKeySQLName).cer" | Out-Null
54+
Get-ChildItem Cert:\CurrentUser\My |
55+
Where-Object subject -eq "CN=Always Encrypted Sample Cert" |
56+
Export-Certificate -FilePath "$($MasterKeySQLName).cer" | Out-Null
5957
}
6058

6159
if ($ExportCertificateKeys) {
62-
Get-ChildItem Cert:\CurrentUser\My |
63-
Where-Object subject -eq "CN=Always Encrypted Sample Cert" |
64-
Export-PfxCertificate -FilePath "$($MasterKeySQLName).pfx" -Password (ConvertTo-SecureString -String "1234" -Force -AsPlainText) | Out-Null
60+
Get-ChildItem Cert:\CurrentUser\My |
61+
Where-Object subject -eq "CN=Always Encrypted Sample Cert" |
62+
Export-PfxCertificate -FilePath "$($MasterKeySQLName).pfx" -Password (ConvertTo-SecureString -String "1234" -Force -AsPlainText) | Out-Null
6563
}
6664

67-
if($smoDatabase.ColumnMasterKeys['AlwaysEncryptedSampleCMK']) {
68-
Write-Warning "Master Key Reference $($MasterKeySQLName) already exists in the database."
65+
if ($smoDatabase.ColumnMasterKeys['AlwaysEncryptedSampleCMK']) {
66+
Write-Warning "Master Key Reference $($MasterKeySQLName) already exists in the database."
6967
}
7068
else {
71-
# Create a SqlColumnMasterKeySettings object for your column master key.
72-
$cmkSettings = New-SqlCertificateStoreColumnMasterKeySettings `
73-
-CertificateStoreLocation "CurrentUser" `
74-
-Thumbprint $Cert.Thumbprint
75-
76-
New-SqlColumnMasterKey -Name $MasterKeySQLName -InputObject $smoDatabase -ColumnMasterKeySettings $cmkSettings | Out-Null
69+
# Create a SqlColumnMasterKeySettings object for your column master key.
70+
$cmkSettings = New-SqlCertificateStoreColumnMasterKeySettings `
71+
-CertificateStoreLocation "CurrentUser" `
72+
-Thumbprint $Cert.Thumbprint
73+
74+
New-SqlColumnMasterKey -Name $MasterKeySQLName -InputObject $smoDatabase -ColumnMasterKeySettings $cmkSettings | Out-Null
7775
}
7876

79-
$ExistingColumnKeys = $smoDatabase.ColumnEncryptionKeys
77+
$ExistingColumnKeys = $smoDatabase.ColumnEncryptionKeys
8078
@($AuthColumnKeyName, $AppColumnKeyName, $LogColumnKeyName) | ForEach-Object {
81-
if ($ExistingColumnKeys[$_]) {
82-
Write-Warning "Column Encryption Key already $_ exists."
83-
}
84-
else {
85-
$smoDatabase | New-SqlColumnEncryptionKey `
86-
-ColumnMasterKey $MasterKeySQLName `
87-
-Name $_ | Out-Null
88-
}
79+
if ($ExistingColumnKeys[$_]) {
80+
Write-Warning "Column Encryption Key already $_ exists."
81+
}
82+
else {
83+
$smoDatabase | New-SqlColumnEncryptionKey `
84+
-ColumnMasterKey $MasterKeySQLName `
85+
-Name $_ | Out-Null
86+
}
8987
}
90-

appveyor/Start-EntityFrameworkMigration.ps1

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
[cmdletbinding()]
22
param(
3-
[Parameter(ValueFromPipeline = $true)] [string] $ConnectionString = "Data Source=$($env:SQL_SERVER_INSTANCE);Initial Catalog=$($env:SQL_SERVER_DATABASE);Integrated Security=SSPI;Application Name=Start-EntityFrameworkMigration;Column Encryption Setting=enabled"
3+
[Parameter(ValueFromPipeline = $true)]
4+
[string] $ConnectionString =
5+
"Data Source=$($env:SQL_SERVER_INSTANCE);Initial Catalog=$($env:SQL_SERVER_DATABASE);Integrated Security=SSPI;Application Name=Start-EntityFrameworkMigration;Column Encryption Setting=enabled"
46
)
57

68
# TODO: Dynamically extract bin\debug
@@ -13,4 +15,4 @@ Write-Verbose "Initializing Log4Net Schema"
1315
Write-Verbose "Initializing ASP.NET Identity Schema"
1416
[AlwaysEncryptedSample.Models.DbInit]::CreateAuthContext($ConnectionString)
1517
Write-Verbose "Initializing Application Schema"
16-
[AlwaysEncryptedSample.Models.DbInit]::CreatePurchasingContext($ConnectionString)
18+
[AlwaysEncryptedSample.Models.DbInit]::CreatePurchasingContext($ConnectionString)

0 commit comments

Comments
 (0)