@@ -29,6 +29,19 @@ Describe "AvoidSecretDisclosure" {
2929 $violations.RuleSuppressionID | Should - Be ' AsPlainText'
3030 }
3131
32+ It " ConvertFrom-SecureString -AsPlainText:$true " {
33+ $scriptDefinition = {
34+ $SecureString = ConvertTo-SecureString ' P@ssW0rd' - AsPlainText
35+ $Null = $SecureString | ConvertFrom-SecureString - AsPlainText:$true
36+ }.ToString()
37+ $violations = Invoke-ScriptAnalyzer - ScriptDefinition $scriptDefinition - IncludeRule @ ($ruleName )
38+ $violations.Count | Should - Be 1
39+ $violations.Severity | Should - Be Warning
40+ $violations.Extent.Text | Should - Be {ConvertFrom-SecureString - AsPlainText:$true }.ToString()
41+ $violations.Message | Should - Be $ruleMessage
42+ $violations.RuleSuppressionID | Should - Be ' AsPlainText'
43+ }
44+
3245 It " SecureStringToBSTR()" {
3346 $scriptDefinition = {
3447 $SecureString = ConvertTo-SecureString ' P@ssW0rd' - AsPlainText
@@ -198,4 +211,30 @@ Describe "AvoidSecretDisclosure" {
198211 $violations | Should - BeNullOrEmpty
199212 }
200213 }
214+
215+ Context " should not crash" {
216+
217+ It " -AsPlainText:$false " {
218+ $scriptDefinition = {
219+ $SecureString = ConvertTo-SecureString ' P@ssW0rd' - AsPlainText
220+ $Null = $SecureString | ConvertFrom-SecureString - AsPlainText:$false
221+ }.ToString()
222+ $violations = Invoke-ScriptAnalyzer - ScriptDefinition $scriptDefinition - IncludeRule @ ($ruleName )
223+ $violations | Should - BeNullOrEmpty
224+ }
225+
226+ It " -AsPlainText:$someVar " {
227+ $scriptDefinition = {
228+ param ([bool ] $someVar )
229+ $SecureString = ConvertTo-SecureString ' P@ssW0rd' - AsPlainText
230+ $Null = $SecureString | ConvertFrom-SecureString - AsPlainText:$someVar
231+ }.ToString()
232+ $violations = Invoke-ScriptAnalyzer - ScriptDefinition $scriptDefinition - IncludeRule @ ($ruleName )
233+ $violations.Count | Should - Be 1
234+ $violations.Severity | Should - Be Warning
235+ $violations.Extent.Text | Should - Be {ConvertFrom-SecureString - AsPlainText:$someVar }.ToString()
236+ $violations.Message | Should - Be $ruleMessage
237+ $violations.RuleSuppressionID | Should - Be ' AsPlainText'
238+ }
239+ }
201240}
0 commit comments