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.Utilities; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IO; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.X509 { // Token: 0x0200132A RID: 4906 [Token(Token = "0x200132A")] [StructLayout(3)] public class X509CrlParser { // Token: 0x06007B28 RID: 31528 RVA: 0x0019A234 File Offset: 0x00198434 [Token(Token = "0x6007B28")] [Address(RVA = "0x534490", Offset = "0x532E90", VA = "0x180534490")] public X509CrlParser() { this.lazyAsn1 = false; } // Token: 0x06007B29 RID: 31529 RVA: 0x0019A250 File Offset: 0x00198450 [Token(Token = "0x6007B29")] [Address(RVA = "0x5344B0", Offset = "0x532EB0", VA = "0x1805344B0")] public X509CrlParser(bool lazyAsn1) { this.lazyAsn1 = lazyAsn1; } // Token: 0x06007B2A RID: 31530 RVA: 0x0019A26C File Offset: 0x0019846C [Token(Token = "0x6007B2A")] [Address(RVA = "0x534380", Offset = "0x532D80", VA = "0x180534380")] private X509Crl ReadPemCrl(Stream inStream) { Asn1Sequence asn1Sequence = X509CrlParser.PemCrlParser.ReadPemObject(inStream); if (asn1Sequence == 0) { } CertificateList instance = CertificateList.GetInstance(asn1Sequence); throw new NullReferenceException(); } // Token: 0x06007B2B RID: 31531 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6007B2B")] [Address(RVA = "0x534160", Offset = "0x532B60", VA = "0x180534160")] private X509Crl ReadDerCrl(Asn1InputStream dIn) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06007B2C RID: 31532 RVA: 0x0019A298 File Offset: 0x00198498 [Token(Token = "0x6007B2C")] [Address(RVA = "0x533AC0", Offset = "0x5324C0", VA = "0x180533AC0")] private X509Crl GetCrl() { Asn1Encodable asn1Encodable; if (this.sCrlData != 0 && this.sCrlDataObjectCount < asn1Encodable) { int num = this.sCrlDataObjectCount; Asn1Set asn1Set = this.sCrlData; int num2 = num + 1; this.sCrlDataObjectCount = num2; IEnumerator enumerator = asn1Set.GetEnumerator(); } throw new NullReferenceException(); } // Token: 0x06007B2D RID: 31533 RVA: 0x0019A2E0 File Offset: 0x001984E0 [Token(Token = "0x6007B2D")] [Address(RVA = "0x533A60", Offset = "0x532460", VA = "0x180533A60", Slot = "4")] protected virtual X509Crl CreateX509Crl(CertificateList c) { return new X509Crl(c); } // Token: 0x06007B2E RID: 31534 RVA: 0x0019A2F4 File Offset: 0x001984F4 [Token(Token = "0x6007B2E")] [Address(RVA = "0x533E40", Offset = "0x532840", VA = "0x180533E40")] public X509Crl ReadCrl(byte[] input) { int num; MemoryStream memoryStream = new MemoryStream(input, num != 0); num = 0; return this.ReadCrl(memoryStream); } // Token: 0x06007B2F RID: 31535 RVA: 0x0019A314 File Offset: 0x00198514 [Token(Token = "0x6007B2F")] [Address(RVA = "0x533FF0", Offset = "0x5329F0", VA = "0x180533FF0")] public ICollection ReadCrls(byte[] input) { MemoryStream memoryStream; do { int num; memoryStream = new MemoryStream(input, num != 0); num = 0; IList list = Platform.CreateArrayList(); int num2 = 0; if (this.ReadCrl(memoryStream) == 0) { break; } int num3 = 0; if (num3 < num2) { num3 += num3; num3++; } } while (this.ReadCrl(memoryStream) != 0); memoryStream += memoryStream; throw new NullReferenceException(); } // Token: 0x06007B30 RID: 31536 RVA: 0x0019A36C File Offset: 0x0019856C [Token(Token = "0x6007B30")] [Address(RVA = "0x533B50", Offset = "0x532550", VA = "0x180533B50")] public X509Crl ReadCrl(Stream inStream) { if (inStream != 0) { inStream.Dispose(); Stream stream = this.currentCrlStream; int num = 0; if (stream == 0 || stream != inStream) { this.sCrlDataObjectCount = num; this.sCrlData = num; this.currentCrlStream = inStream; } string text; if (this.sCrlData == 0) { PushbackStream pushbackStream = new PushbackStream(inStream); int num2; pushbackStream.WriteByte((byte)num2); if (num2 == 48) { if (this.lazyAsn1) { LazyAsn1InputStream lazyAsn1InputStream = new LazyAsn1InputStream(pushbackStream); } Asn1InputStream asn1InputStream = new Asn1InputStream(pushbackStream); X509Crl x509Crl = this.ReadDerCrl(asn1InputStream); } Asn1Sequence asn1Sequence = X509CrlParser.PemCrlParser.ReadPemObject(pushbackStream); if (asn1Sequence != 0) { CertificateList instance = CertificateList.GetInstance(asn1Sequence); text = this.ToString(); } } int num3 = this.sCrlDataObjectCount; this.sCrlData = text; this.sCrlDataObjectCount = text; return this.GetCrl(); } ArgumentNullException ex = new ArgumentNullException("inStream"); throw new NullReferenceException(); } // Token: 0x06007B31 RID: 31537 RVA: 0x0019A444 File Offset: 0x00198644 [Token(Token = "0x6007B31")] [Address(RVA = "0x533EB0", Offset = "0x5328B0", VA = "0x180533EB0")] public ICollection ReadCrls(Stream inStream) { do { IList list = Platform.CreateArrayList(); int num = 0; if (this.ReadCrl(inStream) == 0) { break; } int num2 = 0; if (num2 < num) { num2 += num2; num2++; } } while (this.ReadCrl(inStream) != 0); throw new NullReferenceException(); } // Token: 0x04005852 RID: 22610 [Token(Token = "0x4005852")] private static readonly PemParser PemCrlParser = new PemParser("CRL"); // Token: 0x04005853 RID: 22611 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4005853")] private readonly bool lazyAsn1; // Token: 0x04005854 RID: 22612 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4005854")] private Asn1Set sCrlData; // Token: 0x04005855 RID: 22613 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x4005855")] private int sCrlDataObjectCount; // Token: 0x04005856 RID: 22614 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x4005856")] private Stream currentCrlStream; } }