Files
Jan2021-Cpp2Il-Dump/Assembly-CSharp/BestHTTP/SecureProtocol/Org/BouncyCastle/Crypto/Engines/Cast6Engine.cs
T
2026-04-08 23:40:05 +02:00

379 lines
11 KiB
C#

using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x020016AC RID: 5804
[Token(Token = "0x20016AC")]
[StructLayout(3)]
public sealed class Cast6Engine : Cast5Engine
{
// Token: 0x06009B66 RID: 39782 RVA: 0x002303AC File Offset: 0x0022E5AC
[Token(Token = "0x6009B66")]
[Address(RVA = "0x22EF0C0", Offset = "0x22EDAC0", VA = "0x1822EF0C0")]
public Cast6Engine()
{
int[] array = new int[48];
this._Kr = array;
uint[] array2 = new uint[48];
this._Km = array2;
int[] array3 = new int[192];
this._Tr = array3;
uint[] array4 = new uint[192];
this._Tm = array4;
uint[] array5 = new uint[8];
this._workingKey = array5;
int[] array6 = new int[17];
this._Kr = array6;
uint[] array7 = new uint[17];
this._Km = array7;
int max_ROUNDS = Cast5Engine.MAX_ROUNDS;
this._rounds = max_ROUNDS;
this.Reset();
}
// Token: 0x170018C1 RID: 6337
// (get) Token: 0x06009B67 RID: 39783 RVA: 0x00230444 File Offset: 0x0022E644
[Token(Token = "0x170018C1")]
public override string AlgorithmName
{
[Token(Token = "0x6009B67")]
[Address(RVA = "0x22EF200", Offset = "0x22EDC00", VA = "0x1822EF200", Slot = "11")]
get
{
return "CAST6";
}
}
// Token: 0x06009B68 RID: 39784 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6009B68")]
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "14")]
public override void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06009B69 RID: 39785 RVA: 0x00230458 File Offset: 0x0022E658
[Token(Token = "0x6009B69")]
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "15")]
public override int GetBlockSize()
{
return 16;
}
// Token: 0x06009B6A RID: 39786 RVA: 0x00230468 File Offset: 0x0022E668
[Token(Token = "0x6009B6A")]
[Address(RVA = "0x22EE0B0", Offset = "0x22ECAB0", VA = "0x1822EE0B0", Slot = "16")]
internal override void SetKey(byte[] key)
{
int num = 0;
uint num2;
this._Tm[0] = num2;
num2 += (uint)1859775393;
uint num3;
this._Tr[0] = (int)num3;
num++;
num3 += (uint)(-15);
num += 8;
byte[] array = new byte[64];
uint[] workingKey = this._workingKey;
num++;
workingKey[0] = array;
uint[] workingKey2 = this._workingKey;
int length = workingKey2.Length;
uint[] tm = this._Tm;
uint num4 = workingKey2[3];
uint num5 = tm[num];
int num6 = this._Tr[num];
uint num7 = Cast5Engine.F1(num4, num5, num6);
workingKey2[3] = num7;
uint[] workingKey3 = this._workingKey;
int length2 = workingKey3.Length;
uint[] tm2 = this._Tm;
int[] tr = this._Tr;
uint num9;
int num10;
uint num8 = Cast5Engine.F2(workingKey3[3], num9, num10);
workingKey3[2] = num8;
uint[] workingKey4 = this._workingKey;
int length3 = workingKey4.Length;
uint[] tm3 = this._Tm;
int[] tr2 = this._Tr;
uint num12;
int num13;
uint num11 = Cast5Engine.F3(workingKey4[2], num12, num13);
workingKey4[2] = num11;
uint[] workingKey5 = this._workingKey;
int length4 = workingKey5.Length;
uint[] tm4 = this._Tm;
int[] tr3 = this._Tr;
uint num15;
int num16;
uint num14 = Cast5Engine.F1(workingKey5[2], num15, num16);
workingKey5[1] = num14;
uint[] workingKey6 = this._workingKey;
int length5 = workingKey6.Length;
uint[] tm5 = this._Tm;
int[] tr4 = this._Tr;
uint num18;
int num19;
uint num17 = Cast5Engine.F2(workingKey6[1], num18, num19);
workingKey6[1] = num17;
uint[] workingKey7 = this._workingKey;
int length6 = workingKey7.Length;
uint[] tm6 = this._Tm;
int[] tr5 = this._Tr;
uint num21;
int num22;
uint num20 = Cast5Engine.F3(workingKey7[1], num21, num22);
workingKey7[0] = num20;
uint[] workingKey8 = this._workingKey;
int length7 = workingKey8.Length;
uint[] tm7 = this._Tm;
int[] tr6 = this._Tr;
uint num24;
int num25;
uint num23 = Cast5Engine.F1(workingKey8[0], num24, num25);
workingKey8[0] = num23;
uint[] workingKey9 = this._workingKey;
int length8 = workingKey9.Length;
uint[] tm8 = this._Tm;
int[] tr7 = this._Tr;
uint num27;
int num28;
uint num26 = Cast5Engine.F2(workingKey9[0], num27, num28);
workingKey9[3] = num26;
uint[] workingKey10 = this._workingKey;
int length9 = workingKey10.Length;
uint[] tm9 = this._Tm;
int[] tr8 = this._Tr;
uint num29 = Cast5Engine.F1(workingKey10[3], (uint)num, 8);
workingKey10[3] = num29;
uint[] workingKey11 = this._workingKey;
int length10 = workingKey11.Length;
uint[] tm10 = this._Tm;
int[] tr9 = this._Tr;
uint num31;
int num32;
uint num30 = Cast5Engine.F2(workingKey11[3], num31, num32);
workingKey11[2] = num30;
uint[] workingKey12 = this._workingKey;
int length11 = workingKey12.Length;
uint[] tm11 = this._Tm;
int[] tr10 = this._Tr;
uint num34;
int num35;
uint num33 = Cast5Engine.F3(workingKey12[2], num34, num35);
workingKey12[2] = num33;
uint[] workingKey13 = this._workingKey;
int length12 = workingKey13.Length;
uint[] tm12 = this._Tm;
int[] tr11 = this._Tr;
uint num37;
int num38;
uint num36 = Cast5Engine.F1(workingKey13[2], num37, num38);
workingKey13[1] = num36;
uint[] workingKey14 = this._workingKey;
int length13 = workingKey14.Length;
uint[] tm13 = this._Tm;
int[] tr12 = this._Tr;
uint num40;
int num41;
uint num39 = Cast5Engine.F2(workingKey14[1], num40, num41);
workingKey14[1] = num39;
uint[] workingKey15 = this._workingKey;
int length14 = workingKey15.Length;
uint[] tm14 = this._Tm;
int[] tr13 = this._Tr;
uint num43;
int num44;
uint num42 = Cast5Engine.F3(workingKey15[1], num43, num44);
workingKey15[0] = num42;
uint[] workingKey16 = this._workingKey;
int length15 = workingKey16.Length;
uint[] tm15 = this._Tm;
int[] tr14 = this._Tr;
uint num46;
int num47;
uint num45 = Cast5Engine.F1(workingKey16[0], num46, num47);
workingKey16[0] = num45;
uint[] workingKey17 = this._workingKey;
int length16 = workingKey17.Length;
uint[] tm16 = this._Tm;
num += 15;
int num48 = this._Tr[num];
uint num49 = workingKey17[0];
uint num50 = tm16[num];
uint num51 = Cast5Engine.F2(num49, num50, num48);
workingKey17[3] = num51;
uint[] workingKey18 = this._workingKey;
int[] kr = this._Kr;
uint num52 = workingKey18[0];
num.m_value = (int)num52;
uint[] workingKey19 = this._workingKey;
int[] kr2 = this._Kr;
uint num53 = workingKey19[1];
kr2[0] = (int)num53;
uint[] workingKey20 = this._workingKey;
int[] kr3 = this._Kr;
uint num54 = workingKey20[2];
kr3[0] = (int)num54;
uint[] workingKey21 = this._workingKey;
int[] kr4 = this._Kr;
uint num55 = workingKey21[3];
kr4[0] = (int)num55;
uint[] workingKey22 = this._workingKey;
uint[] km = this._Km;
uint num56 = workingKey22[3];
num.m_value = (int)num56;
uint[] workingKey23 = this._workingKey;
uint[] km2 = this._Km;
uint num57 = workingKey23[2];
km2[0] = num57;
uint[] workingKey24 = this._workingKey;
uint[] km3 = this._Km;
uint num58 = workingKey24[1];
km3[0] = num58;
uint[] workingKey25 = this._workingKey;
uint[] km4 = this._Km;
uint num59 = workingKey25[0];
num++;
km4[0] = num59;
}
// Token: 0x06009B6B RID: 39787 RVA: 0x00230A00 File Offset: 0x0022EC00
[Token(Token = "0x6009B6B")]
[Address(RVA = "0x22EDF00", Offset = "0x22EC900", VA = "0x1822EDF00", Slot = "17")]
internal override int EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
uint[] array = new uint[4];
uint num = array[0];
uint num2 = array[0];
uint num3 = array[1];
uint num4 = array[1];
return 16;
}
// Token: 0x06009B6C RID: 39788 RVA: 0x00230A40 File Offset: 0x0022EC40
[Token(Token = "0x6009B6C")]
[Address(RVA = "0x22EDD50", Offset = "0x22EC750", VA = "0x1822EDD50", Slot = "18")]
internal override int DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
uint[] array = new uint[4];
uint num = array[0];
uint num2 = array[0];
uint num3 = array[1];
uint num4 = array[1];
return 16;
}
// Token: 0x06009B6D RID: 39789 RVA: 0x00230A80 File Offset: 0x0022EC80
[Token(Token = "0x6009B6D")]
[Address(RVA = "0x22ED8C0", Offset = "0x22EC2C0", VA = "0x1822ED8C0")]
private void CAST_Encipher(uint A, uint B, uint C, uint D, uint[] result)
{
int num = 0;
uint[] km = this._Km;
int[] kr = this._Kr;
uint[] km2 = this._Km;
int[] kr2 = this._Kr;
uint num3;
int num4;
uint num2 = Cast5Engine.F2(C, num3, num4);
uint[] km3 = this._Km;
int[] kr3 = this._Kr;
uint[] km4 = this._Km;
num += 3;
int[] kr4 = this._Kr;
uint num5 = km4[num];
int num6 = kr4[num];
uint num7 = Cast5Engine.F1(A, num5, num6);
num += 4;
uint[] km5 = this._Km;
int[] kr5 = this._Kr;
uint num8 = Cast5Engine.F1(A, num5, num6);
uint[] km6 = this._Km;
int[] kr6 = this._Kr;
uint[] km7 = this._Km;
uint num10;
uint num9 = num10 + 1U;
int num11 = this._Kr[(int)num9];
uint num12 = km7[(int)num9];
uint num13 = Cast5Engine.F2(C, num12, num11);
uint[] km8 = this._Km;
int[] kr7 = this._Kr;
num10 += (uint)4;
}
// Token: 0x06009B6E RID: 39790 RVA: 0x00230B80 File Offset: 0x0022ED80
[Token(Token = "0x6009B6E")]
[Address(RVA = "0x22ED430", Offset = "0x22EBE30", VA = "0x1822ED430")]
private void CAST_Decipher(uint A, uint B, uint C, uint D, uint[] result)
{
uint[] km = this._Km;
int[] kr = this._Kr;
uint[] km2 = this._Km;
uint num2;
uint num = num2 + 1U;
int num3 = this._Kr[(int)num];
uint num4 = km2[(int)num];
uint num5 = Cast5Engine.F2(C, num4, num3);
uint[] km3 = this._Km;
int[] kr2 = this._Kr;
uint[] km4 = this._Km;
num2 += (uint)3;
int[] kr3 = this._Kr;
uint num6 = km4[(int)num2];
int num7 = kr3[(int)num2];
uint num8 = Cast5Engine.F1(A, num6, num7);
uint[] km5 = this._Km;
int[] kr4 = this._Kr;
uint num9 = Cast5Engine.F1(A, num6, num7);
uint[] km6 = this._Km;
int[] kr5 = this._Kr;
uint[] km7 = this._Km;
uint num11;
uint num10 = num11 + 1U;
int num12 = this._Kr[(int)num10];
uint num13 = km7[(int)num10];
uint num14 = Cast5Engine.F2(C, num13, num12);
uint[] km8 = this._Km;
int[] kr6 = this._Kr;
}
// Token: 0x040065F5 RID: 26101
[Token(Token = "0x40065F5")]
private const int ROUNDS = 12;
// Token: 0x040065F6 RID: 26102
[Token(Token = "0x40065F6")]
private const int BLOCK_SIZE = 16;
// Token: 0x040065F7 RID: 26103
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x40065F7")]
private int[] _Kr;
// Token: 0x040065F8 RID: 26104
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x40065F8")]
private uint[] _Km;
// Token: 0x040065F9 RID: 26105
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x40065F9")]
private int[] _Tr;
// Token: 0x040065FA RID: 26106
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x40065FA")]
private uint[] _Tm;
// Token: 0x040065FB RID: 26107
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x40065FB")]
private uint[] _workingKey;
}
}