Files
Aug2021-Cpp2IL-Dump/Assembly-CSharp/BestHTTP/SecureProtocol/Org/BouncyCastle/Utilities/Encoders/Base64Encoder.cs
T
2026-04-10 22:50:51 +02:00

255 lines
6.2 KiB
C#

using System;
using System.IO;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders
{
// Token: 0x0200194A RID: 6474
[Token(Token = "0x200194A")]
public class Base64Encoder : IEncoder
{
// Token: 0x060099AB RID: 39339 RVA: 0x001FDE78 File Offset: 0x001FC078
[Token(Token = "0x60099AB")]
[Address(RVA = "0x18D5150", Offset = "0x18D3F50", VA = "0x1818D5150")]
protected void InitialiseDecodingTable()
{
int num = this.decodingTable.Length;
if (num > 0)
{
num--;
}
byte[] array = this.encodingTable;
int num2 = 0;
if (num2 < array.Length)
{
byte[] array2 = this.decodingTable;
num2++;
byte[] array3 = this.encodingTable;
}
}
// Token: 0x060099AC RID: 39340 RVA: 0x001FDEC4 File Offset: 0x001FC0C4
[Token(Token = "0x60099AC")]
[Address(RVA = "0x18D5260", Offset = "0x18D4060", VA = "0x1818D5260")]
public Base64Encoder()
{
byte[] array = new byte[64];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.0953DF544832295E4A5B19928F95C351F25DA86A).FieldHandle);
this.encodingTable = array;
this.padding = (byte)((ulong)61L);
byte[] array2 = new byte[128];
this.decodingTable = array2;
base..ctor();
this.InitialiseDecodingTable();
}
// Token: 0x060099AD RID: 39341 RVA: 0x001FDF14 File Offset: 0x001FC114
[Token(Token = "0x60099AD")]
[Address(RVA = "0x18D4CC0", Offset = "0x18D3AC0", VA = "0x1818D4CC0", Slot = "4")]
public int Encode(byte[] data, int off, int length, Stream outStream)
{
int length2 = data.Length;
int num = off + 1;
byte b = data[num];
byte[] array = this.encodingTable;
byte[] array2 = this.encodingTable;
byte[] array3 = this.encodingTable;
byte[] array4 = this.encodingTable;
byte b2;
if (length != 0)
{
if (length == 0)
{
goto IL_70;
}
if (length == 1)
{
int length3 = data.Length;
byte[] array5 = this.encodingTable;
byte[] array6 = this.encodingTable;
byte[] array7 = this.encodingTable;
b2 = this.padding;
}
}
b2 += b2;
IL_70:
byte[] array8 = this.encodingTable;
byte[] array9 = this.encodingTable;
throw new NullReferenceException();
}
// Token: 0x060099AE RID: 39342 RVA: 0x001FDFA8 File Offset: 0x001FC1A8
[Token(Token = "0x60099AE")]
[Address(RVA = "0x18D56F0", Offset = "0x18D44F0", VA = "0x1818D56F0")]
private bool ignore(char c)
{
return true;
}
// Token: 0x060099AF RID: 39343 RVA: 0x001FDFB8 File Offset: 0x001FC1B8
[Token(Token = "0x60099AF")]
[Address(RVA = "0x18D47B0", Offset = "0x18D35B0", VA = "0x1818D47B0", Slot = "5")]
public int Decode(byte[] data, int off, int length, Stream outStream)
{
int num = 0;
if (off >= length || off == 250)
{
}
if (off < length)
{
byte[] array = this.decodingTable;
int length2 = data.Length;
int length3 = array.Length;
if (off >= length || off == 250)
{
}
if (off < length)
{
if (off == 250)
{
}
bool flag;
if (flag)
{
}
}
if (off < length)
{
if (off == 250)
{
}
bool flag2;
if (flag2)
{
}
}
num += 3;
if (off < length)
{
int length4 = data.Length;
if (off == 250)
{
}
if (off < length)
{
}
}
}
int length5 = data.Length;
int num2;
num2 += num;
return num2;
}
// Token: 0x060099B0 RID: 39344 RVA: 0x001FE054 File Offset: 0x001FC254
[Token(Token = "0x60099B0")]
[Address(RVA = "0x18D5710", Offset = "0x18D4510", VA = "0x1818D5710")]
private int nextI(byte[] data, int i, int finish)
{
if (i >= finish || i == 250)
{
}
return i;
}
// Token: 0x060099B1 RID: 39345 RVA: 0x001FE074 File Offset: 0x001FC274
[Token(Token = "0x60099B1")]
[Address(RVA = "0x18D43F0", Offset = "0x18D31F0", VA = "0x1818D43F0", Slot = "6")]
public int DecodeString(string data, Stream outStream)
{
int num = 0;
int num2 = data.m_stringLength;
uint num4;
if (num2 > 0)
{
int num3 = num2 - 1;
char c = data[num3];
if (num4 == data)
{
}
num2 = num3;
}
int num5 = 0;
int num6 = this.nextI(data, num5, (int)num4);
if (num6 < (int)num4)
{
byte[] array = this.decodingTable;
char c2 = data[num6];
int num7 = num6 + 1;
int num8 = this.nextI(data, num7, (int)num4);
byte[] array2 = this.decodingTable;
char c3 = data[num8];
int num9 = num8 + 1;
int num10 = this.nextI(data, num9, (int)num4);
byte[] array3 = this.decodingTable;
char c4 = data[num10];
int num11 = num10 + 1;
int num12 = this.nextI(data, num11, (int)num4);
byte[] array4 = this.decodingTable;
num10 = num12;
char c5 = data[num12];
int num13 = num10 + 1;
if (num13 < (int)num4)
{
char c6 = data[num13];
uint num14;
if (num14 == data)
{
}
num13++;
}
}
char c7 = data[(int)num4];
char c8 = data[(int)num4];
char c9 = data[(int)num4];
int num15 = num2 - 1;
char c10 = data[num15];
int num16;
num16 += num;
return num16;
}
// Token: 0x060099B2 RID: 39346 RVA: 0x001FE1A4 File Offset: 0x001FC3A4
[Token(Token = "0x60099B2")]
[Address(RVA = "0x18D52F0", Offset = "0x18D40F0", VA = "0x1818D52F0")]
private int decodeLastBlock(Stream outStream, char c1, char c2, char c3, char c4)
{
byte b = this.padding;
byte[] array = this.decodingTable;
int length = array.Length;
return 3;
}
// Token: 0x060099B3 RID: 39347 RVA: 0x001FE1E8 File Offset: 0x001FC3E8
[Token(Token = "0x60099B3")]
[Address(RVA = "0x18D5770", Offset = "0x18D4570", VA = "0x1818D5770")]
private int nextI(string data, int i, int finish)
{
if (i < finish)
{
char c = data[i];
if ((uint)65530 == data)
{
}
}
return i;
}
// Token: 0x04006880 RID: 26752
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006880")]
protected readonly byte[] encodingTable;
// Token: 0x04006881 RID: 26753
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006881")]
protected byte padding;
// Token: 0x04006882 RID: 26754
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006882")]
protected readonly byte[] decodingTable;
}
}