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; } }