149 lines
3.7 KiB
C#
149 lines
3.7 KiB
C#
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
|
|
}
|
|
}
|
|
}
|