Files
27Aug2021-Cpp2IL-Dump/Assembly-CSharp/BestHTTP/SecureProtocol/Org/BouncyCastle/X509/X509V2AttributeCertificate.cs
T
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

437 lines
18 KiB
C#

using System;
using System.Collections;
using System.IO;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Operators;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.X509
{
// Token: 0x020019ED RID: 6637
[Token(Token = "0x20019ED")]
public class X509V2AttributeCertificate : X509ExtensionBase, IX509AttributeCertificate, IX509Extension
{
// Token: 0x06009AFE RID: 39678 RVA: 0x001FB8B4 File Offset: 0x001F9AB4
[Token(Token = "0x6009AFE")]
[Address(RVA = "0x423880", Offset = "0x422880", VA = "0x180423880")]
private static AttributeCertificate GetObject(Stream input)
{
return AttributeCertificate.GetInstance(Asn1Object.FromStream(input));
}
// Token: 0x06009AFF RID: 39679 RVA: 0x001FB8CC File Offset: 0x001F9ACC
[Token(Token = "0x6009AFF")]
[Address(RVA = "0x423B70", Offset = "0x422B70", VA = "0x180423B70")]
public X509V2AttributeCertificate(Stream encIn)
{
AttributeCertificate @object = X509V2AttributeCertificate.GetObject(encIn);
}
// Token: 0x06009B00 RID: 39680 RVA: 0x001FB8E0 File Offset: 0x001F9AE0
[Token(Token = "0x6009B00")]
[Address(RVA = "0x423AF0", Offset = "0x422AF0", VA = "0x180423AF0")]
public X509V2AttributeCertificate(byte[] encoded)
{
int num;
MemoryStream memoryStream = new MemoryStream(encoded, num != 0);
num = 0;
AttributeCertificate @object = X509V2AttributeCertificate.GetObject(memoryStream);
}
// Token: 0x06009B01 RID: 39681 RVA: 0x001FB900 File Offset: 0x001F9B00
[Token(Token = "0x6009B01")]
[Address(RVA = "0x423BA0", Offset = "0x422BA0", VA = "0x180423BA0")]
internal X509V2AttributeCertificate(AttributeCertificate cert)
{
this.cert = cert;
DateTime dateTime = cert.acinfo.attrCertValidityPeriod.notAfterTime.ToDateTime();
this.notAfter = dateTime;
DateTime dateTime2 = cert.acinfo.attrCertValidityPeriod.notBeforeTime.ToDateTime();
this.notBefore = dateTime2;
}
// Token: 0x170018B7 RID: 6327
// (get) Token: 0x06009B02 RID: 39682 RVA: 0x001FB980 File Offset: 0x001F9B80
[Token(Token = "0x170018B7")]
public virtual int Version
{
[Token(Token = "0x6009B02")]
[Address(RVA = "0x423EF0", Offset = "0x422EF0", VA = "0x180423EF0", Slot = "29")]
get
{
int intValue = this.cert.acinfo.version.Value.IntValue;
return intValue + 1;
}
}
// Token: 0x170018B8 RID: 6328
// (get) Token: 0x06009B03 RID: 39683 RVA: 0x001FB9B4 File Offset: 0x001F9BB4
[Token(Token = "0x170018B8")]
public virtual BigInteger SerialNumber
{
[Token(Token = "0x6009B03")]
[Address(RVA = "0x423EA0", Offset = "0x422EA0", VA = "0x180423EA0", Slot = "30")]
get
{
return this.cert.acinfo.serialNumber.Value;
}
}
// Token: 0x170018B9 RID: 6329
// (get) Token: 0x06009B04 RID: 39684 RVA: 0x001FB9DC File Offset: 0x001F9BDC
[Token(Token = "0x170018B9")]
public virtual AttributeCertificateHolder Holder
{
[Token(Token = "0x6009B04")]
[Address(RVA = "0x423CB0", Offset = "0x422CB0", VA = "0x180423CB0", Slot = "31")]
get
{
Asn1Object asn1Object;
do
{
asn1Object = this.cert.acinfo.holder.ToAsn1Object();
if (asn1Object == 0)
{
}
}
while (asn1Object == 0);
Holder instance = BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509.Holder.GetInstance(asn1Object);
AttributeCertificateHolder attributeCertificateHolder;
attributeCertificateHolder.holder = instance;
return attributeCertificateHolder;
}
}
// Token: 0x170018BA RID: 6330
// (get) Token: 0x06009B05 RID: 39685 RVA: 0x001FBA20 File Offset: 0x001F9C20
[Token(Token = "0x170018BA")]
public virtual AttributeCertificateIssuer Issuer
{
[Token(Token = "0x6009B05")]
[Address(RVA = "0x423E20", Offset = "0x422E20", VA = "0x180423E20", Slot = "32")]
get
{
Asn1Encodable obj = this.cert.acinfo.issuer.obj;
AttributeCertificateIssuer attributeCertificateIssuer;
attributeCertificateIssuer.form = obj;
return attributeCertificateIssuer;
}
}
// Token: 0x170018BB RID: 6331
// (get) Token: 0x06009B06 RID: 39686 RVA: 0x001FBA54 File Offset: 0x001F9C54
[Token(Token = "0x170018BB")]
public virtual DateTime NotBefore
{
[Token(Token = "0x6009B06")]
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0", Slot = "33")]
get
{
return this.notBefore;
}
}
// Token: 0x170018BC RID: 6332
// (get) Token: 0x06009B07 RID: 39687 RVA: 0x001FBA68 File Offset: 0x001F9C68
[Token(Token = "0x170018BC")]
public virtual DateTime NotAfter
{
[Token(Token = "0x6009B07")]
[Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0", Slot = "34")]
get
{
return this.notAfter;
}
}
// Token: 0x06009B08 RID: 39688 RVA: 0x001FBA7C File Offset: 0x001F9C7C
[Token(Token = "0x6009B08")]
[Address(RVA = "0x423740", Offset = "0x422740", VA = "0x180423740", Slot = "35")]
public virtual bool[] GetIssuerUniqueID()
{
DerBitString issuerUniqueID = this.cert.acinfo.issuerUniqueID;
if (issuerUniqueID == 0)
{
}
byte[] octets = issuerUniqueID.GetOctets();
byte[] bytes = issuerUniqueID.GetBytes();
int num = octets.Length;
num -= bytes;
bool[] array = new bool[num];
int num2 = 0;
int length = array.Length;
if (num2 != length)
{
num2 += num;
num2 -= num;
num2++;
}
return array;
}
// Token: 0x170018BD RID: 6333
// (get) Token: 0x06009B09 RID: 39689 RVA: 0x001FBAF4 File Offset: 0x001F9CF4
[Token(Token = "0x170018BD")]
public virtual bool IsValidNow
{
[Token(Token = "0x6009B09")]
[Address(RVA = "0x423DB0", Offset = "0x422DB0", VA = "0x180423DB0", Slot = "36")]
get
{
/*
An exception occurred when decompiling this method (06009B09)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.X509.X509V2AttributeCertificate::get_IsValidNow()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:DateTime(var_1_07, callgetter:DateTime(DateTime::get_UtcNow))
stloc:int32(var_2_0E, callgetter:int32(IX509AttributeCertificate::get_Version, ldloc:X509V2AttributeCertificate[exp:IX509AttributeCertificate](this)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
}
// Token: 0x06009B0A RID: 39690 RVA: 0x001FBB10 File Offset: 0x001F9D10
[Token(Token = "0x6009B0A")]
[Address(RVA = "0x423960", Offset = "0x422960", VA = "0x180423960", Slot = "37")]
public virtual bool IsValid(DateTime date)
{
AttributeCertificateIssuer issuer = this.Issuer;
DateTime dateTime = this.NotBefore;
int num;
return num <= 0;
}
// Token: 0x06009B0B RID: 39691 RVA: 0x001FBB38 File Offset: 0x001F9D38
[Token(Token = "0x6009B0B")]
[Address(RVA = "0x422F60", Offset = "0x421F60", VA = "0x180422F60", Slot = "38")]
public virtual void CheckValidity()
{
DateTime utcNow = DateTime.UtcNow;
int version = ((IX509AttributeCertificate)this).Version;
}
// Token: 0x06009B0C RID: 39692 RVA: 0x001FBB54 File Offset: 0x001F9D54
[Token(Token = "0x6009B0C")]
[Address(RVA = "0x422FD0", Offset = "0x421FD0", VA = "0x180422FD0", Slot = "39")]
public virtual void CheckValidity(DateTime date)
{
DateTime dateTime = this.NotBefore;
AttributeCertificateIssuer issuer = this.Issuer;
}
// Token: 0x170018BE RID: 6334
// (get) Token: 0x06009B0D RID: 39693 RVA: 0x001FBB84 File Offset: 0x001F9D84
[Token(Token = "0x170018BE")]
public virtual AlgorithmIdentifier SignatureAlgorithm
{
[Token(Token = "0x6009B0D")]
[Address(RVA = "0x423ED0", Offset = "0x422ED0", VA = "0x180423ED0", Slot = "40")]
get
{
return this.cert.signatureAlgorithm;
}
}
// Token: 0x06009B0E RID: 39694 RVA: 0x001FBBA4 File Offset: 0x001F9DA4
[Token(Token = "0x6009B0E")]
[Address(RVA = "0x419790", Offset = "0x418790", VA = "0x180419790", Slot = "41")]
public virtual byte[] GetSignature()
{
return this.cert.GetSignatureOctets();
}
// Token: 0x06009B0F RID: 39695 RVA: 0x001FBBC4 File Offset: 0x001F9DC4
[Token(Token = "0x6009B0F")]
[Address(RVA = "0x423A50", Offset = "0x422A50", VA = "0x180423A50", Slot = "42")]
public virtual void Verify(AsymmetricKeyParameter key)
{
Asn1VerifierFactory asn1VerifierFactory = new Asn1VerifierFactory(this.cert.signatureAlgorithm, key);
int version = ((IX509AttributeCertificate)this).Version;
}
// Token: 0x06009B10 RID: 39696 RVA: 0x001FBBF0 File Offset: 0x001F9DF0
[Token(Token = "0x6009B10")]
[Address(RVA = "0x4239D0", Offset = "0x4229D0", VA = "0x1804239D0", Slot = "43")]
public virtual void Verify(IVerifierFactoryProvider verifierProvider)
{
AttributeCertificate attributeCertificate = this.cert;
int version = ((IX509AttributeCertificate)this).Version;
}
// Token: 0x06009B11 RID: 39697 RVA: 0x001FBC14 File Offset: 0x001F9E14
[Token(Token = "0x6009B11")]
[Address(RVA = "0x422C80", Offset = "0x421C80", VA = "0x180422C80", Slot = "44")]
protected virtual void CheckSignature(IVerifierFactory verifier)
{
/*
An exception occurred when decompiling this method (06009B11)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.X509.X509V2AttributeCertificate::CheckSignature(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IVerifierFactory)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_3E:
stloc:InvalidKeyException(var_5_48, newobj:InvalidKeyException(InvalidKeyException::.ctor, ldstr:string("Public key presented not for certificate signature")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x06009B12 RID: 39698 RVA: 0x001FBC6C File Offset: 0x001F9E6C
[Token(Token = "0x6009B12")]
[Address(RVA = "0x423720", Offset = "0x422720", VA = "0x180423720", Slot = "45")]
public virtual byte[] GetEncoded()
{
return this.cert.GetEncoded();
}
// Token: 0x06009B13 RID: 39699 RVA: 0x001FBC8C File Offset: 0x001F9E8C
[Token(Token = "0x6009B13")]
[Address(RVA = "0x423930", Offset = "0x422930", VA = "0x180423930", Slot = "8")]
protected override X509Extensions GetX509Extensions()
{
return this.cert.acinfo.extensions;
}
// Token: 0x06009B14 RID: 39700 RVA: 0x001FBCB0 File Offset: 0x001F9EB0
[Token(Token = "0x6009B14")]
[Address(RVA = "0x4231F0", Offset = "0x4221F0", VA = "0x1804231F0", Slot = "46")]
public virtual X509Attribute[] GetAttributes()
{
Asn1Sequence attributes = this.cert.acinfo.attributes;
Asn1Encodable asn1Encodable;
X509Attribute[] array = new X509Attribute[asn1Encodable];
int num = 0;
Asn1Encodable asn1Encodable2;
if (num != asn1Encodable2)
{
Asn1SequenceParser parser = attributes.Parser;
X509Attribute x509Attribute;
AttributeX509 attributeX;
x509Attribute.attr = attributeX;
num++;
array[0] = x509Attribute;
}
return array;
}
// Token: 0x06009B15 RID: 39701 RVA: 0x001FBD04 File Offset: 0x001F9F04
[Token(Token = "0x6009B15")]
[Address(RVA = "0x423350", Offset = "0x422350", VA = "0x180423350", Slot = "47")]
public virtual X509Attribute[] GetAttributes(string oid)
{
int num;
X509Attribute[] array;
do
{
Asn1Sequence attributes = this.cert.acinfo.attributes;
IList list = Platform.CreateArrayList();
num = 0;
Asn1Encodable asn1Encodable;
if (num != asn1Encodable)
{
Asn1SequenceParser parser = attributes.Parser;
X509Attribute x509Attribute;
AttributeX509 attributeX;
x509Attribute.attr = attributeX;
if (attributeX.attrType.identifier.Equals(oid))
{
}
num++;
}
array = new X509Attribute[asn1Encodable];
if (num < list)
{
num += num;
num++;
}
if (num >= num)
{
return array;
}
uint num2;
if (num < (int)num2)
{
num += num;
num++;
}
if (num == 0)
{
break;
}
ulong num3;
num3 += num3;
num3 += num3;
}
while (num == 0 || num == 0);
num++;
array[0] = num;
return array;
}
// Token: 0x06009B16 RID: 39702 RVA: 0x001FBDBC File Offset: 0x001F9FBC
[Token(Token = "0x6009B16")]
[Address(RVA = "0x423130", Offset = "0x422130", VA = "0x180423130", Slot = "0")]
public override bool Equals(object obj)
{
if (obj != this)
{
if (obj != 0 && obj != 0)
{
Asn1Object asn1Object = this.cert.ToAsn1Object();
}
}
return true;
}
// Token: 0x06009B17 RID: 39703 RVA: 0x001FBDEC File Offset: 0x001F9FEC
[Token(Token = "0x6009B17")]
[Address(RVA = "0x40F2B0", Offset = "0x40E2B0", VA = "0x18040F2B0", Slot = "2")]
public override int GetHashCode()
{
Asn1Object asn1Object = this.cert.ToAsn1Object();
throw new NullReferenceException();
}
// Token: 0x04006865 RID: 26725
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006865")]
private readonly AttributeCertificate cert;
// Token: 0x04006866 RID: 26726
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006866")]
private readonly DateTime notBefore;
// Token: 0x04006867 RID: 26727
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006867")]
private readonly DateTime notAfter;
}
}