Imported Upstream version 4.4.0.40

Former-commit-id: 6427cc082e74df30afc535fd906a3494b74b0817
This commit is contained in:
Xamarin Public Jenkins
2016-03-16 12:38:19 -04:00
parent f3e3aab35a
commit a632333cc7
110 changed files with 1496 additions and 556 deletions

View File

@@ -237,23 +237,29 @@ namespace Mono.Security.Cryptography {
private static RSA user;
private static RSA machine;
private readonly static object user_lock = new object ();
private readonly static object machine_lock = new object ();
private static RSA GetKey (DataProtectionScope scope)
{
switch (scope) {
case DataProtectionScope.CurrentUser:
if (user == null) {
CspParameters csp = new CspParameters ();
csp.KeyContainerName = "DAPI";
user = new RSACryptoServiceProvider (1536, csp);
lock (user_lock) {
CspParameters csp = new CspParameters ();
csp.KeyContainerName = "DAPI";
user = new RSACryptoServiceProvider (1536, csp);
}
}
return user;
case DataProtectionScope.LocalMachine:
if (machine == null) {
CspParameters csp = new CspParameters ();
csp.KeyContainerName = "DAPI";
csp.Flags = CspProviderFlags.UseMachineKeyStore;
machine = new RSACryptoServiceProvider (1536, csp);
lock (machine_lock) {
CspParameters csp = new CspParameters ();
csp.KeyContainerName = "DAPI";
csp.Flags = CspProviderFlags.UseMachineKeyStore;
machine = new RSACryptoServiceProvider (1536, csp);
}
}
return machine;
default: