173 lines
5.3 KiB
C#
173 lines
5.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|