using System.Runtime.InteropServices; using System.Security; namespace HyperBooru.PowerShell; internal static class Util { internal static string ToInsecureString(this SecureString x) { IntPtr rawString = IntPtr.Zero; try { rawString = Marshal.SecureStringToBSTR(x); return Marshal.PtrToStringBSTR(rawString); } finally { if(rawString != IntPtr.Zero) Marshal.FreeBSTR(rawString); } } }