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 1660 */; } } // 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 1660 */; } // 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; } }