scripts
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
|
||||
namespace Mono.Security.X509.Extensions
|
||||
{
|
||||
// Token: 0x02000064 RID: 100
|
||||
public class AuthorityKeyIdentifierExtension : X509Extension
|
||||
{
|
||||
// Token: 0x060003C4 RID: 964 RVA: 0x00018D04 File Offset: 0x00016F04
|
||||
public AuthorityKeyIdentifierExtension()
|
||||
{
|
||||
this.extnOid = "2.5.29.35";
|
||||
}
|
||||
|
||||
// Token: 0x060003C5 RID: 965 RVA: 0x00018D18 File Offset: 0x00016F18
|
||||
public AuthorityKeyIdentifierExtension(ASN1 asn1)
|
||||
: base(asn1)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003C6 RID: 966 RVA: 0x00018D24 File Offset: 0x00016F24
|
||||
public AuthorityKeyIdentifierExtension(X509Extension extension)
|
||||
: base(extension)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003C7 RID: 967 RVA: 0x00018D30 File Offset: 0x00016F30
|
||||
protected override void Decode()
|
||||
{
|
||||
ASN1 asn = new ASN1(this.extnValue.Value);
|
||||
if (asn.Tag != 48)
|
||||
{
|
||||
throw new ArgumentException("Invalid AuthorityKeyIdentifier extension");
|
||||
}
|
||||
for (int i = 0; i < asn.Count; i++)
|
||||
{
|
||||
ASN1 asn2 = asn[i];
|
||||
byte tag = asn2.Tag;
|
||||
if (tag == 128)
|
||||
{
|
||||
this.aki = asn2.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000D7 RID: 215
|
||||
// (get) Token: 0x060003C8 RID: 968 RVA: 0x00018DB4 File Offset: 0x00016FB4
|
||||
public override string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Authority Key Identifier";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000D8 RID: 216
|
||||
// (get) Token: 0x060003C9 RID: 969 RVA: 0x00018DBC File Offset: 0x00016FBC
|
||||
public byte[] Identifier
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.aki == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return (byte[])this.aki.Clone();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003CA RID: 970 RVA: 0x00018DDC File Offset: 0x00016FDC
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
if (this.aki != null)
|
||||
{
|
||||
int i = 0;
|
||||
stringBuilder.Append("KeyID=");
|
||||
while (i < this.aki.Length)
|
||||
{
|
||||
stringBuilder.Append(this.aki[i].ToString("X2", CultureInfo.InvariantCulture));
|
||||
if (i % 2 == 1)
|
||||
{
|
||||
stringBuilder.Append(" ");
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x040001B9 RID: 441
|
||||
private byte[] aki;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
|
||||
namespace Mono.Security.X509.Extensions
|
||||
{
|
||||
// Token: 0x02000065 RID: 101
|
||||
public class BasicConstraintsExtension : X509Extension
|
||||
{
|
||||
// Token: 0x060003CB RID: 971 RVA: 0x00018E5C File Offset: 0x0001705C
|
||||
public BasicConstraintsExtension()
|
||||
{
|
||||
this.extnOid = "2.5.29.19";
|
||||
this.pathLenConstraint = -1;
|
||||
}
|
||||
|
||||
// Token: 0x060003CC RID: 972 RVA: 0x00018E78 File Offset: 0x00017078
|
||||
public BasicConstraintsExtension(ASN1 asn1)
|
||||
: base(asn1)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003CD RID: 973 RVA: 0x00018E84 File Offset: 0x00017084
|
||||
public BasicConstraintsExtension(X509Extension extension)
|
||||
: base(extension)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003CE RID: 974 RVA: 0x00018E90 File Offset: 0x00017090
|
||||
protected override void Decode()
|
||||
{
|
||||
this.cA = false;
|
||||
this.pathLenConstraint = -1;
|
||||
ASN1 asn = new ASN1(this.extnValue.Value);
|
||||
if (asn.Tag != 48)
|
||||
{
|
||||
throw new ArgumentException("Invalid BasicConstraints extension");
|
||||
}
|
||||
int num = 0;
|
||||
ASN1 asn2 = asn[num++];
|
||||
if (asn2 != null && asn2.Tag == 1)
|
||||
{
|
||||
this.cA = asn2.Value[0] == byte.MaxValue;
|
||||
asn2 = asn[num++];
|
||||
}
|
||||
if (asn2 != null && asn2.Tag == 2)
|
||||
{
|
||||
this.pathLenConstraint = ASN1Convert.ToInt32(asn2);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003CF RID: 975 RVA: 0x00018F34 File Offset: 0x00017134
|
||||
protected override void Encode()
|
||||
{
|
||||
ASN1 asn = new ASN1(48);
|
||||
if (this.cA)
|
||||
{
|
||||
asn.Add(new ASN1(1, new byte[] { byte.MaxValue }));
|
||||
}
|
||||
if (this.cA && this.pathLenConstraint >= 0)
|
||||
{
|
||||
asn.Add(ASN1Convert.FromInt32(this.pathLenConstraint));
|
||||
}
|
||||
this.extnValue = new ASN1(4);
|
||||
this.extnValue.Add(asn);
|
||||
}
|
||||
|
||||
// Token: 0x170000D9 RID: 217
|
||||
// (get) Token: 0x060003D0 RID: 976 RVA: 0x00018FB4 File Offset: 0x000171B4
|
||||
// (set) Token: 0x060003D1 RID: 977 RVA: 0x00018FBC File Offset: 0x000171BC
|
||||
public bool CertificateAuthority
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.cA;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.cA = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000DA RID: 218
|
||||
// (get) Token: 0x060003D2 RID: 978 RVA: 0x00018FC8 File Offset: 0x000171C8
|
||||
public override string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Basic Constraints";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000DB RID: 219
|
||||
// (get) Token: 0x060003D3 RID: 979 RVA: 0x00018FD0 File Offset: 0x000171D0
|
||||
// (set) Token: 0x060003D4 RID: 980 RVA: 0x00018FD8 File Offset: 0x000171D8
|
||||
public int PathLenConstraint
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.pathLenConstraint;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value < -1)
|
||||
{
|
||||
string text = Locale.GetText("PathLenConstraint must be positive or -1 for none ({0}).", new object[] { value });
|
||||
throw new ArgumentOutOfRangeException(text);
|
||||
}
|
||||
this.pathLenConstraint = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003D5 RID: 981 RVA: 0x00019014 File Offset: 0x00017214
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.Append("Subject Type=");
|
||||
stringBuilder.Append((!this.cA) ? "End Entity" : "CA");
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
stringBuilder.Append("Path Length Constraint=");
|
||||
if (this.pathLenConstraint == -1)
|
||||
{
|
||||
stringBuilder.Append("None");
|
||||
}
|
||||
else
|
||||
{
|
||||
stringBuilder.Append(this.pathLenConstraint.ToString(CultureInfo.InvariantCulture));
|
||||
}
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x040001BA RID: 442
|
||||
public const int NoPathLengthConstraint = -1;
|
||||
|
||||
// Token: 0x040001BB RID: 443
|
||||
private bool cA;
|
||||
|
||||
// Token: 0x040001BC RID: 444
|
||||
private int pathLenConstraint;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Text;
|
||||
|
||||
namespace Mono.Security.X509.Extensions
|
||||
{
|
||||
// Token: 0x02000066 RID: 102
|
||||
public class CRLDistributionPointsExtension : X509Extension
|
||||
{
|
||||
// Token: 0x060003D6 RID: 982 RVA: 0x000190B4 File Offset: 0x000172B4
|
||||
public CRLDistributionPointsExtension()
|
||||
{
|
||||
this.extnOid = "2.5.29.31";
|
||||
this.dps = new ArrayList();
|
||||
}
|
||||
|
||||
// Token: 0x060003D7 RID: 983 RVA: 0x000190D4 File Offset: 0x000172D4
|
||||
public CRLDistributionPointsExtension(ASN1 asn1)
|
||||
: base(asn1)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003D8 RID: 984 RVA: 0x000190E0 File Offset: 0x000172E0
|
||||
public CRLDistributionPointsExtension(X509Extension extension)
|
||||
: base(extension)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003D9 RID: 985 RVA: 0x000190EC File Offset: 0x000172EC
|
||||
protected override void Decode()
|
||||
{
|
||||
this.dps = new ArrayList();
|
||||
ASN1 asn = new ASN1(this.extnValue.Value);
|
||||
if (asn.Tag != 48)
|
||||
{
|
||||
throw new ArgumentException("Invalid CRLDistributionPoints extension");
|
||||
}
|
||||
for (int i = 0; i < asn.Count; i++)
|
||||
{
|
||||
this.dps.Add(new CRLDistributionPointsExtension.DP(asn[i]));
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000DC RID: 220
|
||||
// (get) Token: 0x060003DA RID: 986 RVA: 0x0001915C File Offset: 0x0001735C
|
||||
public override string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return "CRL Distribution Points";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003DB RID: 987 RVA: 0x00019164 File Offset: 0x00017364
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
int num = 1;
|
||||
foreach (object obj in this.dps)
|
||||
{
|
||||
CRLDistributionPointsExtension.DP dp = (CRLDistributionPointsExtension.DP)obj;
|
||||
stringBuilder.Append("[");
|
||||
stringBuilder.Append(num++);
|
||||
stringBuilder.Append("]CRL Distribution Point");
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
stringBuilder.Append("\tDistribution Point Name:");
|
||||
stringBuilder.Append("\t\tFull Name:");
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
stringBuilder.Append("\t\t\t");
|
||||
stringBuilder.Append(dp.DistributionPoint);
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
}
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x040001BD RID: 445
|
||||
private ArrayList dps;
|
||||
|
||||
// Token: 0x02000067 RID: 103
|
||||
internal class DP
|
||||
{
|
||||
// Token: 0x060003DC RID: 988 RVA: 0x00019258 File Offset: 0x00017458
|
||||
public DP(string dp, CRLDistributionPointsExtension.ReasonFlags reasons, string issuer)
|
||||
{
|
||||
this.DistributionPoint = dp;
|
||||
this.Reasons = reasons;
|
||||
this.CRLIssuer = issuer;
|
||||
}
|
||||
|
||||
// Token: 0x060003DD RID: 989 RVA: 0x00019278 File Offset: 0x00017478
|
||||
public DP(ASN1 dp)
|
||||
{
|
||||
for (int i = 0; i < dp.Count; i++)
|
||||
{
|
||||
ASN1 asn = dp[i];
|
||||
switch (asn.Tag)
|
||||
{
|
||||
case 160:
|
||||
{
|
||||
for (int j = 0; j < asn.Count; j++)
|
||||
{
|
||||
ASN1 asn2 = asn[j];
|
||||
if (asn2.Tag == 160)
|
||||
{
|
||||
this.DistributionPoint = new GeneralNames(asn2).ToString();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040001BE RID: 446
|
||||
public string DistributionPoint;
|
||||
|
||||
// Token: 0x040001BF RID: 447
|
||||
public CRLDistributionPointsExtension.ReasonFlags Reasons;
|
||||
|
||||
// Token: 0x040001C0 RID: 448
|
||||
public string CRLIssuer;
|
||||
}
|
||||
|
||||
// Token: 0x02000068 RID: 104
|
||||
[Flags]
|
||||
public enum ReasonFlags
|
||||
{
|
||||
// Token: 0x040001C2 RID: 450
|
||||
Unused = 0,
|
||||
// Token: 0x040001C3 RID: 451
|
||||
KeyCompromise = 1,
|
||||
// Token: 0x040001C4 RID: 452
|
||||
CACompromise = 2,
|
||||
// Token: 0x040001C5 RID: 453
|
||||
AffiliationChanged = 3,
|
||||
// Token: 0x040001C6 RID: 454
|
||||
Superseded = 4,
|
||||
// Token: 0x040001C7 RID: 455
|
||||
CessationOfOperation = 5,
|
||||
// Token: 0x040001C8 RID: 456
|
||||
CertificateHold = 6,
|
||||
// Token: 0x040001C9 RID: 457
|
||||
PrivilegeWithdrawn = 7,
|
||||
// Token: 0x040001CA RID: 458
|
||||
AACompromise = 8
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Text;
|
||||
|
||||
namespace Mono.Security.X509.Extensions
|
||||
{
|
||||
// Token: 0x02000069 RID: 105
|
||||
public class CertificatePoliciesExtension : X509Extension
|
||||
{
|
||||
// Token: 0x060003DE RID: 990 RVA: 0x00019320 File Offset: 0x00017520
|
||||
public CertificatePoliciesExtension()
|
||||
{
|
||||
this.extnOid = "2.5.29.32";
|
||||
this.policies = new Hashtable();
|
||||
}
|
||||
|
||||
// Token: 0x060003DF RID: 991 RVA: 0x00019340 File Offset: 0x00017540
|
||||
public CertificatePoliciesExtension(ASN1 asn1)
|
||||
: base(asn1)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003E0 RID: 992 RVA: 0x0001934C File Offset: 0x0001754C
|
||||
public CertificatePoliciesExtension(X509Extension extension)
|
||||
: base(extension)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003E1 RID: 993 RVA: 0x00019358 File Offset: 0x00017558
|
||||
protected override void Decode()
|
||||
{
|
||||
this.policies = new Hashtable();
|
||||
ASN1 asn = new ASN1(this.extnValue.Value);
|
||||
if (asn.Tag != 48)
|
||||
{
|
||||
throw new ArgumentException("Invalid CertificatePolicies extension");
|
||||
}
|
||||
for (int i = 0; i < asn.Count; i++)
|
||||
{
|
||||
this.policies.Add(ASN1Convert.ToOid(asn[i][0]), null);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000DD RID: 221
|
||||
// (get) Token: 0x060003E2 RID: 994 RVA: 0x000193D0 File Offset: 0x000175D0
|
||||
public override string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Certificate Policies";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003E3 RID: 995 RVA: 0x000193D8 File Offset: 0x000175D8
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
int num = 1;
|
||||
foreach (object obj in this.policies)
|
||||
{
|
||||
DictionaryEntry dictionaryEntry = (DictionaryEntry)obj;
|
||||
stringBuilder.Append("[");
|
||||
stringBuilder.Append(num++);
|
||||
stringBuilder.Append("]Certificate Policy:");
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
stringBuilder.Append("\tPolicyIdentifier=");
|
||||
stringBuilder.Append((string)dictionaryEntry.Key);
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
}
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x040001CB RID: 459
|
||||
private Hashtable policies;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Mono.Security.X509.Extensions
|
||||
{
|
||||
// Token: 0x0200006A RID: 106
|
||||
public class ExtendedKeyUsageExtension : X509Extension
|
||||
{
|
||||
// Token: 0x060003E4 RID: 996 RVA: 0x000194AC File Offset: 0x000176AC
|
||||
public ExtendedKeyUsageExtension()
|
||||
{
|
||||
this.extnOid = "2.5.29.37";
|
||||
this.keyPurpose = new ArrayList();
|
||||
}
|
||||
|
||||
// Token: 0x060003E5 RID: 997 RVA: 0x000194CC File Offset: 0x000176CC
|
||||
public ExtendedKeyUsageExtension(ASN1 asn1)
|
||||
: base(asn1)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003E6 RID: 998 RVA: 0x000194D8 File Offset: 0x000176D8
|
||||
public ExtendedKeyUsageExtension(X509Extension extension)
|
||||
: base(extension)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003E7 RID: 999 RVA: 0x000194E4 File Offset: 0x000176E4
|
||||
protected override void Decode()
|
||||
{
|
||||
this.keyPurpose = new ArrayList();
|
||||
ASN1 asn = new ASN1(this.extnValue.Value);
|
||||
if (asn.Tag != 48)
|
||||
{
|
||||
throw new ArgumentException("Invalid ExtendedKeyUsage extension");
|
||||
}
|
||||
for (int i = 0; i < asn.Count; i++)
|
||||
{
|
||||
this.keyPurpose.Add(ASN1Convert.ToOid(asn[i]));
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003E8 RID: 1000 RVA: 0x00019554 File Offset: 0x00017754
|
||||
protected override void Encode()
|
||||
{
|
||||
ASN1 asn = new ASN1(48);
|
||||
foreach (object obj in this.keyPurpose)
|
||||
{
|
||||
string text = (string)obj;
|
||||
asn.Add(ASN1Convert.FromOid(text));
|
||||
}
|
||||
this.extnValue = new ASN1(4);
|
||||
this.extnValue.Add(asn);
|
||||
}
|
||||
|
||||
// Token: 0x170000DE RID: 222
|
||||
// (get) Token: 0x060003E9 RID: 1001 RVA: 0x000195EC File Offset: 0x000177EC
|
||||
public ArrayList KeyPurpose
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.keyPurpose;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000DF RID: 223
|
||||
// (get) Token: 0x060003EA RID: 1002 RVA: 0x000195F4 File Offset: 0x000177F4
|
||||
public override string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Extended Key Usage";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003EB RID: 1003 RVA: 0x000195FC File Offset: 0x000177FC
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
foreach (object obj in this.keyPurpose)
|
||||
{
|
||||
string text = (string)obj;
|
||||
string text2 = text;
|
||||
if (text2 == null)
|
||||
{
|
||||
goto IL_12E;
|
||||
}
|
||||
if (ExtendedKeyUsageExtension.<>f__switch$map14 == null)
|
||||
{
|
||||
ExtendedKeyUsageExtension.<>f__switch$map14 = new Dictionary<string, int>(6)
|
||||
{
|
||||
{ "1.3.6.1.5.5.7.3.1", 0 },
|
||||
{ "1.3.6.1.5.5.7.3.2", 1 },
|
||||
{ "1.3.6.1.5.5.7.3.3", 2 },
|
||||
{ "1.3.6.1.5.5.7.3.4", 3 },
|
||||
{ "1.3.6.1.5.5.7.3.8", 4 },
|
||||
{ "1.3.6.1.5.5.7.3.9", 5 }
|
||||
};
|
||||
}
|
||||
int num;
|
||||
if (!ExtendedKeyUsageExtension.<>f__switch$map14.TryGetValue(text2, out num))
|
||||
{
|
||||
goto IL_12E;
|
||||
}
|
||||
switch (num)
|
||||
{
|
||||
case 0:
|
||||
stringBuilder.Append("Server Authentication");
|
||||
break;
|
||||
case 1:
|
||||
stringBuilder.Append("Client Authentication");
|
||||
break;
|
||||
case 2:
|
||||
stringBuilder.Append("Code Signing");
|
||||
break;
|
||||
case 3:
|
||||
stringBuilder.Append("Email Protection");
|
||||
break;
|
||||
case 4:
|
||||
stringBuilder.Append("Time Stamping");
|
||||
break;
|
||||
case 5:
|
||||
stringBuilder.Append("OCSP Signing");
|
||||
break;
|
||||
default:
|
||||
goto IL_12E;
|
||||
}
|
||||
IL_13F:
|
||||
stringBuilder.AppendFormat(" ({0}){1}", text, Environment.NewLine);
|
||||
continue;
|
||||
IL_12E:
|
||||
stringBuilder.Append("unknown");
|
||||
goto IL_13F;
|
||||
}
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x040001CC RID: 460
|
||||
private ArrayList keyPurpose;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,290 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Text;
|
||||
|
||||
namespace Mono.Security.X509.Extensions
|
||||
{
|
||||
// Token: 0x0200006B RID: 107
|
||||
internal class GeneralNames
|
||||
{
|
||||
// Token: 0x060003EC RID: 1004 RVA: 0x000197A4 File Offset: 0x000179A4
|
||||
public GeneralNames()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003ED RID: 1005 RVA: 0x000197AC File Offset: 0x000179AC
|
||||
public GeneralNames(string[] rfc822s, string[] dnsNames, string[] ipAddresses, string[] uris)
|
||||
{
|
||||
this.asn = new ASN1(48);
|
||||
if (rfc822s != null)
|
||||
{
|
||||
this.rfc822Name = new ArrayList();
|
||||
foreach (string text in rfc822s)
|
||||
{
|
||||
this.asn.Add(new ASN1(129, Encoding.ASCII.GetBytes(text)));
|
||||
this.rfc822Name.Add(rfc822s);
|
||||
}
|
||||
}
|
||||
if (dnsNames != null)
|
||||
{
|
||||
this.dnsName = new ArrayList();
|
||||
foreach (string text2 in dnsNames)
|
||||
{
|
||||
this.asn.Add(new ASN1(130, Encoding.ASCII.GetBytes(text2)));
|
||||
this.dnsName.Add(text2);
|
||||
}
|
||||
}
|
||||
if (ipAddresses != null)
|
||||
{
|
||||
this.ipAddr = new ArrayList();
|
||||
foreach (string text3 in ipAddresses)
|
||||
{
|
||||
string[] array = text3.Split(new char[] { '.', ':' });
|
||||
byte[] array2 = new byte[array.Length];
|
||||
for (int l = 0; l < array.Length; l++)
|
||||
{
|
||||
array2[l] = byte.Parse(array[l]);
|
||||
}
|
||||
this.asn.Add(new ASN1(135, array2));
|
||||
this.ipAddr.Add(text3);
|
||||
}
|
||||
}
|
||||
if (uris != null)
|
||||
{
|
||||
this.uris = new ArrayList();
|
||||
foreach (string text4 in uris)
|
||||
{
|
||||
this.asn.Add(new ASN1(134, Encoding.ASCII.GetBytes(text4)));
|
||||
this.uris.Add(text4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003EE RID: 1006 RVA: 0x00019994 File Offset: 0x00017B94
|
||||
public GeneralNames(ASN1 sequence)
|
||||
{
|
||||
int i = 0;
|
||||
while (i < sequence.Count)
|
||||
{
|
||||
byte tag = sequence[i].Tag;
|
||||
switch (tag)
|
||||
{
|
||||
case 129:
|
||||
if (this.rfc822Name == null)
|
||||
{
|
||||
this.rfc822Name = new ArrayList();
|
||||
}
|
||||
this.rfc822Name.Add(Encoding.ASCII.GetString(sequence[i].Value));
|
||||
break;
|
||||
case 130:
|
||||
if (this.dnsName == null)
|
||||
{
|
||||
this.dnsName = new ArrayList();
|
||||
}
|
||||
this.dnsName.Add(Encoding.ASCII.GetString(sequence[i].Value));
|
||||
break;
|
||||
default:
|
||||
if (tag == 164)
|
||||
{
|
||||
goto IL_CF;
|
||||
}
|
||||
break;
|
||||
case 132:
|
||||
goto IL_CF;
|
||||
case 134:
|
||||
if (this.uris == null)
|
||||
{
|
||||
this.uris = new ArrayList();
|
||||
}
|
||||
this.uris.Add(Encoding.ASCII.GetString(sequence[i].Value));
|
||||
break;
|
||||
case 135:
|
||||
{
|
||||
if (this.ipAddr == null)
|
||||
{
|
||||
this.ipAddr = new ArrayList();
|
||||
}
|
||||
byte[] value = sequence[i].Value;
|
||||
string text = ((value.Length != 4) ? ":" : ".");
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
for (int j = 0; j < value.Length; j++)
|
||||
{
|
||||
stringBuilder.Append(value[j].ToString());
|
||||
if (j < value.Length - 1)
|
||||
{
|
||||
stringBuilder.Append(text);
|
||||
}
|
||||
}
|
||||
this.ipAddr.Add(stringBuilder.ToString());
|
||||
if (this.ipAddr == null)
|
||||
{
|
||||
this.ipAddr = new ArrayList();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
IL_1F9:
|
||||
i++;
|
||||
continue;
|
||||
IL_CF:
|
||||
if (this.directoryNames == null)
|
||||
{
|
||||
this.directoryNames = new ArrayList();
|
||||
}
|
||||
this.directoryNames.Add(X501.ToString(sequence[i][0]));
|
||||
goto IL_1F9;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E0 RID: 224
|
||||
// (get) Token: 0x060003EF RID: 1007 RVA: 0x00019BAC File Offset: 0x00017DAC
|
||||
public string[] RFC822
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.rfc822Name == null)
|
||||
{
|
||||
return new string[0];
|
||||
}
|
||||
return (string[])this.rfc822Name.ToArray(typeof(string));
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E1 RID: 225
|
||||
// (get) Token: 0x060003F0 RID: 1008 RVA: 0x00019BE8 File Offset: 0x00017DE8
|
||||
public string[] DirectoryNames
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.directoryNames == null)
|
||||
{
|
||||
return new string[0];
|
||||
}
|
||||
return (string[])this.directoryNames.ToArray(typeof(string));
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E2 RID: 226
|
||||
// (get) Token: 0x060003F1 RID: 1009 RVA: 0x00019C24 File Offset: 0x00017E24
|
||||
public string[] DNSNames
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.dnsName == null)
|
||||
{
|
||||
return new string[0];
|
||||
}
|
||||
return (string[])this.dnsName.ToArray(typeof(string));
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E3 RID: 227
|
||||
// (get) Token: 0x060003F2 RID: 1010 RVA: 0x00019C60 File Offset: 0x00017E60
|
||||
public string[] UniformResourceIdentifiers
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.uris == null)
|
||||
{
|
||||
return new string[0];
|
||||
}
|
||||
return (string[])this.uris.ToArray(typeof(string));
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E4 RID: 228
|
||||
// (get) Token: 0x060003F3 RID: 1011 RVA: 0x00019C9C File Offset: 0x00017E9C
|
||||
public string[] IPAddresses
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.ipAddr == null)
|
||||
{
|
||||
return new string[0];
|
||||
}
|
||||
return (string[])this.ipAddr.ToArray(typeof(string));
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003F4 RID: 1012 RVA: 0x00019CD8 File Offset: 0x00017ED8
|
||||
public byte[] GetBytes()
|
||||
{
|
||||
return this.asn.GetBytes();
|
||||
}
|
||||
|
||||
// Token: 0x060003F5 RID: 1013 RVA: 0x00019CE8 File Offset: 0x00017EE8
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
if (this.rfc822Name != null)
|
||||
{
|
||||
foreach (object obj in this.rfc822Name)
|
||||
{
|
||||
string text = (string)obj;
|
||||
stringBuilder.Append("RFC822 Name=");
|
||||
stringBuilder.Append(text);
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
}
|
||||
}
|
||||
if (this.dnsName != null)
|
||||
{
|
||||
foreach (object obj2 in this.dnsName)
|
||||
{
|
||||
string text2 = (string)obj2;
|
||||
stringBuilder.Append("DNS Name=");
|
||||
stringBuilder.Append(text2);
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
}
|
||||
}
|
||||
if (this.directoryNames != null)
|
||||
{
|
||||
foreach (object obj3 in this.directoryNames)
|
||||
{
|
||||
string text3 = (string)obj3;
|
||||
stringBuilder.Append("Directory Address: ");
|
||||
stringBuilder.Append(text3);
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
}
|
||||
}
|
||||
if (this.uris != null)
|
||||
{
|
||||
foreach (object obj4 in this.uris)
|
||||
{
|
||||
string text4 = (string)obj4;
|
||||
stringBuilder.Append("URL=");
|
||||
stringBuilder.Append(text4);
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
}
|
||||
}
|
||||
if (this.ipAddr != null)
|
||||
{
|
||||
foreach (object obj5 in this.ipAddr)
|
||||
{
|
||||
string text5 = (string)obj5;
|
||||
stringBuilder.Append("IP Address=");
|
||||
stringBuilder.Append(text5);
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
}
|
||||
}
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x040001CE RID: 462
|
||||
private ArrayList rfc822Name;
|
||||
|
||||
// Token: 0x040001CF RID: 463
|
||||
private ArrayList dnsName;
|
||||
|
||||
// Token: 0x040001D0 RID: 464
|
||||
private ArrayList directoryNames;
|
||||
|
||||
// Token: 0x040001D1 RID: 465
|
||||
private ArrayList uris;
|
||||
|
||||
// Token: 0x040001D2 RID: 466
|
||||
private ArrayList ipAddr;
|
||||
|
||||
// Token: 0x040001D3 RID: 467
|
||||
private ASN1 asn;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,257 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
|
||||
namespace Mono.Security.X509.Extensions
|
||||
{
|
||||
// Token: 0x0200006C RID: 108
|
||||
public class KeyAttributesExtension : X509Extension
|
||||
{
|
||||
// Token: 0x060003F6 RID: 1014 RVA: 0x00019FB4 File Offset: 0x000181B4
|
||||
public KeyAttributesExtension()
|
||||
{
|
||||
this.extnOid = "2.5.29.2";
|
||||
}
|
||||
|
||||
// Token: 0x060003F7 RID: 1015 RVA: 0x00019FC8 File Offset: 0x000181C8
|
||||
public KeyAttributesExtension(ASN1 asn1)
|
||||
: base(asn1)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003F8 RID: 1016 RVA: 0x00019FD4 File Offset: 0x000181D4
|
||||
public KeyAttributesExtension(X509Extension extension)
|
||||
: base(extension)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x060003F9 RID: 1017 RVA: 0x00019FE0 File Offset: 0x000181E0
|
||||
protected override void Decode()
|
||||
{
|
||||
ASN1 asn = new ASN1(this.extnValue.Value);
|
||||
if (asn.Tag != 48)
|
||||
{
|
||||
throw new ArgumentException("Invalid KeyAttributesExtension extension");
|
||||
}
|
||||
int num = 0;
|
||||
if (num < asn.Count)
|
||||
{
|
||||
ASN1 asn2 = asn[num];
|
||||
if (asn2.Tag == 4)
|
||||
{
|
||||
num++;
|
||||
this.keyId = asn2.Value;
|
||||
}
|
||||
}
|
||||
if (num < asn.Count)
|
||||
{
|
||||
ASN1 asn3 = asn[num];
|
||||
if (asn3.Tag == 3)
|
||||
{
|
||||
num++;
|
||||
int i = 1;
|
||||
while (i < asn3.Value.Length)
|
||||
{
|
||||
this.kubits = (this.kubits << 8) + (int)asn3.Value[i++];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (num < asn.Count)
|
||||
{
|
||||
ASN1 asn4 = asn[num];
|
||||
if (asn4.Tag == 48)
|
||||
{
|
||||
int num2 = 0;
|
||||
if (num2 < asn4.Count)
|
||||
{
|
||||
ASN1 asn5 = asn4[num2];
|
||||
if (asn5.Tag == 129)
|
||||
{
|
||||
num2++;
|
||||
this.notBefore = ASN1Convert.ToDateTime(asn5);
|
||||
}
|
||||
}
|
||||
if (num2 < asn4.Count)
|
||||
{
|
||||
ASN1 asn6 = asn4[num2];
|
||||
if (asn6.Tag == 130)
|
||||
{
|
||||
this.notAfter = ASN1Convert.ToDateTime(asn6);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E5 RID: 229
|
||||
// (get) Token: 0x060003FA RID: 1018 RVA: 0x0001A13C File Offset: 0x0001833C
|
||||
public byte[] KeyIdentifier
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.keyId == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return (byte[])this.keyId.Clone();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E6 RID: 230
|
||||
// (get) Token: 0x060003FB RID: 1019 RVA: 0x0001A15C File Offset: 0x0001835C
|
||||
public override string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Key Attributes";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E7 RID: 231
|
||||
// (get) Token: 0x060003FC RID: 1020 RVA: 0x0001A164 File Offset: 0x00018364
|
||||
public DateTime NotAfter
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.notAfter;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E8 RID: 232
|
||||
// (get) Token: 0x060003FD RID: 1021 RVA: 0x0001A16C File Offset: 0x0001836C
|
||||
public DateTime NotBefore
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.notBefore;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060003FE RID: 1022 RVA: 0x0001A174 File Offset: 0x00018374
|
||||
public bool Support(KeyUsages usage)
|
||||
{
|
||||
int num = Convert.ToInt32(usage, CultureInfo.InvariantCulture);
|
||||
return (num & this.kubits) == num;
|
||||
}
|
||||
|
||||
// Token: 0x060003FF RID: 1023 RVA: 0x0001A1A0 File Offset: 0x000183A0
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
if (this.keyId != null)
|
||||
{
|
||||
stringBuilder.Append("KeyID=");
|
||||
for (int i = 0; i < this.keyId.Length; i++)
|
||||
{
|
||||
stringBuilder.Append(this.keyId[i].ToString("X2", CultureInfo.InvariantCulture));
|
||||
if (i % 2 == 1)
|
||||
{
|
||||
stringBuilder.Append(" ");
|
||||
}
|
||||
}
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
}
|
||||
if (this.kubits != 0)
|
||||
{
|
||||
stringBuilder.Append("Key Usage=");
|
||||
if (this.Support(KeyUsages.digitalSignature))
|
||||
{
|
||||
stringBuilder.Append("Digital Signature");
|
||||
}
|
||||
if (this.Support(KeyUsages.nonRepudiation))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Non-Repudiation");
|
||||
}
|
||||
if (this.Support(KeyUsages.keyEncipherment))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Key Encipherment");
|
||||
}
|
||||
if (this.Support(KeyUsages.dataEncipherment))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Data Encipherment");
|
||||
}
|
||||
if (this.Support(KeyUsages.keyAgreement))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Key Agreement");
|
||||
}
|
||||
if (this.Support(KeyUsages.keyCertSign))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Certificate Signing");
|
||||
}
|
||||
if (this.Support(KeyUsages.cRLSign))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("CRL Signing");
|
||||
}
|
||||
if (this.Support(KeyUsages.encipherOnly))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Encipher Only ");
|
||||
}
|
||||
if (this.Support(KeyUsages.decipherOnly))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Decipher Only");
|
||||
}
|
||||
stringBuilder.Append("(");
|
||||
stringBuilder.Append(this.kubits.ToString("X2", CultureInfo.InvariantCulture));
|
||||
stringBuilder.Append(")");
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
}
|
||||
if (this.notBefore != DateTime.MinValue)
|
||||
{
|
||||
stringBuilder.Append("Not Before=");
|
||||
stringBuilder.Append(this.notBefore.ToString(CultureInfo.CurrentUICulture));
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
}
|
||||
if (this.notAfter != DateTime.MinValue)
|
||||
{
|
||||
stringBuilder.Append("Not After=");
|
||||
stringBuilder.Append(this.notAfter.ToString(CultureInfo.CurrentUICulture));
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
}
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x040001D4 RID: 468
|
||||
private byte[] keyId;
|
||||
|
||||
// Token: 0x040001D5 RID: 469
|
||||
private int kubits;
|
||||
|
||||
// Token: 0x040001D6 RID: 470
|
||||
private DateTime notBefore;
|
||||
|
||||
// Token: 0x040001D7 RID: 471
|
||||
private DateTime notAfter;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,202 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
|
||||
namespace Mono.Security.X509.Extensions
|
||||
{
|
||||
// Token: 0x0200006E RID: 110
|
||||
public class KeyUsageExtension : X509Extension
|
||||
{
|
||||
// Token: 0x06000400 RID: 1024 RVA: 0x0001A4B0 File Offset: 0x000186B0
|
||||
public KeyUsageExtension(ASN1 asn1)
|
||||
: base(asn1)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000401 RID: 1025 RVA: 0x0001A4BC File Offset: 0x000186BC
|
||||
public KeyUsageExtension(X509Extension extension)
|
||||
: base(extension)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000402 RID: 1026 RVA: 0x0001A4C8 File Offset: 0x000186C8
|
||||
public KeyUsageExtension()
|
||||
{
|
||||
this.extnOid = "2.5.29.15";
|
||||
}
|
||||
|
||||
// Token: 0x06000403 RID: 1027 RVA: 0x0001A4DC File Offset: 0x000186DC
|
||||
protected override void Decode()
|
||||
{
|
||||
ASN1 asn = new ASN1(this.extnValue.Value);
|
||||
if (asn.Tag != 3)
|
||||
{
|
||||
throw new ArgumentException("Invalid KeyUsage extension");
|
||||
}
|
||||
int i = 1;
|
||||
while (i < asn.Value.Length)
|
||||
{
|
||||
this.kubits = (this.kubits << 8) + (int)asn.Value[i++];
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000404 RID: 1028 RVA: 0x0001A544 File Offset: 0x00018744
|
||||
protected override void Encode()
|
||||
{
|
||||
this.extnValue = new ASN1(4);
|
||||
ushort num = (ushort)this.kubits;
|
||||
if (num > 0)
|
||||
{
|
||||
byte b;
|
||||
for (b = 15; b > 0; b -= 1)
|
||||
{
|
||||
if ((num & 32768) == 32768)
|
||||
{
|
||||
break;
|
||||
}
|
||||
num = (ushort)(num << 1);
|
||||
}
|
||||
if (this.kubits > 255)
|
||||
{
|
||||
b -= 8;
|
||||
this.extnValue.Add(new ASN1(3, new byte[]
|
||||
{
|
||||
b,
|
||||
(byte)this.kubits,
|
||||
(byte)(this.kubits >> 8)
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.extnValue.Add(new ASN1(3, new byte[]
|
||||
{
|
||||
b,
|
||||
(byte)this.kubits
|
||||
}));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ASN1 extnValue = this.extnValue;
|
||||
byte b2 = 3;
|
||||
byte[] array = new byte[2];
|
||||
array[0] = 7;
|
||||
extnValue.Add(new ASN1(b2, array));
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000E9 RID: 233
|
||||
// (get) Token: 0x06000405 RID: 1029 RVA: 0x0001A634 File Offset: 0x00018834
|
||||
// (set) Token: 0x06000406 RID: 1030 RVA: 0x0001A63C File Offset: 0x0001883C
|
||||
public KeyUsages KeyUsage
|
||||
{
|
||||
get
|
||||
{
|
||||
return (KeyUsages)this.kubits;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.kubits = Convert.ToInt32(value, CultureInfo.InvariantCulture);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000EA RID: 234
|
||||
// (get) Token: 0x06000407 RID: 1031 RVA: 0x0001A654 File Offset: 0x00018854
|
||||
public override string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Key Usage";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000408 RID: 1032 RVA: 0x0001A65C File Offset: 0x0001885C
|
||||
public bool Support(KeyUsages usage)
|
||||
{
|
||||
int num = Convert.ToInt32(usage, CultureInfo.InvariantCulture);
|
||||
return (num & this.kubits) == num;
|
||||
}
|
||||
|
||||
// Token: 0x06000409 RID: 1033 RVA: 0x0001A688 File Offset: 0x00018888
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
if (this.Support(KeyUsages.digitalSignature))
|
||||
{
|
||||
stringBuilder.Append("Digital Signature");
|
||||
}
|
||||
if (this.Support(KeyUsages.nonRepudiation))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Non-Repudiation");
|
||||
}
|
||||
if (this.Support(KeyUsages.keyEncipherment))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Key Encipherment");
|
||||
}
|
||||
if (this.Support(KeyUsages.dataEncipherment))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Data Encipherment");
|
||||
}
|
||||
if (this.Support(KeyUsages.keyAgreement))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Key Agreement");
|
||||
}
|
||||
if (this.Support(KeyUsages.keyCertSign))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Certificate Signing");
|
||||
}
|
||||
if (this.Support(KeyUsages.cRLSign))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("CRL Signing");
|
||||
}
|
||||
if (this.Support(KeyUsages.encipherOnly))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Encipher Only ");
|
||||
}
|
||||
if (this.Support(KeyUsages.decipherOnly))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Decipher Only");
|
||||
}
|
||||
stringBuilder.Append("(");
|
||||
stringBuilder.Append(this.kubits.ToString("X2", CultureInfo.InvariantCulture));
|
||||
stringBuilder.Append(")");
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x040001E3 RID: 483
|
||||
private int kubits;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
|
||||
namespace Mono.Security.X509.Extensions
|
||||
{
|
||||
// Token: 0x0200006D RID: 109
|
||||
[Flags]
|
||||
public enum KeyUsages
|
||||
{
|
||||
// Token: 0x040001D9 RID: 473
|
||||
digitalSignature = 128,
|
||||
// Token: 0x040001DA RID: 474
|
||||
nonRepudiation = 64,
|
||||
// Token: 0x040001DB RID: 475
|
||||
keyEncipherment = 32,
|
||||
// Token: 0x040001DC RID: 476
|
||||
dataEncipherment = 16,
|
||||
// Token: 0x040001DD RID: 477
|
||||
keyAgreement = 8,
|
||||
// Token: 0x040001DE RID: 478
|
||||
keyCertSign = 4,
|
||||
// Token: 0x040001DF RID: 479
|
||||
cRLSign = 2,
|
||||
// Token: 0x040001E0 RID: 480
|
||||
encipherOnly = 1,
|
||||
// Token: 0x040001E1 RID: 481
|
||||
decipherOnly = 2048,
|
||||
// Token: 0x040001E2 RID: 482
|
||||
none = 0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
|
||||
namespace Mono.Security.X509.Extensions
|
||||
{
|
||||
// Token: 0x0200006F RID: 111
|
||||
public class NetscapeCertTypeExtension : X509Extension
|
||||
{
|
||||
// Token: 0x0600040A RID: 1034 RVA: 0x0001A884 File Offset: 0x00018A84
|
||||
public NetscapeCertTypeExtension()
|
||||
{
|
||||
this.extnOid = "2.16.840.1.113730.1.1";
|
||||
}
|
||||
|
||||
// Token: 0x0600040B RID: 1035 RVA: 0x0001A898 File Offset: 0x00018A98
|
||||
public NetscapeCertTypeExtension(ASN1 asn1)
|
||||
: base(asn1)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600040C RID: 1036 RVA: 0x0001A8A4 File Offset: 0x00018AA4
|
||||
public NetscapeCertTypeExtension(X509Extension extension)
|
||||
: base(extension)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600040D RID: 1037 RVA: 0x0001A8B0 File Offset: 0x00018AB0
|
||||
protected override void Decode()
|
||||
{
|
||||
ASN1 asn = new ASN1(this.extnValue.Value);
|
||||
if (asn.Tag != 3)
|
||||
{
|
||||
throw new ArgumentException("Invalid NetscapeCertType extension");
|
||||
}
|
||||
int i = 1;
|
||||
while (i < asn.Value.Length)
|
||||
{
|
||||
this.ctbits = (this.ctbits << 8) + (int)asn.Value[i++];
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000EB RID: 235
|
||||
// (get) Token: 0x0600040E RID: 1038 RVA: 0x0001A918 File Offset: 0x00018B18
|
||||
public override string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return "NetscapeCertType";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600040F RID: 1039 RVA: 0x0001A920 File Offset: 0x00018B20
|
||||
public bool Support(NetscapeCertTypeExtension.CertTypes usage)
|
||||
{
|
||||
int num = Convert.ToInt32(usage, CultureInfo.InvariantCulture);
|
||||
return (num & this.ctbits) == num;
|
||||
}
|
||||
|
||||
// Token: 0x06000410 RID: 1040 RVA: 0x0001A94C File Offset: 0x00018B4C
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
if (this.Support(NetscapeCertTypeExtension.CertTypes.SslClient))
|
||||
{
|
||||
stringBuilder.Append("SSL Client Authentication");
|
||||
}
|
||||
if (this.Support(NetscapeCertTypeExtension.CertTypes.SslServer))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("SSL Server Authentication");
|
||||
}
|
||||
if (this.Support(NetscapeCertTypeExtension.CertTypes.Smime))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("SMIME");
|
||||
}
|
||||
if (this.Support(NetscapeCertTypeExtension.CertTypes.ObjectSigning))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Object Signing");
|
||||
}
|
||||
if (this.Support(NetscapeCertTypeExtension.CertTypes.SslCA))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("SSL CA");
|
||||
}
|
||||
if (this.Support(NetscapeCertTypeExtension.CertTypes.SmimeCA))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("SMIME CA");
|
||||
}
|
||||
if (this.Support(NetscapeCertTypeExtension.CertTypes.ObjectSigningCA))
|
||||
{
|
||||
if (stringBuilder.Length > 0)
|
||||
{
|
||||
stringBuilder.Append(" , ");
|
||||
}
|
||||
stringBuilder.Append("Object Signing CA");
|
||||
}
|
||||
stringBuilder.Append("(");
|
||||
stringBuilder.Append(this.ctbits.ToString("X2", CultureInfo.InvariantCulture));
|
||||
stringBuilder.Append(")");
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x040001E4 RID: 484
|
||||
private int ctbits;
|
||||
|
||||
// Token: 0x02000070 RID: 112
|
||||
[Flags]
|
||||
public enum CertTypes
|
||||
{
|
||||
// Token: 0x040001E6 RID: 486
|
||||
SslClient = 128,
|
||||
// Token: 0x040001E7 RID: 487
|
||||
SslServer = 64,
|
||||
// Token: 0x040001E8 RID: 488
|
||||
Smime = 32,
|
||||
// Token: 0x040001E9 RID: 489
|
||||
ObjectSigning = 16,
|
||||
// Token: 0x040001EA RID: 490
|
||||
SslCA = 4,
|
||||
// Token: 0x040001EB RID: 491
|
||||
SmimeCA = 2,
|
||||
// Token: 0x040001EC RID: 492
|
||||
ObjectSigningCA = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
|
||||
namespace Mono.Security.X509.Extensions
|
||||
{
|
||||
// Token: 0x02000071 RID: 113
|
||||
public class PrivateKeyUsagePeriodExtension : X509Extension
|
||||
{
|
||||
// Token: 0x06000411 RID: 1041 RVA: 0x0001AAE4 File Offset: 0x00018CE4
|
||||
public PrivateKeyUsagePeriodExtension()
|
||||
{
|
||||
this.extnOid = "2.5.29.16";
|
||||
}
|
||||
|
||||
// Token: 0x06000412 RID: 1042 RVA: 0x0001AAF8 File Offset: 0x00018CF8
|
||||
public PrivateKeyUsagePeriodExtension(ASN1 asn1)
|
||||
: base(asn1)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000413 RID: 1043 RVA: 0x0001AB04 File Offset: 0x00018D04
|
||||
public PrivateKeyUsagePeriodExtension(X509Extension extension)
|
||||
: base(extension)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000414 RID: 1044 RVA: 0x0001AB10 File Offset: 0x00018D10
|
||||
protected override void Decode()
|
||||
{
|
||||
ASN1 asn = new ASN1(this.extnValue.Value);
|
||||
if (asn.Tag != 48)
|
||||
{
|
||||
throw new ArgumentException("Invalid PrivateKeyUsagePeriod extension");
|
||||
}
|
||||
for (int i = 0; i < asn.Count; i++)
|
||||
{
|
||||
byte tag = asn[i].Tag;
|
||||
if (tag != 128)
|
||||
{
|
||||
if (tag != 129)
|
||||
{
|
||||
throw new ArgumentException("Invalid PrivateKeyUsagePeriod extension");
|
||||
}
|
||||
this.notAfter = ASN1Convert.ToDateTime(asn[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.notBefore = ASN1Convert.ToDateTime(asn[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000EC RID: 236
|
||||
// (get) Token: 0x06000415 RID: 1045 RVA: 0x0001ABC0 File Offset: 0x00018DC0
|
||||
public override string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Private Key Usage Period";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000416 RID: 1046 RVA: 0x0001ABC8 File Offset: 0x00018DC8
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
if (this.notBefore != DateTime.MinValue)
|
||||
{
|
||||
stringBuilder.Append("Not Before: ");
|
||||
stringBuilder.Append(this.notBefore.ToString(CultureInfo.CurrentUICulture));
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
}
|
||||
if (this.notAfter != DateTime.MinValue)
|
||||
{
|
||||
stringBuilder.Append("Not After: ");
|
||||
stringBuilder.Append(this.notAfter.ToString(CultureInfo.CurrentUICulture));
|
||||
stringBuilder.Append(Environment.NewLine);
|
||||
}
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x040001ED RID: 493
|
||||
private DateTime notBefore;
|
||||
|
||||
// Token: 0x040001EE RID: 494
|
||||
private DateTime notAfter;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
using System;
|
||||
|
||||
namespace Mono.Security.X509.Extensions
|
||||
{
|
||||
// Token: 0x02000072 RID: 114
|
||||
public class SubjectAltNameExtension : X509Extension
|
||||
{
|
||||
// Token: 0x06000417 RID: 1047 RVA: 0x0001AC6C File Offset: 0x00018E6C
|
||||
public SubjectAltNameExtension()
|
||||
{
|
||||
this.extnOid = "2.5.29.17";
|
||||
this._names = new GeneralNames();
|
||||
}
|
||||
|
||||
// Token: 0x06000418 RID: 1048 RVA: 0x0001AC8C File Offset: 0x00018E8C
|
||||
public SubjectAltNameExtension(ASN1 asn1)
|
||||
: base(asn1)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000419 RID: 1049 RVA: 0x0001AC98 File Offset: 0x00018E98
|
||||
public SubjectAltNameExtension(X509Extension extension)
|
||||
: base(extension)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600041A RID: 1050 RVA: 0x0001ACA4 File Offset: 0x00018EA4
|
||||
public SubjectAltNameExtension(string[] rfc822, string[] dnsNames, string[] ipAddresses, string[] uris)
|
||||
{
|
||||
this._names = new GeneralNames(rfc822, dnsNames, ipAddresses, uris);
|
||||
this.extnValue = new ASN1(4, this._names.GetBytes());
|
||||
this.extnOid = "2.5.29.17";
|
||||
}
|
||||
|
||||
// Token: 0x0600041B RID: 1051 RVA: 0x0001ACEC File Offset: 0x00018EEC
|
||||
protected override void Decode()
|
||||
{
|
||||
ASN1 asn = new ASN1(this.extnValue.Value);
|
||||
if (asn.Tag != 48)
|
||||
{
|
||||
throw new ArgumentException("Invalid SubjectAltName extension");
|
||||
}
|
||||
this._names = new GeneralNames(asn);
|
||||
}
|
||||
|
||||
// Token: 0x170000ED RID: 237
|
||||
// (get) Token: 0x0600041C RID: 1052 RVA: 0x0001AD30 File Offset: 0x00018F30
|
||||
public override string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Subject Alternative Name";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000EE RID: 238
|
||||
// (get) Token: 0x0600041D RID: 1053 RVA: 0x0001AD38 File Offset: 0x00018F38
|
||||
public string[] RFC822
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._names.RFC822;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000EF RID: 239
|
||||
// (get) Token: 0x0600041E RID: 1054 RVA: 0x0001AD48 File Offset: 0x00018F48
|
||||
public string[] DNSNames
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._names.DNSNames;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000F0 RID: 240
|
||||
// (get) Token: 0x0600041F RID: 1055 RVA: 0x0001AD58 File Offset: 0x00018F58
|
||||
public string[] IPAddresses
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._names.IPAddresses;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000F1 RID: 241
|
||||
// (get) Token: 0x06000420 RID: 1056 RVA: 0x0001AD68 File Offset: 0x00018F68
|
||||
public string[] UniformResourceIdentifiers
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._names.UniformResourceIdentifiers;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000421 RID: 1057 RVA: 0x0001AD78 File Offset: 0x00018F78
|
||||
public override string ToString()
|
||||
{
|
||||
return this._names.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x040001EF RID: 495
|
||||
private GeneralNames _names;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
|
||||
namespace Mono.Security.X509.Extensions
|
||||
{
|
||||
// Token: 0x02000073 RID: 115
|
||||
public class SubjectKeyIdentifierExtension : X509Extension
|
||||
{
|
||||
// Token: 0x06000422 RID: 1058 RVA: 0x0001AD88 File Offset: 0x00018F88
|
||||
public SubjectKeyIdentifierExtension()
|
||||
{
|
||||
this.extnOid = "2.5.29.14";
|
||||
}
|
||||
|
||||
// Token: 0x06000423 RID: 1059 RVA: 0x0001AD9C File Offset: 0x00018F9C
|
||||
public SubjectKeyIdentifierExtension(ASN1 asn1)
|
||||
: base(asn1)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000424 RID: 1060 RVA: 0x0001ADA8 File Offset: 0x00018FA8
|
||||
public SubjectKeyIdentifierExtension(X509Extension extension)
|
||||
: base(extension)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06000425 RID: 1061 RVA: 0x0001ADB4 File Offset: 0x00018FB4
|
||||
protected override void Decode()
|
||||
{
|
||||
ASN1 asn = new ASN1(this.extnValue.Value);
|
||||
if (asn.Tag != 4)
|
||||
{
|
||||
throw new ArgumentException("Invalid SubjectKeyIdentifier extension");
|
||||
}
|
||||
this.ski = asn.Value;
|
||||
}
|
||||
|
||||
// Token: 0x170000F2 RID: 242
|
||||
// (get) Token: 0x06000426 RID: 1062 RVA: 0x0001ADF8 File Offset: 0x00018FF8
|
||||
public override string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Subject Key Identifier";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x170000F3 RID: 243
|
||||
// (get) Token: 0x06000427 RID: 1063 RVA: 0x0001AE00 File Offset: 0x00019000
|
||||
public byte[] Identifier
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.ski == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return (byte[])this.ski.Clone();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x06000428 RID: 1064 RVA: 0x0001AE20 File Offset: 0x00019020
|
||||
public override string ToString()
|
||||
{
|
||||
if (this.ski == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
for (int i = 0; i < this.ski.Length; i++)
|
||||
{
|
||||
stringBuilder.Append(this.ski[i].ToString("X2", CultureInfo.InvariantCulture));
|
||||
if (i % 2 == 1)
|
||||
{
|
||||
stringBuilder.Append(" ");
|
||||
}
|
||||
}
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x040001F0 RID: 496
|
||||
private byte[] ski;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user