436 lines
18 KiB
C#
436 lines
18 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Security.Permissions;
|
|
|
|
namespace System.Security.Policy
|
|
{
|
|
// Token: 0x02000584 RID: 1412
|
|
internal static class DefaultPolicies
|
|
{
|
|
// Token: 0x060033AB RID: 13227 RVA: 0x000B18CC File Offset: 0x000AFACC
|
|
// Note: this type is marked as 'beforefieldinit'.
|
|
static DefaultPolicies()
|
|
{
|
|
byte[] array = new byte[16];
|
|
array[8] = 4;
|
|
DefaultPolicies._ecmaKey = array;
|
|
DefaultPolicies._msFinalKey = new byte[]
|
|
{
|
|
0, 36, 0, 0, 4, 128, 0, 0, 148, 0,
|
|
0, 0, 6, 2, 0, 0, 0, 36, 0, 0,
|
|
82, 83, 65, 49, 0, 4, 0, 0, 1, 0,
|
|
1, 0, 7, 209, 250, 87, 196, 174, 217, 240,
|
|
163, 46, 132, 170, 15, 174, 253, 13, 233, 232,
|
|
253, 106, 236, 143, 135, 251, 3, 118, 108, 131,
|
|
76, 153, 146, 30, 178, 59, 231, 154, 217, 213,
|
|
220, 193, 221, 154, 210, 54, 19, 33, 2, 144,
|
|
11, 114, 60, 249, 128, 149, 127, 196, 225, 119,
|
|
16, 143, 198, 7, 119, 79, 41, 232, 50, 14,
|
|
146, 234, 5, 236, 228, 232, 33, 192, 165, 239,
|
|
232, 241, 100, 92, 76, 12, 147, 193, 171, 153,
|
|
40, 93, 98, 44, 170, 101, 44, 29, 250, 214,
|
|
61, 116, 93, 111, 45, 229, 241, 126, 94, 175,
|
|
15, 196, 150, 61, 38, 28, 138, 18, 67, 101,
|
|
24, 32, 109, 192, 147, 52, 77, 90, 210, 147
|
|
};
|
|
}
|
|
|
|
// Token: 0x060033AC RID: 13228 RVA: 0x000B1904 File Offset: 0x000AFB04
|
|
public static PermissionSet GetSpecialPermissionSet(string name)
|
|
{
|
|
if (name == null)
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
switch (name)
|
|
{
|
|
case "FullTrust":
|
|
return DefaultPolicies.FullTrust;
|
|
case "LocalIntranet":
|
|
return DefaultPolicies.LocalIntranet;
|
|
case "Internet":
|
|
return DefaultPolicies.Internet;
|
|
case "SkipVerification":
|
|
return DefaultPolicies.SkipVerification;
|
|
case "Execution":
|
|
return DefaultPolicies.Execution;
|
|
case "Nothing":
|
|
return DefaultPolicies.Nothing;
|
|
case "Everything":
|
|
return DefaultPolicies.Everything;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
// Token: 0x17000A2B RID: 2603
|
|
// (get) Token: 0x060033AD RID: 13229 RVA: 0x000B19FC File Offset: 0x000AFBFC
|
|
public static PermissionSet FullTrust
|
|
{
|
|
get
|
|
{
|
|
if (DefaultPolicies._fullTrust == null)
|
|
{
|
|
DefaultPolicies._fullTrust = DefaultPolicies.BuildFullTrust();
|
|
}
|
|
return DefaultPolicies._fullTrust;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000A2C RID: 2604
|
|
// (get) Token: 0x060033AE RID: 13230 RVA: 0x000B1A18 File Offset: 0x000AFC18
|
|
public static PermissionSet LocalIntranet
|
|
{
|
|
get
|
|
{
|
|
if (DefaultPolicies._localIntranet == null)
|
|
{
|
|
DefaultPolicies._localIntranet = DefaultPolicies.BuildLocalIntranet();
|
|
}
|
|
return DefaultPolicies._localIntranet;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000A2D RID: 2605
|
|
// (get) Token: 0x060033AF RID: 13231 RVA: 0x000B1A34 File Offset: 0x000AFC34
|
|
public static PermissionSet Internet
|
|
{
|
|
get
|
|
{
|
|
if (DefaultPolicies._internet == null)
|
|
{
|
|
DefaultPolicies._internet = DefaultPolicies.BuildInternet();
|
|
}
|
|
return DefaultPolicies._internet;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000A2E RID: 2606
|
|
// (get) Token: 0x060033B0 RID: 13232 RVA: 0x000B1A50 File Offset: 0x000AFC50
|
|
public static PermissionSet SkipVerification
|
|
{
|
|
get
|
|
{
|
|
if (DefaultPolicies._skipVerification == null)
|
|
{
|
|
DefaultPolicies._skipVerification = DefaultPolicies.BuildSkipVerification();
|
|
}
|
|
return DefaultPolicies._skipVerification;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000A2F RID: 2607
|
|
// (get) Token: 0x060033B1 RID: 13233 RVA: 0x000B1A6C File Offset: 0x000AFC6C
|
|
public static PermissionSet Execution
|
|
{
|
|
get
|
|
{
|
|
if (DefaultPolicies._execution == null)
|
|
{
|
|
DefaultPolicies._execution = DefaultPolicies.BuildExecution();
|
|
}
|
|
return DefaultPolicies._execution;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000A30 RID: 2608
|
|
// (get) Token: 0x060033B2 RID: 13234 RVA: 0x000B1A88 File Offset: 0x000AFC88
|
|
public static PermissionSet Nothing
|
|
{
|
|
get
|
|
{
|
|
if (DefaultPolicies._nothing == null)
|
|
{
|
|
DefaultPolicies._nothing = DefaultPolicies.BuildNothing();
|
|
}
|
|
return DefaultPolicies._nothing;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000A31 RID: 2609
|
|
// (get) Token: 0x060033B3 RID: 13235 RVA: 0x000B1AA4 File Offset: 0x000AFCA4
|
|
public static PermissionSet Everything
|
|
{
|
|
get
|
|
{
|
|
if (DefaultPolicies._everything == null)
|
|
{
|
|
DefaultPolicies._everything = DefaultPolicies.BuildEverything();
|
|
}
|
|
return DefaultPolicies._everything;
|
|
}
|
|
}
|
|
|
|
// Token: 0x060033B4 RID: 13236 RVA: 0x000B1AC0 File Offset: 0x000AFCC0
|
|
public static StrongNameMembershipCondition FullTrustMembership(string name, DefaultPolicies.Key key)
|
|
{
|
|
StrongNamePublicKeyBlob strongNamePublicKeyBlob = null;
|
|
if (key != DefaultPolicies.Key.Ecma)
|
|
{
|
|
if (key == DefaultPolicies.Key.MsFinal)
|
|
{
|
|
if (DefaultPolicies._msFinal == null)
|
|
{
|
|
DefaultPolicies._msFinal = new StrongNamePublicKeyBlob(DefaultPolicies._msFinalKey);
|
|
}
|
|
strongNamePublicKeyBlob = DefaultPolicies._msFinal;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (DefaultPolicies._ecma == null)
|
|
{
|
|
DefaultPolicies._ecma = new StrongNamePublicKeyBlob(DefaultPolicies._ecmaKey);
|
|
}
|
|
strongNamePublicKeyBlob = DefaultPolicies._ecma;
|
|
}
|
|
if (DefaultPolicies._fxVersion == null)
|
|
{
|
|
DefaultPolicies._fxVersion = new Version("2.0.0.0");
|
|
}
|
|
return new StrongNameMembershipCondition(strongNamePublicKeyBlob, name, DefaultPolicies._fxVersion);
|
|
}
|
|
|
|
// Token: 0x060033B5 RID: 13237 RVA: 0x000B1B58 File Offset: 0x000AFD58
|
|
private static NamedPermissionSet BuildFullTrust()
|
|
{
|
|
return new NamedPermissionSet("FullTrust", PermissionState.Unrestricted);
|
|
}
|
|
|
|
// Token: 0x060033B6 RID: 13238 RVA: 0x000B1B68 File Offset: 0x000AFD68
|
|
private static NamedPermissionSet BuildLocalIntranet()
|
|
{
|
|
NamedPermissionSet namedPermissionSet = new NamedPermissionSet("LocalIntranet", PermissionState.None);
|
|
namedPermissionSet.AddPermission(new EnvironmentPermission(EnvironmentPermissionAccess.Read, "USERNAME;USER"));
|
|
namedPermissionSet.AddPermission(new FileDialogPermission(PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(new IsolatedStorageFilePermission(PermissionState.None)
|
|
{
|
|
UsageAllowed = IsolatedStorageContainment.AssemblyIsolationByUser,
|
|
UserQuota = long.MaxValue
|
|
});
|
|
namedPermissionSet.AddPermission(new ReflectionPermission(ReflectionPermissionFlag.ReflectionEmit));
|
|
SecurityPermissionFlag securityPermissionFlag = SecurityPermissionFlag.Assertion | SecurityPermissionFlag.Execution;
|
|
namedPermissionSet.AddPermission(new SecurityPermission(securityPermissionFlag));
|
|
namedPermissionSet.AddPermission(new UIPermission(PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(PermissionBuilder.Create("System.Net.DnsPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(PermissionBuilder.Create(DefaultPolicies.PrintingPermission("SafePrinting")));
|
|
return namedPermissionSet;
|
|
}
|
|
|
|
// Token: 0x060033B7 RID: 13239 RVA: 0x000B1C1C File Offset: 0x000AFE1C
|
|
private static NamedPermissionSet BuildInternet()
|
|
{
|
|
NamedPermissionSet namedPermissionSet = new NamedPermissionSet("Internet", PermissionState.None);
|
|
namedPermissionSet.AddPermission(new FileDialogPermission(FileDialogPermissionAccess.Open));
|
|
namedPermissionSet.AddPermission(new IsolatedStorageFilePermission(PermissionState.None)
|
|
{
|
|
UsageAllowed = IsolatedStorageContainment.DomainIsolationByUser,
|
|
UserQuota = 512000L
|
|
});
|
|
namedPermissionSet.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));
|
|
namedPermissionSet.AddPermission(new UIPermission(UIPermissionWindow.SafeTopLevelWindows, UIPermissionClipboard.OwnClipboard));
|
|
namedPermissionSet.AddPermission(PermissionBuilder.Create(DefaultPolicies.PrintingPermission("SafePrinting")));
|
|
return namedPermissionSet;
|
|
}
|
|
|
|
// Token: 0x060033B8 RID: 13240 RVA: 0x000B1C98 File Offset: 0x000AFE98
|
|
private static NamedPermissionSet BuildSkipVerification()
|
|
{
|
|
NamedPermissionSet namedPermissionSet = new NamedPermissionSet("SkipVerification", PermissionState.None);
|
|
namedPermissionSet.AddPermission(new SecurityPermission(SecurityPermissionFlag.SkipVerification));
|
|
return namedPermissionSet;
|
|
}
|
|
|
|
// Token: 0x060033B9 RID: 13241 RVA: 0x000B1CC0 File Offset: 0x000AFEC0
|
|
private static NamedPermissionSet BuildExecution()
|
|
{
|
|
NamedPermissionSet namedPermissionSet = new NamedPermissionSet("Execution", PermissionState.None);
|
|
namedPermissionSet.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));
|
|
return namedPermissionSet;
|
|
}
|
|
|
|
// Token: 0x060033BA RID: 13242 RVA: 0x000B1CE8 File Offset: 0x000AFEE8
|
|
private static NamedPermissionSet BuildNothing()
|
|
{
|
|
return new NamedPermissionSet("Nothing", PermissionState.None);
|
|
}
|
|
|
|
// Token: 0x060033BB RID: 13243 RVA: 0x000B1CF8 File Offset: 0x000AFEF8
|
|
private static NamedPermissionSet BuildEverything()
|
|
{
|
|
NamedPermissionSet namedPermissionSet = new NamedPermissionSet("Everything", PermissionState.None);
|
|
namedPermissionSet.AddPermission(new EnvironmentPermission(PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(new FileDialogPermission(PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(new FileIOPermission(PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(new IsolatedStorageFilePermission(PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(new ReflectionPermission(PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(new RegistryPermission(PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(new KeyContainerPermission(PermissionState.Unrestricted));
|
|
SecurityPermissionFlag securityPermissionFlag = SecurityPermissionFlag.AllFlags;
|
|
securityPermissionFlag &= ~SecurityPermissionFlag.SkipVerification;
|
|
namedPermissionSet.AddPermission(new SecurityPermission(securityPermissionFlag));
|
|
namedPermissionSet.AddPermission(new UIPermission(PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(PermissionBuilder.Create("System.Net.DnsPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(PermissionBuilder.Create("System.Drawing.Printing.PrintingPermission, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(PermissionBuilder.Create("System.Diagnostics.EventLogPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(PermissionBuilder.Create("System.Net.SocketPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(PermissionBuilder.Create("System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(PermissionBuilder.Create("System.Diagnostics.PerformanceCounterPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(PermissionBuilder.Create("System.DirectoryServices.DirectoryServicesPermission, System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(PermissionBuilder.Create("System.Messaging.MessageQueuePermission, System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(PermissionBuilder.Create("System.ServiceProcess.ServiceControllerPermission, System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(PermissionBuilder.Create("System.Data.OleDb.OleDbPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", PermissionState.Unrestricted));
|
|
namedPermissionSet.AddPermission(PermissionBuilder.Create("System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", PermissionState.Unrestricted));
|
|
return namedPermissionSet;
|
|
}
|
|
|
|
// Token: 0x060033BC RID: 13244 RVA: 0x000B1E58 File Offset: 0x000B0058
|
|
private static SecurityElement PrintingPermission(string level)
|
|
{
|
|
SecurityElement securityElement = new SecurityElement("IPermission");
|
|
securityElement.AddAttribute("class", "System.Drawing.Printing.PrintingPermission, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
|
|
securityElement.AddAttribute("version", "1");
|
|
securityElement.AddAttribute("Level", level);
|
|
return securityElement;
|
|
}
|
|
|
|
// Token: 0x04001523 RID: 5411
|
|
private const string DnsPermissionClass = "System.Net.DnsPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
|
|
|
|
// Token: 0x04001524 RID: 5412
|
|
private const string EventLogPermissionClass = "System.Diagnostics.EventLogPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
|
|
|
|
// Token: 0x04001525 RID: 5413
|
|
private const string PrintingPermissionClass = "System.Drawing.Printing.PrintingPermission, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a";
|
|
|
|
// Token: 0x04001526 RID: 5414
|
|
private const string SocketPermissionClass = "System.Net.SocketPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
|
|
|
|
// Token: 0x04001527 RID: 5415
|
|
private const string WebPermissionClass = "System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
|
|
|
|
// Token: 0x04001528 RID: 5416
|
|
private const string PerformanceCounterPermissionClass = "System.Diagnostics.PerformanceCounterPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
|
|
|
|
// Token: 0x04001529 RID: 5417
|
|
private const string DirectoryServicesPermissionClass = "System.DirectoryServices.DirectoryServicesPermission, System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a";
|
|
|
|
// Token: 0x0400152A RID: 5418
|
|
private const string MessageQueuePermissionClass = "System.Messaging.MessageQueuePermission, System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a";
|
|
|
|
// Token: 0x0400152B RID: 5419
|
|
private const string ServiceControllerPermissionClass = "System.ServiceProcess.ServiceControllerPermission, System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a";
|
|
|
|
// Token: 0x0400152C RID: 5420
|
|
private const string OleDbPermissionClass = "System.Data.OleDb.OleDbPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
|
|
|
|
// Token: 0x0400152D RID: 5421
|
|
private const string SqlClientPermissionClass = "System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
|
|
|
|
// Token: 0x0400152E RID: 5422
|
|
private const string DataProtectionPermissionClass = "System.Security.Permissions.DataProtectionPermission, System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a";
|
|
|
|
// Token: 0x0400152F RID: 5423
|
|
private const string StorePermissionClass = "System.Security.Permissions.StorePermission, System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a";
|
|
|
|
// Token: 0x04001530 RID: 5424
|
|
private static Version _fxVersion;
|
|
|
|
// Token: 0x04001531 RID: 5425
|
|
private static byte[] _ecmaKey;
|
|
|
|
// Token: 0x04001532 RID: 5426
|
|
private static StrongNamePublicKeyBlob _ecma;
|
|
|
|
// Token: 0x04001533 RID: 5427
|
|
private static byte[] _msFinalKey;
|
|
|
|
// Token: 0x04001534 RID: 5428
|
|
private static StrongNamePublicKeyBlob _msFinal;
|
|
|
|
// Token: 0x04001535 RID: 5429
|
|
private static NamedPermissionSet _fullTrust;
|
|
|
|
// Token: 0x04001536 RID: 5430
|
|
private static NamedPermissionSet _localIntranet;
|
|
|
|
// Token: 0x04001537 RID: 5431
|
|
private static NamedPermissionSet _internet;
|
|
|
|
// Token: 0x04001538 RID: 5432
|
|
private static NamedPermissionSet _skipVerification;
|
|
|
|
// Token: 0x04001539 RID: 5433
|
|
private static NamedPermissionSet _execution;
|
|
|
|
// Token: 0x0400153A RID: 5434
|
|
private static NamedPermissionSet _nothing;
|
|
|
|
// Token: 0x0400153B RID: 5435
|
|
private static NamedPermissionSet _everything;
|
|
|
|
// Token: 0x02000585 RID: 1413
|
|
public static class ReservedNames
|
|
{
|
|
// Token: 0x060033BD RID: 13245 RVA: 0x000B1EA0 File Offset: 0x000B00A0
|
|
public static bool IsReserved(string name)
|
|
{
|
|
if (name != null)
|
|
{
|
|
if (DefaultPolicies.ReservedNames.<>f__switch$map2C == null)
|
|
{
|
|
DefaultPolicies.ReservedNames.<>f__switch$map2C = new Dictionary<string, int>(7)
|
|
{
|
|
{ "FullTrust", 0 },
|
|
{ "LocalIntranet", 0 },
|
|
{ "Internet", 0 },
|
|
{ "SkipVerification", 0 },
|
|
{ "Execution", 0 },
|
|
{ "Nothing", 0 },
|
|
{ "Everything", 0 }
|
|
};
|
|
}
|
|
int num;
|
|
if (DefaultPolicies.ReservedNames.<>f__switch$map2C.TryGetValue(name, out num))
|
|
{
|
|
if (num == 0)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
// Token: 0x0400153D RID: 5437
|
|
public const string FullTrust = "FullTrust";
|
|
|
|
// Token: 0x0400153E RID: 5438
|
|
public const string LocalIntranet = "LocalIntranet";
|
|
|
|
// Token: 0x0400153F RID: 5439
|
|
public const string Internet = "Internet";
|
|
|
|
// Token: 0x04001540 RID: 5440
|
|
public const string SkipVerification = "SkipVerification";
|
|
|
|
// Token: 0x04001541 RID: 5441
|
|
public const string Execution = "Execution";
|
|
|
|
// Token: 0x04001542 RID: 5442
|
|
public const string Nothing = "Nothing";
|
|
|
|
// Token: 0x04001543 RID: 5443
|
|
public const string Everything = "Everything";
|
|
}
|
|
|
|
// Token: 0x02000586 RID: 1414
|
|
public enum Key
|
|
{
|
|
// Token: 0x04001546 RID: 5446
|
|
Ecma,
|
|
// Token: 0x04001547 RID: 5447
|
|
MsFinal
|
|
}
|
|
}
|
|
}
|