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