Files
Dec2017-Script-Dump/Mono.Security/Security/X509/Extensions/CRLDistributionPointsExtension.cs
T
2026-06-04 11:42:34 +02:00

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
}
}
}