You've already forked linux-packaging-mono
Imported Upstream version 4.8.0.309
Former-commit-id: 5f9c6ae75f295e057a7d2971f3a6df4656fa8850
This commit is contained in:
parent
ee1447783b
commit
94b2861243
47
mcs/class/System/ReferenceSources/SecureStringHelper.cs
Normal file
47
mcs/class/System/ReferenceSources/SecureStringHelper.cs
Normal file
@ -0,0 +1,47 @@
|
||||
using System.Security;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace System.Net
|
||||
{
|
||||
static partial class UnsafeNclNativeMethods
|
||||
{
|
||||
internal unsafe static class SecureStringHelper
|
||||
{
|
||||
internal static string CreateString(SecureString secureString)
|
||||
{
|
||||
string plainString;
|
||||
IntPtr bstr = IntPtr.Zero;
|
||||
|
||||
if (secureString == null || secureString.Length == 0)
|
||||
return String.Empty;
|
||||
|
||||
try
|
||||
{
|
||||
bstr = Marshal.SecureStringToBSTR(secureString);
|
||||
plainString = Marshal.PtrToStringBSTR(bstr);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (bstr != IntPtr.Zero)
|
||||
Marshal.ZeroFreeBSTR(bstr);
|
||||
}
|
||||
return plainString;
|
||||
}
|
||||
|
||||
internal static SecureString CreateSecureString(string plainString)
|
||||
{
|
||||
SecureString secureString;
|
||||
|
||||
if (plainString == null || plainString.Length == 0)
|
||||
return new SecureString();
|
||||
|
||||
fixed (char* pch = plainString)
|
||||
{
|
||||
secureString = new SecureString(pch, plainString.Length);
|
||||
}
|
||||
|
||||
return secureString;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user