using System; using System.IO; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IO; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1 { // Token: 0x02001D87 RID: 7559 [Token(Token = "0x2001D87")] public class BerOctetStringGenerator : BerGenerator { // Token: 0x0600BF65 RID: 48997 RVA: 0x002B96E0 File Offset: 0x002B78E0 [Token(Token = "0x600BF65")] [Address(RVA = "0x2644C80", Offset = "0x2643A80", VA = "0x182644C80")] public BerOctetStringGenerator(Stream outStream) { this._out = outStream; base.WriteBerHeader(36); } // Token: 0x0600BF66 RID: 48998 RVA: 0x002B9704 File Offset: 0x002B7904 [Token(Token = "0x600BF66")] [Address(RVA = "0x2644CC0", Offset = "0x2643AC0", VA = "0x182644CC0")] public BerOctetStringGenerator(Stream outStream, int tagNo, bool isExplicit) { this._out = outStream; this._isExplicit = isExplicit; this._tagNo = tagNo; base.WriteBerHeader(36); } // Token: 0x0600BF67 RID: 48999 RVA: 0x002B9734 File Offset: 0x002B7934 [Token(Token = "0x600BF67")] [Address(RVA = "0x2644AF0", Offset = "0x26438F0", VA = "0x182644AF0")] public Stream GetOctetOutputStream() { byte[] array = new byte[1000]; return this.GetOctetOutputStream(array); } // Token: 0x0600BF68 RID: 49000 RVA: 0x002B9754 File Offset: 0x002B7954 [Token(Token = "0x600BF68")] [Address(RVA = "0x2644B40", Offset = "0x2643940", VA = "0x182644B40")] public Stream GetOctetOutputStream(int bufSize) { if (bufSize < 1) { } byte[] array = new byte[bufSize]; return this.GetOctetOutputStream(array); } // Token: 0x0600BF69 RID: 49001 RVA: 0x002B9774 File Offset: 0x002B7974 [Token(Token = "0x600BF69")] [Address(RVA = "0x2644BC0", Offset = "0x26439C0", VA = "0x182644BC0")] 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: 0x02001D88 RID: 7560 [Token(Token = "0x2001D88")] private class BufferedBerOctetStream : BaseOutputStream { // Token: 0x0600BF6A RID: 49002 RVA: 0x002B97B0 File Offset: 0x002B79B0 [Token(Token = "0x600BF6A")] [Address(RVA = "0x2647C70", Offset = "0x2646A70", VA = "0x182647C70")] 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: 0x0600BF6B RID: 49003 RVA: 0x002B97F4 File Offset: 0x002B79F4 [Token(Token = "0x600BF6B")] [Address(RVA = "0x2647AB0", Offset = "0x26468B0", VA = "0x182647AB0", 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: 0x0600BF6C RID: 49004 RVA: 0x002B9854 File Offset: 0x002B7A54 [Token(Token = "0x600BF6C")] [Address(RVA = "0x2647B30", Offset = "0x2646930", VA = "0x182647B30", 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: 0x0600BF6D RID: 49005 RVA: 0x002B9908 File Offset: 0x002B7B08 [Token(Token = "0x600BF6D")] [Address(RVA = "0x2647A60", Offset = "0x2646860", VA = "0x182647A60", 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: 0x04007987 RID: 31111 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4007987")] private byte[] _buf; // Token: 0x04007988 RID: 31112 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4007988")] private int _off; // Token: 0x04007989 RID: 31113 [FieldOffset(Offset = "0x40")] [Token(Token = "0x4007989")] private readonly BerOctetStringGenerator _gen; // Token: 0x0400798A RID: 31114 [FieldOffset(Offset = "0x48")] [Token(Token = "0x400798A")] private readonly DerOutputStream _derOut; } } }