Imported Upstream version 5.18.0.142

Former-commit-id: 7467d4b717762eeaf652d77f1486dd11ffb1ff1f
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2018-10-09 08:20:59 +00:00
parent e52655b4dc
commit 0abdbe5a7d
1547 changed files with 93792 additions and 47893 deletions

View File

@ -51,7 +51,7 @@ namespace System.Security.Cryptography {
if (userData == null)
throw new ArgumentNullException ("userData");
// on Windows this is supported only under 2000 and later OS
// on Windows this is supported by CoreFX implementation
Check (scope);
switch (impl) {
@ -64,14 +64,6 @@ namespace System.Security.Cryptography {
string msg = Locale.GetText ("Data protection failed.");
throw new CryptographicException (msg, e);
}
case DataProtectionImplementation.Win32CryptoProtect:
try {
return NativeDapiProtection.Protect (userData, optionalEntropy, scope);
}
catch (Exception e) {
string msg = Locale.GetText ("Data protection failed.");
throw new CryptographicException (msg, e);
}
#endif
default:
throw new PlatformNotSupportedException ();
@ -84,7 +76,7 @@ namespace System.Security.Cryptography {
if (encryptedData == null)
throw new ArgumentNullException ("encryptedData");
// on Windows this is supported only under 2000 and later OS
// on Windows this is supported by CoreFX implementation
Check (scope);
switch (impl) {
@ -97,14 +89,6 @@ namespace System.Security.Cryptography {
string msg = Locale.GetText ("Data unprotection failed.");
throw new CryptographicException (msg, e);
}
case DataProtectionImplementation.Win32CryptoProtect:
try {
return NativeDapiProtection.Unprotect (encryptedData, optionalEntropy, scope);
}
catch (Exception e) {
string msg = Locale.GetText ("Data unprotection failed.");
throw new CryptographicException (msg, e);
}
#endif
default:
throw new PlatformNotSupportedException ();
@ -126,18 +110,10 @@ namespace System.Security.Cryptography {
{
OperatingSystem os = Environment.OSVersion;
switch (os.Platform) {
case PlatformID.Win32NT:
Version v = os.Version;
if (v.Major < 5) {
impl = DataProtectionImplementation.Unsupported;
} else {
// Windows 2000 (5.0) and later
impl = DataProtectionImplementation.Win32CryptoProtect;
}
break;
case PlatformID.Unix:
impl = DataProtectionImplementation.ManagedProtection;
break;
case PlatformID.Win32NT:
default:
impl = DataProtectionImplementation.Unsupported;
break;
@ -146,12 +122,6 @@ namespace System.Security.Cryptography {
private static void Check (DataProtectionScope scope)
{
if ((scope < DataProtectionScope.CurrentUser) || (scope > DataProtectionScope.LocalMachine)) {
string msg = Locale.GetText ("Invalid enum value '{0}' for '{1}'.",
scope, "DataProtectionScope");
throw new ArgumentException (msg, "scope");
}
switch (impl) {
case DataProtectionImplementation.Unknown:
Detect ();