using System; using System.Collections; using System.IO; using System.Runtime.InteropServices; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1 { // Token: 0x020017B5 RID: 6069 [Token(Token = "0x20017B5")] [StructLayout(3)] public class BerOctetString : DerOctetString, IEnumerable { // Token: 0x0600A3AF RID: 41903 RVA: 0x00261874 File Offset: 0x0025FA74 [Token(Token = "0x600A3AF")] [Address(RVA = "0x267CEE0", Offset = "0x267B8E0", VA = "0x18267CEE0")] public static BerOctetString FromSequence(Asn1Sequence seq) { int num; IList list; do { num = 0; list = Platform.CreateArrayList(); IEnumerator enumerator = seq.GetEnumerator(); if (enumerator != 0) { if (num < enumerator) { num += num; num++; } if (enumerator == 0) { } if (enumerator == 0) { goto IL_70; } if (num < enumerator) { num += num; num++; } enumerator += enumerator; num += 2; num += 19; } if (num != 0) { } if (num != -1) { } } while (num != 0); byte[] array = BerOctetString.ToBytes(list); BerOctetString berOctetString; berOctetString.octs = list; return berOctetString; IL_70: throw new NullReferenceException(); } // Token: 0x0600A3B0 RID: 41904 RVA: 0x002618F8 File Offset: 0x0025FAF8 [Token(Token = "0x600A3B0")] [Address(RVA = "0x267D4E0", Offset = "0x267BEE0", VA = "0x18267D4E0")] private static byte[] ToBytes(IEnumerable octs) { for (;;) { int num = 0; MemoryStream memoryStream = new MemoryStream(); if (memoryStream != 0) { if (num < memoryStream) { num += num; num++; } num++; num += 19; ulong num2; num = (int)((ulong)num + num2); if (num == 0 || num == 0) { goto IL_55; } if (memoryStream.ReadByte() != 0) { } if (num != -1) { } if (num == 0) { break; } } } throw new NullReferenceException(); IL_55: throw new NullReferenceException(); } // Token: 0x0600A3B1 RID: 41905 RVA: 0x00261968 File Offset: 0x0025FB68 [Token(Token = "0x600A3B1")] [Address(RVA = "0x267D7F0", Offset = "0x267C1F0", VA = "0x18267D7F0")] public BerOctetString(byte[] str) : base(str) { } // Token: 0x0600A3B2 RID: 41906 RVA: 0x0026197C File Offset: 0x0025FB7C [Token(Token = "0x600A3B2")] [Address(RVA = "0x267D7A0", Offset = "0x267C1A0", VA = "0x18267D7A0")] public BerOctetString(IEnumerable octets) { byte[] array = BerOctetString.ToBytes(octets); base..ctor(array); this.octs = octets; } // Token: 0x0600A3B3 RID: 41907 RVA: 0x002619A0 File Offset: 0x0025FBA0 [Token(Token = "0x600A3B3")] [Address(RVA = "0x267D7E0", Offset = "0x267C1E0", VA = "0x18267D7E0")] public BerOctetString(Asn1Object obj) : base(obj) { } // Token: 0x0600A3B4 RID: 41908 RVA: 0x002619B4 File Offset: 0x0025FBB4 [Token(Token = "0x600A3B4")] [Address(RVA = "0x267D800", Offset = "0x267C200", VA = "0x18267D800")] public BerOctetString(Asn1Encodable obj) { Asn1Object asn1Object = obj.ToAsn1Object(); base..ctor(asn1Object); } // Token: 0x0600A3B5 RID: 41909 RVA: 0x002619D8 File Offset: 0x0025FBD8 [Token(Token = "0x600A3B5")] [Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0", Slot = "10")] public override byte[] GetOctets() { return this.str; } // Token: 0x0600A3B6 RID: 41910 RVA: 0x002619EC File Offset: 0x0025FBEC [Token(Token = "0x600A3B6")] [Address(RVA = "0x267D310", Offset = "0x267BD10", VA = "0x18267D310", Slot = "11")] public IEnumerator GetEnumerator() { if (this.octs != 0) { } IList list = Platform.CreateArrayList(); byte[] str = this.str; int num = 0; if (num < str.Length) { int num2 = Math.Min(str.Length, 1000); num2 -= num; num = num2; byte[] array = new byte[num2]; int length = array.Length; int num3 = 0; Array.Copy(this.str, num, array, num3, length); DerOctetString derOctetString = new DerOctetString(array); byte[] str2 = this.str; } throw new NullReferenceException(); } // Token: 0x0600A3B7 RID: 41911 RVA: 0x00261A74 File Offset: 0x0025FC74 [Token(Token = "0x600A3B7")] [Address(RVA = "0x267D4D0", Offset = "0x267BED0", VA = "0x18267D4D0")] [Obsolete] public IEnumerator GetObjects() { return this.GetEnumerator(); } // Token: 0x0600A3B8 RID: 41912 RVA: 0x00261A88 File Offset: 0x0025FC88 [Token(Token = "0x600A3B8")] [Address(RVA = "0x267D1A0", Offset = "0x267BBA0", VA = "0x18267D1A0")] private IList GenerateOcts() { IList list = Platform.CreateArrayList(); byte[] str = this.str; int num = 0; if (num < str.Length) { int num2 = Math.Min(str.Length, 1000); num2 -= num; num = num2; byte[] array = new byte[num2]; int length = array.Length; int num3 = 0; Array.Copy(this.str, num, array, num3, length); DerOctetString derOctetString = new DerOctetString(array); byte[] str2 = this.str; } return list; } // Token: 0x0600A3B9 RID: 41913 RVA: 0x00261B0C File Offset: 0x0025FD0C [Token(Token = "0x600A3B9")] [Address(RVA = "0x267CBE0", Offset = "0x267B5E0", VA = "0x18267CBE0", Slot = "6")] internal override void Encode(DerOutputStream derOut) { int num; do { num = 0; if (derOut == 0 || (derOut == 0 && derOut == 0)) { goto IL_51; } IEnumerator enumerator = this.GetEnumerator(); if (enumerator != 0) { if (num < enumerator) { num += num; num++; } if (num == 0) { num += num; num++; num += 19; } if (num == 0) { goto IL_59; } derOut.WriteObject(num); } if (num != -1) { } } while (num != 0); return; IL_51: base.Encode(derOut); return; IL_59: throw new NullReferenceException(); } // Token: 0x04006B51 RID: 27473 [Token(Token = "0x4006B51")] private const int MaxLength = 1000; // Token: 0x04006B52 RID: 27474 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4006B52")] private readonly IEnumerable octs; } }