Files
2026-04-10 22:50:51 +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: 0x0200190D RID: 6413
[Token(Token = "0x200190D")]
public class X509V2AttributeCertificate : X509ExtensionBase, IX509AttributeCertificate, IX509Extension
{
// Token: 0x06009730 RID: 38704 RVA: 0x001F281C File Offset: 0x001F0A1C
[Token(Token = "0x6009730")]
[Address(RVA = "0x1636450", Offset = "0x1635250", VA = "0x181636450")]
private static AttributeCertificate GetObject(Stream input)
{
return AttributeCertificate.GetInstance(Asn1Object.FromStream(input));
}
// Token: 0x06009731 RID: 38705 RVA: 0x001F2834 File Offset: 0x001F0A34
[Token(Token = "0x6009731")]
[Address(RVA = "0x1636740", Offset = "0x1635540", VA = "0x181636740")]
public X509V2AttributeCertificate(Stream encIn)
{
AttributeCertificate @object = X509V2AttributeCertificate.GetObject(encIn);
}
// Token: 0x06009732 RID: 38706 RVA: 0x001F2848 File Offset: 0x001F0A48
[Token(Token = "0x6009732")]
[Address(RVA = "0x16366C0", Offset = "0x16354C0", VA = "0x1816366C0")]
public X509V2AttributeCertificate(byte[] encoded)
{
int num;
MemoryStream memoryStream = new MemoryStream(encoded, num != 0);
num = 0;
AttributeCertificate @object = X509V2AttributeCertificate.GetObject(memoryStream);
}
// Token: 0x06009733 RID: 38707 RVA: 0x001F2868 File Offset: 0x001F0A68
[Token(Token = "0x6009733")]
[Address(RVA = "0x1636770", Offset = "0x1635570", VA = "0x181636770")]
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: 0x1700181A RID: 6170
// (get) Token: 0x06009734 RID: 38708 RVA: 0x001F28E8 File Offset: 0x001F0AE8
[Token(Token = "0x1700181A")]
public virtual int Version
{
[Token(Token = "0x6009734")]
[Address(RVA = "0x1636AA0", Offset = "0x16358A0", VA = "0x181636AA0", Slot = "29")]
get
{
int intValue = this.cert.acinfo.version.Value.IntValue;
return intValue + 1;
}
}
// Token: 0x1700181B RID: 6171
// (get) Token: 0x06009735 RID: 38709 RVA: 0x001F291C File Offset: 0x001F0B1C
[Token(Token = "0x1700181B")]
public virtual BigInteger SerialNumber
{
[Token(Token = "0x6009735")]
[Address(RVA = "0x1636A70", Offset = "0x1635870", VA = "0x181636A70", Slot = "30")]
get
{
return this.cert.acinfo.serialNumber.Value;
}
}
// Token: 0x1700181C RID: 6172
// (get) Token: 0x06009736 RID: 38710 RVA: 0x001F2944 File Offset: 0x001F0B44
[Token(Token = "0x1700181C")]
public virtual AttributeCertificateHolder Holder
{
[Token(Token = "0x6009736")]
[Address(RVA = "0x1636880", Offset = "0x1635680", VA = "0x181636880", 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: 0x1700181D RID: 6173
// (get) Token: 0x06009737 RID: 38711 RVA: 0x001F2988 File Offset: 0x001F0B88
[Token(Token = "0x1700181D")]
public virtual AttributeCertificateIssuer Issuer
{
[Token(Token = "0x6009737")]
[Address(RVA = "0x16369F0", Offset = "0x16357F0", VA = "0x1816369F0", Slot = "32")]
get
{
Asn1Encodable obj = this.cert.acinfo.issuer.obj;
AttributeCertificateIssuer attributeCertificateIssuer;
attributeCertificateIssuer.form = obj;
return attributeCertificateIssuer;
}
}
// Token: 0x1700181E RID: 6174
// (get) Token: 0x06009738 RID: 38712 RVA: 0x001F29BC File Offset: 0x001F0BBC
[Token(Token = "0x1700181E")]
public virtual DateTime NotBefore
{
[Token(Token = "0x6009738")]
[Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40", Slot = "33")]
get
{
return this.notBefore;
}
}
// Token: 0x1700181F RID: 6175
// (get) Token: 0x06009739 RID: 38713 RVA: 0x001F29D0 File Offset: 0x001F0BD0
[Token(Token = "0x1700181F")]
public virtual DateTime NotAfter
{
[Token(Token = "0x6009739")]
[Address(RVA = "0x3F6400", Offset = "0x3F5200", VA = "0x1803F6400", Slot = "34")]
get
{
return this.notAfter;
}
}
// Token: 0x0600973A RID: 38714 RVA: 0x001F29E4 File Offset: 0x001F0BE4
[Token(Token = "0x600973A")]
[Address(RVA = "0x1636310", Offset = "0x1635110", VA = "0x181636310", 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: 0x17001820 RID: 6176
// (get) Token: 0x0600973B RID: 38715 RVA: 0x001F2A5C File Offset: 0x001F0C5C
[Token(Token = "0x17001820")]
public virtual bool IsValidNow
{
[Token(Token = "0x600973B")]
[Address(RVA = "0x1636980", Offset = "0x1635780", VA = "0x181636980", Slot = "36")]
get
{
/*
An exception occurred when decompiling this method (0600973B)
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: 0x0600973C RID: 38716 RVA: 0x001F2A78 File Offset: 0x001F0C78
[Token(Token = "0x600973C")]
[Address(RVA = "0x1636530", Offset = "0x1635330", VA = "0x181636530", Slot = "37")]
public virtual bool IsValid(DateTime date)
{
AttributeCertificateIssuer issuer = this.Issuer;
DateTime dateTime = this.NotBefore;
int num;
return num <= 0;
}
// Token: 0x0600973D RID: 38717 RVA: 0x001F2AA0 File Offset: 0x001F0CA0
[Token(Token = "0x600973D")]
[Address(RVA = "0x1635B30", Offset = "0x1634930", VA = "0x181635B30", Slot = "38")]
public virtual void CheckValidity()
{
DateTime utcNow = DateTime.UtcNow;
int version = ((IX509AttributeCertificate)this).Version;
}
// Token: 0x0600973E RID: 38718 RVA: 0x001F2ABC File Offset: 0x001F0CBC
[Token(Token = "0x600973E")]
[Address(RVA = "0x1635BA0", Offset = "0x16349A0", VA = "0x181635BA0", Slot = "39")]
public virtual void CheckValidity(DateTime date)
{
DateTime dateTime = this.NotBefore;
AttributeCertificateIssuer issuer = this.Issuer;
}
// Token: 0x17001821 RID: 6177
// (get) Token: 0x0600973F RID: 38719 RVA: 0x001F2AEC File Offset: 0x001F0CEC
[Token(Token = "0x17001821")]
public virtual AlgorithmIdentifier SignatureAlgorithm
{
[Token(Token = "0x600973F")]
[Address(RVA = "0x434BE0", Offset = "0x4339E0", VA = "0x180434BE0", Slot = "40")]
get
{
return this.cert.signatureAlgorithm;
}
}
// Token: 0x06009740 RID: 38720 RVA: 0x001F2B0C File Offset: 0x001F0D0C
[Token(Token = "0x6009740")]
[Address(RVA = "0x162C470", Offset = "0x162B270", VA = "0x18162C470", Slot = "41")]
public virtual byte[] GetSignature()
{
return this.cert.GetSignatureOctets();
}
// Token: 0x06009741 RID: 38721 RVA: 0x001F2B2C File Offset: 0x001F0D2C
[Token(Token = "0x6009741")]
[Address(RVA = "0x1636620", Offset = "0x1635420", VA = "0x181636620", Slot = "42")]
public virtual void Verify(AsymmetricKeyParameter key)
{
Asn1VerifierFactory asn1VerifierFactory = new Asn1VerifierFactory(this.cert.signatureAlgorithm, key);
int version = ((IX509AttributeCertificate)this).Version;
}
// Token: 0x06009742 RID: 38722 RVA: 0x001F2B58 File Offset: 0x001F0D58
[Token(Token = "0x6009742")]
[Address(RVA = "0x16365A0", Offset = "0x16353A0", VA = "0x1816365A0", Slot = "43")]
public virtual void Verify(IVerifierFactoryProvider verifierProvider)
{
AttributeCertificate attributeCertificate = this.cert;
int version = ((IX509AttributeCertificate)this).Version;
}
// Token: 0x06009743 RID: 38723 RVA: 0x001F2B7C File Offset: 0x001F0D7C
[Token(Token = "0x6009743")]
[Address(RVA = "0x1635850", Offset = "0x1634650", VA = "0x181635850", Slot = "44")]
protected virtual void CheckSignature(IVerifierFactory verifier)
{
/*
An exception occurred when decompiling this method (06009743)
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: 0x06009744 RID: 38724 RVA: 0x001F2BD4 File Offset: 0x001F0DD4
[Token(Token = "0x6009744")]
[Address(RVA = "0x16362F0", Offset = "0x16350F0", VA = "0x1816362F0", Slot = "45")]
public virtual byte[] GetEncoded()
{
return this.cert.GetEncoded();
}
// Token: 0x06009745 RID: 38725 RVA: 0x001F2BF4 File Offset: 0x001F0DF4
[Token(Token = "0x6009745")]
[Address(RVA = "0x1636500", Offset = "0x1635300", VA = "0x181636500", Slot = "8")]
protected override X509Extensions GetX509Extensions()
{
return this.cert.acinfo.extensions;
}
// Token: 0x06009746 RID: 38726 RVA: 0x001F2C18 File Offset: 0x001F0E18
[Token(Token = "0x6009746")]
[Address(RVA = "0x1635DC0", Offset = "0x1634BC0", VA = "0x181635DC0", 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: 0x06009747 RID: 38727 RVA: 0x001F2C6C File Offset: 0x001F0E6C
[Token(Token = "0x6009747")]
[Address(RVA = "0x1635F20", Offset = "0x1634D20", VA = "0x181635F20", 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: 0x06009748 RID: 38728 RVA: 0x001F2D24 File Offset: 0x001F0F24
[Token(Token = "0x6009748")]
[Address(RVA = "0x1635D00", Offset = "0x1634B00", VA = "0x181635D00", Slot = "0")]
public override bool Equals(object obj)
{
if (obj != this)
{
if (obj != 0 && obj != 0)
{
Asn1Object asn1Object = this.cert.ToAsn1Object();
}
}
return true;
}
// Token: 0x06009749 RID: 38729 RVA: 0x001F2D54 File Offset: 0x001F0F54
[Token(Token = "0x6009749")]
[Address(RVA = "0x4DA700", Offset = "0x4D9500", VA = "0x1804DA700", Slot = "2")]
public override int GetHashCode()
{
Asn1Object asn1Object = this.cert.ToAsn1Object();
throw new NullReferenceException();
}
// Token: 0x040066AC RID: 26284
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40066AC")]
private readonly AttributeCertificate cert;
// Token: 0x040066AD RID: 26285
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40066AD")]
private readonly DateTime notBefore;
// Token: 0x040066AE RID: 26286
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40066AE")]
private readonly DateTime notAfter;
}
}