using System; using System.IO; using System.Runtime.InteropServices; using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.IsisMtt.Ocsp { // Token: 0x020018ED RID: 6381 [Token(Token = "0x20018ED")] [StructLayout(3)] public class RequestedCertificate : Asn1Encodable, IAsn1Choice { // Token: 0x0600AB54 RID: 43860 RVA: 0x002807EC File Offset: 0x0027E9EC [Token(Token = "0x600AB54")] [Address(RVA = "0x1DF7070", Offset = "0x1DF5A70", VA = "0x181DF7070")] public static RequestedCertificate GetInstance(object obj) { /* An exception occurred when decompiling this method (0600AB54) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate::GetInstance(System.Object) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_39: stloc:string(var_7_3F, call:string(Platform::GetTypeName, ldloc:object(obj))) stloc:ArgumentException(var_8_57, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("unknown object in factory: "), ldloc:string(var_7_3F)), ldstr:string("obj"))) } 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: 0x0600AB55 RID: 43861 RVA: 0x00280854 File Offset: 0x0027EA54 [Token(Token = "0x600AB55")] [Address(RVA = "0x1DF7270", Offset = "0x1DF5C70", VA = "0x181DF7270")] public static RequestedCertificate GetInstance(Asn1TaggedObject obj, bool isExplicit) { /* An exception occurred when decompiling this method (0600AB55) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate::GetInstance(BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Asn1TaggedObject,System.Boolean) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_10: stloc:ArgumentException(var_0_1A, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("choice item must be explicitly tagged"))) } 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: 0x0600AB56 RID: 43862 RVA: 0x0028087C File Offset: 0x0027EA7C [Token(Token = "0x600AB56")] [Address(RVA = "0x1DF74A0", Offset = "0x1DF5EA0", VA = "0x181DF74A0")] private RequestedCertificate(Asn1TaggedObject tagged) { int tagNo = tagged.tagNo; if (tagNo == 0) { Stream octetStream = Asn1OctetString.GetInstance(tagged, true).GetOctetStream(); this.publicKeyCert = octetStream; return; } Stream octetStream2 = Asn1OctetString.GetInstance(tagged, tagNo != 0).GetOctetStream(); this.attributeCert = octetStream2; } // Token: 0x0600AB57 RID: 43863 RVA: 0x002808CC File Offset: 0x0027EACC [Token(Token = "0x600AB57")] [Address(RVA = "0x579A20", Offset = "0x578420", VA = "0x180579A20")] public RequestedCertificate(X509CertificateStructure certificate) { this.cert = certificate; } // Token: 0x0600AB58 RID: 43864 RVA: 0x002808E8 File Offset: 0x0027EAE8 [Token(Token = "0x600AB58")] [Address(RVA = "0x1DF7400", Offset = "0x1DF5E00", VA = "0x181DF7400")] public RequestedCertificate(RequestedCertificate.Choice type, byte[] certificateOctets) { DerOctetString derOctetString = new DerOctetString(certificateOctets); DerTaggedObject derTaggedObject = new DerTaggedObject((int)type, derOctetString); } // Token: 0x17001B24 RID: 6948 // (get) Token: 0x0600AB59 RID: 43865 RVA: 0x00280908 File Offset: 0x0027EB08 [Token(Token = "0x17001B24")] public RequestedCertificate.Choice Type { [Token(Token = "0x600AB59")] [Address(RVA = "0x1DF75C0", Offset = "0x1DF5FC0", VA = "0x181DF75C0")] get { if (this.cert == (ulong)0L) { int num = 0; bool flag = this.publicKeyCert == num; } return RequestedCertificate.Choice.Certificate; } } // Token: 0x0600AB5A RID: 43866 RVA: 0x00280930 File Offset: 0x0027EB30 [Token(Token = "0x600AB5A")] [Address(RVA = "0x1DF6FA0", Offset = "0x1DF59A0", VA = "0x181DF6FA0")] public byte[] GetCertificateBytes() { if (this.cert == (ulong)0L) { byte[] array = this.publicKeyCert; if (array == 0) { } return array; } X509CertificateStructure x509CertificateStructure = this.cert; return x509CertificateStructure.GetEncoded(); } // Token: 0x0600AB5B RID: 43867 RVA: 0x0028097C File Offset: 0x0027EB7C [Token(Token = "0x600AB5B")] [Address(RVA = "0x1DF7300", Offset = "0x1DF5D00", VA = "0x181DF7300", Slot = "5")] public override Asn1Object ToAsn1Object() { byte[] array = this.publicKeyCert; if (array == 0) { byte[] array2 = this.attributeCert; if (array2 == 0) { return this.cert.ToAsn1Object(); } DerOctetString derOctetString = new DerOctetString(array2); DerTaggedObject derTaggedObject = new DerTaggedObject(array); } DerOctetString derOctetString2 = new DerOctetString(array); int num; DerTaggedObject derTaggedObject2 = new DerTaggedObject(num, derOctetString2); num = 0; throw new NullReferenceException(); } // Token: 0x0400709A RID: 28826 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x400709A")] private readonly X509CertificateStructure cert; // Token: 0x0400709B RID: 28827 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x400709B")] private readonly byte[] publicKeyCert; // Token: 0x0400709C RID: 28828 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x400709C")] private readonly byte[] attributeCert; // Token: 0x020018EE RID: 6382 [Token(Token = "0x20018EE")] public enum Choice { // Token: 0x0400709E RID: 28830 [Token(Token = "0x400709E")] Certificate = -1, // Token: 0x0400709F RID: 28831 [Token(Token = "0x400709F")] PublicKeyCertificate, // Token: 0x040070A0 RID: 28832 [Token(Token = "0x40070A0")] AttributeCertificate } } }