using System; using System.Collections; using System.IO; using System.Runtime.InteropServices; 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: 0x02001330 RID: 4912 [Token(Token = "0x2001330")] [StructLayout(3)] public class X509V2AttributeCertificate : X509ExtensionBase, IX509AttributeCertificate, IX509Extension { // Token: 0x06007B56 RID: 31574 RVA: 0x0019AE4C File Offset: 0x0019904C [Token(Token = "0x6007B56")] [Address(RVA = "0x53C000", Offset = "0x53AA00", VA = "0x18053C000")] private static AttributeCertificate GetObject(Stream input) { return AttributeCertificate.GetInstance(Asn1Object.FromStream(input)); } // Token: 0x06007B57 RID: 31575 RVA: 0x0019AE64 File Offset: 0x00199064 [Token(Token = "0x6007B57")] [Address(RVA = "0x53C2F0", Offset = "0x53ACF0", VA = "0x18053C2F0")] public X509V2AttributeCertificate(Stream encIn) { AttributeCertificate @object = X509V2AttributeCertificate.GetObject(encIn); } // Token: 0x06007B58 RID: 31576 RVA: 0x0019AE78 File Offset: 0x00199078 [Token(Token = "0x6007B58")] [Address(RVA = "0x53C270", Offset = "0x53AC70", VA = "0x18053C270")] public X509V2AttributeCertificate(byte[] encoded) { int num; MemoryStream memoryStream = new MemoryStream(encoded, num != 0); num = 0; AttributeCertificate @object = X509V2AttributeCertificate.GetObject(memoryStream); } // Token: 0x06007B59 RID: 31577 RVA: 0x0019AE98 File Offset: 0x00199098 [Token(Token = "0x6007B59")] [Address(RVA = "0x53C320", Offset = "0x53AD20", VA = "0x18053C320")] 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: 0x17001419 RID: 5145 // (get) Token: 0x06007B5A RID: 31578 RVA: 0x0019AF18 File Offset: 0x00199118 [Token(Token = "0x17001419")] public virtual int Version { [Token(Token = "0x6007B5A")] [Address(RVA = "0x53C660", Offset = "0x53B060", VA = "0x18053C660", Slot = "29")] get { int intValue = this.cert.acinfo.version.Value.IntValue; return intValue + 1; } } // Token: 0x1700141A RID: 5146 // (get) Token: 0x06007B5B RID: 31579 RVA: 0x0019AF4C File Offset: 0x0019914C [Token(Token = "0x1700141A")] public virtual BigInteger SerialNumber { [Token(Token = "0x6007B5B")] [Address(RVA = "0x53C610", Offset = "0x53B010", VA = "0x18053C610", Slot = "30")] get { return this.cert.acinfo.serialNumber.Value; } } // Token: 0x1700141B RID: 5147 // (get) Token: 0x06007B5C RID: 31580 RVA: 0x0019AF74 File Offset: 0x00199174 [Token(Token = "0x1700141B")] public virtual AttributeCertificateHolder Holder { [Token(Token = "0x6007B5C")] [Address(RVA = "0x53C430", Offset = "0x53AE30", VA = "0x18053C430", Slot = "31")] get { Asn1Object asn1Object; do { asn1Object = this.cert.acinfo.holder.ToAsn1Object(); if (asn1Object == 0) { } } while (asn1Object == 0); AttributeCertificateHolder attributeCertificateHolder; return attributeCertificateHolder; } } // Token: 0x1700141C RID: 5148 // (get) Token: 0x06007B5D RID: 31581 RVA: 0x0019AFA8 File Offset: 0x001991A8 [Token(Token = "0x1700141C")] public virtual AttributeCertificateIssuer Issuer { [Token(Token = "0x6007B5D")] [Address(RVA = "0x53C590", Offset = "0x53AF90", VA = "0x18053C590", Slot = "32")] get { Asn1Encodable obj = this.cert.acinfo.issuer.obj; AttributeCertificateIssuer attributeCertificateIssuer; attributeCertificateIssuer.form = obj; return attributeCertificateIssuer; } } // Token: 0x1700141D RID: 5149 // (get) Token: 0x06007B5E RID: 31582 RVA: 0x0019AFDC File Offset: 0x001991DC [Token(Token = "0x1700141D")] public virtual DateTime NotBefore { [Token(Token = "0x6007B5E")] [Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240", Slot = "33")] get { return this.notBefore; } } // Token: 0x1700141E RID: 5150 // (get) Token: 0x06007B5F RID: 31583 RVA: 0x0019AFF0 File Offset: 0x001991F0 [Token(Token = "0x1700141E")] public virtual DateTime NotAfter { [Token(Token = "0x6007B5F")] [Address(RVA = "0x3C1220", Offset = "0x3BFC20", VA = "0x1803C1220", Slot = "34")] get { return this.notAfter; } } // Token: 0x06007B60 RID: 31584 RVA: 0x0019B004 File Offset: 0x00199204 [Token(Token = "0x6007B60")] [Address(RVA = "0x53BEC0", Offset = "0x53A8C0", VA = "0x18053BEC0", 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: 0x1700141F RID: 5151 // (get) Token: 0x06007B61 RID: 31585 RVA: 0x0019B07C File Offset: 0x0019927C [Token(Token = "0x1700141F")] public virtual bool IsValidNow { [Token(Token = "0x6007B61")] [Address(RVA = "0x53C520", Offset = "0x53AF20", VA = "0x18053C520", Slot = "36")] get { /* An exception occurred when decompiling this method (06007B61) 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: 0x06007B62 RID: 31586 RVA: 0x0019B098 File Offset: 0x00199298 [Token(Token = "0x6007B62")] [Address(RVA = "0x53C0E0", Offset = "0x53AAE0", VA = "0x18053C0E0", Slot = "37")] public virtual bool IsValid(DateTime date) { AttributeCertificateIssuer issuer = this.Issuer; return this.NotBefore <= 0; } // Token: 0x06007B63 RID: 31587 RVA: 0x0019B0BC File Offset: 0x001992BC [Token(Token = "0x6007B63")] [Address(RVA = "0x53B6E0", Offset = "0x53A0E0", VA = "0x18053B6E0", Slot = "38")] public virtual void CheckValidity() { DateTime utcNow = DateTime.UtcNow; int version = ((IX509AttributeCertificate)this).Version; } // Token: 0x06007B64 RID: 31588 RVA: 0x0019B0D8 File Offset: 0x001992D8 [Token(Token = "0x6007B64")] [Address(RVA = "0x53B750", Offset = "0x53A150", VA = "0x18053B750", Slot = "39")] public virtual void CheckValidity(DateTime date) { DateTime dateTime = this.NotBefore; AttributeCertificateIssuer issuer = this.Issuer; } // Token: 0x17001420 RID: 5152 // (get) Token: 0x06007B65 RID: 31589 RVA: 0x0019B104 File Offset: 0x00199304 [Token(Token = "0x17001420")] public virtual AlgorithmIdentifier SignatureAlgorithm { [Token(Token = "0x6007B65")] [Address(RVA = "0x53C640", Offset = "0x53B040", VA = "0x18053C640", Slot = "40")] get { return this.cert.signatureAlgorithm; } } // Token: 0x06007B66 RID: 31590 RVA: 0x0019B124 File Offset: 0x00199324 [Token(Token = "0x6007B66")] [Address(RVA = "0x531510", Offset = "0x52FF10", VA = "0x180531510", Slot = "41")] public virtual byte[] GetSignature() { return this.cert.GetSignatureOctets(); } // Token: 0x06007B67 RID: 31591 RVA: 0x0019B144 File Offset: 0x00199344 [Token(Token = "0x6007B67")] [Address(RVA = "0x53C1D0", Offset = "0x53ABD0", VA = "0x18053C1D0", Slot = "42")] public virtual void Verify(AsymmetricKeyParameter key) { Asn1VerifierFactory asn1VerifierFactory = new Asn1VerifierFactory(this.cert.signatureAlgorithm, key); int version = ((IX509AttributeCertificate)this).Version; } // Token: 0x06007B68 RID: 31592 RVA: 0x0019B170 File Offset: 0x00199370 [Token(Token = "0x6007B68")] [Address(RVA = "0x53C150", Offset = "0x53AB50", VA = "0x18053C150", Slot = "43")] public virtual void Verify(IVerifierFactoryProvider verifierProvider) { AttributeCertificate attributeCertificate = this.cert; int version = ((IX509AttributeCertificate)this).Version; } // Token: 0x06007B69 RID: 31593 RVA: 0x0019B194 File Offset: 0x00199394 [Token(Token = "0x6007B69")] [Address(RVA = "0x53B400", Offset = "0x539E00", VA = "0x18053B400", Slot = "44")] protected virtual void CheckSignature(IVerifierFactory verifier) { /* An exception occurred when decompiling this method (06007B69) 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: 0x06007B6A RID: 31594 RVA: 0x0019B1EC File Offset: 0x001993EC [Token(Token = "0x6007B6A")] [Address(RVA = "0x53BEA0", Offset = "0x53A8A0", VA = "0x18053BEA0", Slot = "45")] public virtual byte[] GetEncoded() { return this.cert.GetEncoded(); } // Token: 0x06007B6B RID: 31595 RVA: 0x0019B20C File Offset: 0x0019940C [Token(Token = "0x6007B6B")] [Address(RVA = "0x53C0B0", Offset = "0x53AAB0", VA = "0x18053C0B0", Slot = "8")] protected override X509Extensions GetX509Extensions() { return this.cert.acinfo.extensions; } // Token: 0x06007B6C RID: 31596 RVA: 0x0019B230 File Offset: 0x00199430 [Token(Token = "0x6007B6C")] [Address(RVA = "0x53B970", Offset = "0x53A370", VA = "0x18053B970", 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: 0x06007B6D RID: 31597 RVA: 0x0019B284 File Offset: 0x00199484 [Token(Token = "0x6007B6D")] [Address(RVA = "0x53BAD0", Offset = "0x53A4D0", VA = "0x18053BAD0", 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: 0x06007B6E RID: 31598 RVA: 0x0019B33C File Offset: 0x0019953C [Token(Token = "0x6007B6E")] [Address(RVA = "0x53B8B0", Offset = "0x53A2B0", VA = "0x18053B8B0", Slot = "0")] public override bool Equals(object obj) { if (obj != this) { if (obj != 0 && obj != 0) { Asn1Object asn1Object = this.cert.ToAsn1Object(); } } return true; } // Token: 0x06007B6F RID: 31599 RVA: 0x0019B36C File Offset: 0x0019956C [Token(Token = "0x6007B6F")] [Address(RVA = "0x528AC0", Offset = "0x5274C0", VA = "0x180528AC0", Slot = "2")] public override int GetHashCode() { Asn1Object asn1Object = this.cert.ToAsn1Object(); throw new NullReferenceException(); } // Token: 0x04005869 RID: 22633 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4005869")] private readonly AttributeCertificate cert; // Token: 0x0400586A RID: 22634 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x400586A")] private readonly DateTime notBefore; // Token: 0x0400586B RID: 22635 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x400586B")] private readonly DateTime notAfter; } }