using System; using System.IO; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IO; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1 { // Token: 0x02001E67 RID: 7783 [Token(Token = "0x2001E67")] public class BerOctetStringGenerator : BerGenerator { // Token: 0x0600C333 RID: 49971 RVA: 0x002C1FD8 File Offset: 0x002C01D8 [Token(Token = "0x600C333")] [Address(RVA = "0x2295020", Offset = "0x2294020", VA = "0x182295020")] public BerOctetStringGenerator(Stream outStream) { this._out = outStream; base.WriteBerHeader(36); } // Token: 0x0600C334 RID: 49972 RVA: 0x002C1FFC File Offset: 0x002C01FC [Token(Token = "0x600C334")] [Address(RVA = "0x2295060", Offset = "0x2294060", VA = "0x182295060")] public BerOctetStringGenerator(Stream outStream, int tagNo, bool isExplicit) { this._out = outStream; this._isExplicit = isExplicit; this._tagNo = tagNo; base.WriteBerHeader(36); } // Token: 0x0600C335 RID: 49973 RVA: 0x002C202C File Offset: 0x002C022C [Token(Token = "0x600C335")] [Address(RVA = "0x2294E90", Offset = "0x2293E90", VA = "0x182294E90")] public Stream GetOctetOutputStream() { byte[] array = new byte[1000]; return this.GetOctetOutputStream(array); } // Token: 0x0600C336 RID: 49974 RVA: 0x002C204C File Offset: 0x002C024C [Token(Token = "0x600C336")] [Address(RVA = "0x2294EE0", Offset = "0x2293EE0", VA = "0x182294EE0")] public Stream GetOctetOutputStream(int bufSize) { if (bufSize < 1) { } byte[] array = new byte[bufSize]; return this.GetOctetOutputStream(array); } // Token: 0x0600C337 RID: 49975 RVA: 0x002C206C File Offset: 0x002C026C [Token(Token = "0x600C337")] [Address(RVA = "0x2294F60", Offset = "0x2293F60", VA = "0x182294F60")] public Stream GetOctetOutputStream(byte[] buf) { BerOctetStringGenerator.BufferedBerOctetStream bufferedBerOctetStream; bufferedBerOctetStream._gen = this; bufferedBerOctetStream._buf = buf; bufferedBerOctetStream._off = (int)((ulong)0L); DerOutputStream derOutputStream = new DerOutputStream(this._out); bufferedBerOctetStream._derOut = derOutputStream; throw new NullReferenceException(); } // Token: 0x02001E68 RID: 7784 [Token(Token = "0x2001E68")] private class BufferedBerOctetStream : BaseOutputStream { // Token: 0x0600C338 RID: 49976 RVA: 0x002C20A8 File Offset: 0x002C02A8 [Token(Token = "0x600C338")] [Address(RVA = "0x2298010", Offset = "0x2297010", VA = "0x182298010")] internal BufferedBerOctetStream(BerOctetStringGenerator gen, byte[] buf) { this._gen = gen; this._buf = buf; this._off = (int)((ulong)0L); DerOutputStream derOutputStream = new DerOutputStream(gen._out); this._derOut = derOutputStream; } // Token: 0x0600C339 RID: 49977 RVA: 0x002C20EC File Offset: 0x002C02EC [Token(Token = "0x600C339")] [Address(RVA = "0x2297E50", Offset = "0x2296E50", VA = "0x182297E50", Slot = "30")] public override void WriteByte(byte b) { byte[] buf = this._buf; int num = this._off + 1; this._off = num; byte[] buf2 = this._buf; int off = this._off; if (off == buf2.Length) { DerOutputStream derOut = this._derOut; int num2 = 0; DerOctetString.Encode(derOut, buf2, num2, off); this._off = (int)((ulong)0L); } } // Token: 0x0600C33A RID: 49978 RVA: 0x002C214C File Offset: 0x002C034C [Token(Token = "0x600C33A")] [Address(RVA = "0x2297ED0", Offset = "0x2296ED0", VA = "0x182297ED0", Slot = "29")] public override void Write(byte[] buf, int offset, int len) { if (len > 0) { int num = 0; byte[] buf2 = this._buf; int off = this._off; int num2 = buf2.Length; num2 -= off; int num3 = Math.Min(len, num2); byte[] buf3 = this._buf; if (num3 != buf3.Length) { int off2 = this._off; Array.Copy(buf, offset, buf3, off2, num3); int num4 = this._off; byte[] buf4 = this._buf; num4 += num3; this._off = num4; DerOutputStream derOut = this._derOut; int num5 = 0; DerOctetString.Encode(derOut, buf4, num5, num4); this._off = num; } DerOctetString.Encode(this._derOut, buf, offset, len); } } // Token: 0x0600C33B RID: 49979 RVA: 0x002C2200 File Offset: 0x002C0400 [Token(Token = "0x600C33B")] [Address(RVA = "0x2297E00", Offset = "0x2296E00", VA = "0x182297E00", Slot = "15")] public override void Close() { int off = this._off; if (off != 0) { byte[] buf = this._buf; int num = 0; DerOctetString.Encode(this._derOut, buf, num, off); } this._gen.WriteBerEnd(); base.Close(); } // Token: 0x04007B40 RID: 31552 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4007B40")] private byte[] _buf; // Token: 0x04007B41 RID: 31553 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4007B41")] private int _off; // Token: 0x04007B42 RID: 31554 [FieldOffset(Offset = "0x40")] [Token(Token = "0x4007B42")] private readonly BerOctetStringGenerator _gen; // Token: 0x04007B43 RID: 31555 [FieldOffset(Offset = "0x48")] [Token(Token = "0x4007B43")] private readonly DerOutputStream _derOut; } } }