scripts
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user