Imported Upstream version 4.8.0.309

Former-commit-id: 5f9c6ae75f295e057a7d2971f3a6df4656fa8850
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-11-10 13:04:39 +00:00
parent ee1447783b
commit 94b2861243
4912 changed files with 390737 additions and 49310 deletions

View 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;
}
}
}
}