icinga-powershell-framework/core/include/utils/SecureString.ps1
2018-11-06 17:14:49 +01:00

29 lines
No EOL
781 B
PowerShell

<#
# Helper class allowing to easily convert strings into SecureStrings
# and vice-versa
#>
$SecureString = New-Object -TypeName PSObject;
$SecureString | Add-Member -membertype ScriptMethod -name 'ConvertTo' -value {
param([string]$string);
[SecureString]$SecureString = ConvertTo-SecureString -AsPlainText $string -Force;
return $SecureString;
}
$SecureString | Add-Member -membertype ScriptMethod -name 'ConvertFrom' -value {
param([SecureString]$SecureString);
if ($SecureString -eq $null) {
return '';
}
[IntPtr]$BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString)
[string]$String = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)
return $String;
}
return $SecureString;