icinga-powershell-framework/core/include/utils/SecureString.ps1

29 lines
781 B
PowerShell
Raw Normal View History

2018-11-06 11:14:49 -05:00
<#
# 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;