using System; using System.IO; using System.Runtime.InteropServices; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IO; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1 { // Token: 0x020017AA RID: 6058 [Token(Token = "0x20017AA")] [StructLayout(3)] public class BerOctetStringGenerator : BerGenerator { // Token: 0x0600A38B RID: 41867 RVA: 0x00261248 File Offset: 0x0025F448 [Token(Token = "0x600A38B")] [Address(RVA = "0x267C9C0", Offset = "0x267B3C0", VA = "0x18267C9C0")] public BerOctetStringGenerator(Stream outStream) { this._out = outStream; base.WriteBerHeader(36); } // Token: 0x0600A38C RID: 41868 RVA: 0x0026126C File Offset: 0x0025F46C [Token(Token = "0x600A38C")] [Address(RVA = "0x267CA00", Offset = "0x267B400", VA = "0x18267CA00")] public BerOctetStringGenerator(Stream outStream, int tagNo, bool isExplicit) { this._out = outStream; this._isExplicit = isExplicit; this._tagNo = tagNo; base.WriteBerHeader(36); } // Token: 0x0600A38D RID: 41869 RVA: 0x0026129C File Offset: 0x0025F49C [Token(Token = "0x600A38D")] [Address(RVA = "0x267C830", Offset = "0x267B230", VA = "0x18267C830")] public Stream GetOctetOutputStream() { byte[] array = new byte[1000]; return this.GetOctetOutputStream(array); } // Token: 0x0600A38E RID: 41870 RVA: 0x002612BC File Offset: 0x0025F4BC [Token(Token = "0x600A38E")] [Address(RVA = "0x267C880", Offset = "0x267B280", VA = "0x18267C880")] public Stream GetOctetOutputStream(int bufSize) { if (bufSize < 1) { } byte[] array = new byte[bufSize]; return this.GetOctetOutputStream(array); } // Token: 0x0600A38F RID: 41871 RVA: 0x002612DC File Offset: 0x0025F4DC [Token(Token = "0x600A38F")] [Address(RVA = "0x267C900", Offset = "0x267B300", VA = "0x18267C900")] 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: 0x020017AB RID: 6059 [Token(Token = "0x20017AB")] private class BufferedBerOctetStream : BaseOutputStream { // Token: 0x0600A390 RID: 41872 RVA: 0x00261318 File Offset: 0x0025F518 [Token(Token = "0x600A390")] [Address(RVA = "0x267FA70", Offset = "0x267E470", VA = "0x18267FA70")] 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: 0x0600A391 RID: 41873 RVA: 0x0026135C File Offset: 0x0025F55C [Token(Token = "0x600A391")] [Address(RVA = "0x267F8B0", Offset = "0x267E2B0", VA = "0x18267F8B0", 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: 0x0600A392 RID: 41874 RVA: 0x002613BC File Offset: 0x0025F5BC [Token(Token = "0x600A392")] [Address(RVA = "0x267F930", Offset = "0x267E330", VA = "0x18267F930", 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: 0x0600A393 RID: 41875 RVA: 0x00261470 File Offset: 0x0025F670 [Token(Token = "0x600A393")] [Address(RVA = "0x267F860", Offset = "0x267E260", VA = "0x18267F860", 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: 0x04006B44 RID: 27460 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x4006B44")] private byte[] _buf; // Token: 0x04006B45 RID: 27461 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x4006B45")] private int _off; // Token: 0x04006B46 RID: 27462 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x4006B46")] private readonly BerOctetStringGenerator _gen; // Token: 0x04006B47 RID: 27463 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x4006B47")] private readonly DerOutputStream _derOut; } } }