671 lines
22 KiB
C#
671 lines
22 KiB
C#
using System;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
|
{
|
|
// Token: 0x02001CB7 RID: 7351
|
|
[Token(Token = "0x2001CB7")]
|
|
public sealed class TwofishEngine : IBlockCipher
|
|
{
|
|
// Token: 0x0600B935 RID: 47413 RVA: 0x00299078 File Offset: 0x00297278
|
|
[Token(Token = "0x600B935")]
|
|
[Address(RVA = "0x1A41150", Offset = "0x1A3FF50", VA = "0x181A41150")]
|
|
public TwofishEngine()
|
|
{
|
|
int[] array = new int[256];
|
|
this.gMDS0 = array;
|
|
int[] array2 = new int[256];
|
|
this.gMDS1 = array2;
|
|
int[] array3 = new int[256];
|
|
this.gMDS2 = array3;
|
|
int[] array4 = new int[256];
|
|
this.gMDS3 = array4;
|
|
base..ctor();
|
|
int[] array5 = new int[2];
|
|
int[] array6 = new int[2];
|
|
int[] array7 = new int[2];
|
|
byte[,] p = TwofishEngine.P;
|
|
throw new IndexOutOfRangeException();
|
|
}
|
|
|
|
// Token: 0x0600B936 RID: 47414 RVA: 0x002991B4 File Offset: 0x002973B4
|
|
[Token(Token = "0x600B936")]
|
|
[Address(RVA = "0x1A3FF30", Offset = "0x1A3ED30", VA = "0x181A3FF30", Slot = "5")]
|
|
public void Init(bool forEncryption, ICipherParameters parameters)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B936)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TwofishEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_47:
|
|
stloc:ArgumentException(var_7_58, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to Twofish init - "), ldloc:string(var_6))))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x17001CFB RID: 7419
|
|
// (get) Token: 0x0600B937 RID: 47415 RVA: 0x0029921C File Offset: 0x0029741C
|
|
[Token(Token = "0x17001CFB")]
|
|
public string AlgorithmName
|
|
{
|
|
[Token(Token = "0x600B937")]
|
|
[Address(RVA = "0x1A41670", Offset = "0x1A40470", VA = "0x181A41670", Slot = "4")]
|
|
get
|
|
{
|
|
return "Twofish";
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001CFC RID: 7420
|
|
// (get) Token: 0x0600B938 RID: 47416 RVA: 0x00299230 File Offset: 0x00297430
|
|
[Token(Token = "0x17001CFC")]
|
|
public bool IsPartialBlockOkay
|
|
{
|
|
[Token(Token = "0x600B938")]
|
|
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "7")]
|
|
get
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B939 RID: 47417 RVA: 0x00299240 File Offset: 0x00297440
|
|
[Token(Token = "0x600B939")]
|
|
[Address(RVA = "0x1A401E0", Offset = "0x1A3EFE0", VA = "0x181A401E0", Slot = "8")]
|
|
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B939)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.TwofishEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_27:
|
|
stloc:InvalidOperationException(var_1_31, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Twofish not initialised")))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
|
--- End of inner exception stack trace ---
|
|
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
|
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
|
*/;
|
|
}
|
|
|
|
// Token: 0x0600B93A RID: 47418 RVA: 0x00299280 File Offset: 0x00297480
|
|
[Token(Token = "0x600B93A")]
|
|
[Address(RVA = "0x1A40400", Offset = "0x1A3F200", VA = "0x181A40400", Slot = "9")]
|
|
public void Reset()
|
|
{
|
|
byte[] array = this.workingKey;
|
|
if (array != 0)
|
|
{
|
|
this.SetKey(array);
|
|
return;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B93B RID: 47419 RVA: 0x002992A0 File Offset: 0x002974A0
|
|
[Token(Token = "0x600B93B")]
|
|
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "6")]
|
|
public int GetBlockSize()
|
|
{
|
|
return 16;
|
|
}
|
|
|
|
// Token: 0x0600B93C RID: 47420 RVA: 0x002992B0 File Offset: 0x002974B0
|
|
[Token(Token = "0x600B93C")]
|
|
[Address(RVA = "0x1A40420", Offset = "0x1A3F220", VA = "0x181A40420")]
|
|
private void SetKey(byte[] key)
|
|
{
|
|
int[] array = new int[4];
|
|
int[] array2 = new int[4];
|
|
int[] array3 = new int[4];
|
|
int[] array4 = new int[40];
|
|
int num = this.k64Cnt;
|
|
this.gSubKeys = array4;
|
|
int num2 = 0;
|
|
if (num > 0)
|
|
{
|
|
int num3 = this.BytesTo32Bits(key, num2);
|
|
int length = key.Length;
|
|
num2 += 7;
|
|
int num4 = this.k64Cnt;
|
|
while (num2 != array2.Length)
|
|
{
|
|
}
|
|
while (num2 != array2.Length)
|
|
{
|
|
}
|
|
num4 -= num2;
|
|
num2++;
|
|
byte b;
|
|
array3[0] = (int)b;
|
|
num2 += 8;
|
|
}
|
|
int num5 = this.F32(num2, array);
|
|
int num6 = this.F32(16843009, array2);
|
|
int[] array5 = this.gSubKeys;
|
|
num5 += num6;
|
|
array5[0] = num5;
|
|
num5 += num6;
|
|
int[] array6 = this.gSubKeys;
|
|
num2++;
|
|
num2 += 33686018;
|
|
num2 += 2;
|
|
array6[0] = num5;
|
|
int length2 = array3.Length;
|
|
int num7 = array3[0];
|
|
int num8 = array3[0];
|
|
int num9 = array3[1];
|
|
int num10 = array3[1];
|
|
int[] array7 = new int[1024];
|
|
this.gSBox = array7;
|
|
int num11 = this.k64Cnt;
|
|
if (length2 != 3)
|
|
{
|
|
if (length2 != 3)
|
|
{
|
|
if (length2 == 3)
|
|
{
|
|
int[] array8 = this.gMDS0;
|
|
int[] array9 = this.gSBox;
|
|
byte[,] p = TwofishEngine.P;
|
|
throw new IndexOutOfRangeException();
|
|
}
|
|
if (num11 == 1)
|
|
{
|
|
byte[,] p2 = TwofishEngine.P;
|
|
throw new IndexOutOfRangeException();
|
|
}
|
|
}
|
|
int[] array10 = this.gSBox;
|
|
int[] array11 = this.gMDS0;
|
|
byte[,] p3 = TwofishEngine.P;
|
|
throw new IndexOutOfRangeException();
|
|
}
|
|
byte[,] p4 = TwofishEngine.P;
|
|
throw new IndexOutOfRangeException();
|
|
}
|
|
|
|
// Token: 0x0600B93D RID: 47421 RVA: 0x00299634 File Offset: 0x00297834
|
|
[Token(Token = "0x600B93D")]
|
|
[Address(RVA = "0x1A3ECC0", Offset = "0x1A3DAC0", VA = "0x181A3ECC0")]
|
|
private void EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
|
{
|
|
int num = this.BytesTo32Bits(src, srcIndex);
|
|
int length = this.gSubKeys.Length;
|
|
int length2 = src.Length;
|
|
int num2 = this.Fe32_0(length2);
|
|
byte b;
|
|
int num3 = this.Fe32_3((int)b);
|
|
int[] array = this.gSubKeys;
|
|
int length3 = array.Length;
|
|
uint num5;
|
|
int num4 = array[(int)num5];
|
|
num4 += num3;
|
|
num4 += num2;
|
|
uint num6 = num5 + 1U;
|
|
array += num2;
|
|
int[] array2 = this.gSBox;
|
|
int length4 = array2.Length;
|
|
byte b2;
|
|
b2 += b2;
|
|
int num7 = array2[(int)b2];
|
|
int num8 = this.Fe32_3(array);
|
|
int[] array3 = this.gSubKeys;
|
|
int length5 = array3.Length;
|
|
int num9 = array3[this];
|
|
num9 += num8;
|
|
num9 += num7;
|
|
num5 += (uint)3;
|
|
uint num10 = num5 + 1U;
|
|
num8 += num7;
|
|
int num11 = array3[2];
|
|
array3[0] = num11;
|
|
array3[0] = num11;
|
|
int[] array4 = this.gSubKeys;
|
|
int num12 = array4[2];
|
|
array4[0] = num12;
|
|
array3[0] = num12;
|
|
array3[0] = num12;
|
|
int[] array5 = this.gSubKeys;
|
|
int num13 = array5[3];
|
|
array5[0] = num13;
|
|
array3[0] = num13;
|
|
array3[0] = num13;
|
|
int[] array6 = this.gSubKeys;
|
|
int num14 = array6[3];
|
|
array6[0] = num14;
|
|
array3[0] = num14;
|
|
array3[0] = num14;
|
|
}
|
|
|
|
// Token: 0x0600B93E RID: 47422 RVA: 0x002997C4 File Offset: 0x002979C4
|
|
[Token(Token = "0x600B93E")]
|
|
[Address(RVA = "0x1A3E460", Offset = "0x1A3D260", VA = "0x181A3E460")]
|
|
private void DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
|
|
{
|
|
int num = this.BytesTo32Bits(src, srcIndex);
|
|
int length = this.gSubKeys.Length;
|
|
int length2 = src.Length;
|
|
byte b2;
|
|
byte b = b2;
|
|
int num2 = this.Fe32_0(length2);
|
|
byte b3;
|
|
int num3 = this.Fe32_3((int)b3);
|
|
int[] array = this.gSubKeys;
|
|
int length3 = array.Length;
|
|
b3 = (byte)((int)b3 + num2);
|
|
uint num5;
|
|
uint num4 = num5 - 1U;
|
|
byte b4 = b;
|
|
int num6 = array[(int)num4];
|
|
int[] array2 = this.gSBox;
|
|
num6 += num3;
|
|
num6 += num2;
|
|
int length4 = array2.Length;
|
|
b4 += b4;
|
|
b = b4;
|
|
b4 = b;
|
|
num3++;
|
|
b = b4;
|
|
int num7 = array2[(int)b4];
|
|
int num8 = this.Fe32_3((int)b);
|
|
int[] array3 = this.gSubKeys;
|
|
num3 = num8;
|
|
int length5 = array3.Length;
|
|
num5 += (uint)(-2);
|
|
b = (byte)((int)b + num7);
|
|
num5 += (uint)(-3);
|
|
uint num9 = num5 - 1U;
|
|
int num10 = array3[(int)num5];
|
|
num10 += num3;
|
|
num10 += num7;
|
|
int num11 = array3[0];
|
|
array3[0] = num11;
|
|
array3[0] = num11;
|
|
int[] array4 = this.gSubKeys;
|
|
int num12 = array4[0];
|
|
array4[0] = num12;
|
|
array3[0] = num12;
|
|
array3[0] = num12;
|
|
int[] array5 = this.gSubKeys;
|
|
int num13 = array5[1];
|
|
array5[0] = num13;
|
|
array3[0] = num13;
|
|
array3[0] = num13;
|
|
int[] array6 = this.gSubKeys;
|
|
int num14 = array6[1];
|
|
array6[0] = num14;
|
|
array3[0] = num14;
|
|
array3[0] = num14;
|
|
}
|
|
|
|
// Token: 0x0600B93F RID: 47423 RVA: 0x00299980 File Offset: 0x00297B80
|
|
[Token(Token = "0x600B93F")]
|
|
[Address(RVA = "0x1A3F520", Offset = "0x1A3E320", VA = "0x181A3F520")]
|
|
private int F32(int x, int[] k32)
|
|
{
|
|
int length = k32.Length;
|
|
int num = k32[0];
|
|
int num2 = k32[1];
|
|
int num3 = this.k64Cnt;
|
|
int num4 = 0;
|
|
int num5 = k32[1];
|
|
if (length != 3)
|
|
{
|
|
if (length != 3 && length != 3 && num3 != 1)
|
|
{
|
|
return num4;
|
|
}
|
|
int[] array = this.gMDS0;
|
|
byte[,] p = TwofishEngine.P;
|
|
int[] array2 = this.gMDS1;
|
|
int[] array3 = this.gMDS2;
|
|
int[] array4 = this.gMDS3;
|
|
}
|
|
byte[,] p2 = TwofishEngine.P;
|
|
num5 = x + k32;
|
|
byte[,] p3 = TwofishEngine.P;
|
|
byte b;
|
|
b += k32;
|
|
byte b2;
|
|
b2 += k32;
|
|
int[] array5 = this.gMDS0;
|
|
byte[,] p4 = TwofishEngine.P;
|
|
int[] array6 = this.gMDS1;
|
|
byte b3 = (byte)((int)b3 + num);
|
|
int[] array7 = this.gMDS2;
|
|
int[] array8 = this.gMDS3;
|
|
byte b5;
|
|
byte b4 = b5;
|
|
b4 = (byte)((int)b4 + num);
|
|
return num4;
|
|
}
|
|
|
|
// Token: 0x0600B940 RID: 47424 RVA: 0x00299A58 File Offset: 0x00297C58
|
|
[Token(Token = "0x600B940")]
|
|
[Address(RVA = "0x1A402E0", Offset = "0x1A3F0E0", VA = "0x181A402E0")]
|
|
private int RS_MDS_Encode(int k0, int k1)
|
|
{
|
|
return k1;
|
|
}
|
|
|
|
// Token: 0x0600B941 RID: 47425 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x600B941")]
|
|
[Address(RVA = "0x1A403B0", Offset = "0x1A3F1B0", VA = "0x181A403B0")]
|
|
private int RS_rem(int x)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x0600B942 RID: 47426 RVA: 0x00299A68 File Offset: 0x00297C68
|
|
[Token(Token = "0x600B942")]
|
|
[Address(RVA = "0x1A400F0", Offset = "0x1A3EEF0", VA = "0x181A400F0")]
|
|
private int LFSR1(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600B943 RID: 47427 RVA: 0x00299A78 File Offset: 0x00297C78
|
|
[Token(Token = "0x600B943")]
|
|
[Address(RVA = "0x1A40110", Offset = "0x1A3EF10", VA = "0x181A40110")]
|
|
private int LFSR2(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600B944 RID: 47428 RVA: 0x00299A88 File Offset: 0x00297C88
|
|
[Token(Token = "0x600B944")]
|
|
[Address(RVA = "0x1A40170", Offset = "0x1A3EF70", VA = "0x181A40170")]
|
|
private int Mx_X(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600B945 RID: 47429 RVA: 0x00299A98 File Offset: 0x00297C98
|
|
[Token(Token = "0x600B945")]
|
|
[Address(RVA = "0x1A401A0", Offset = "0x1A3EFA0", VA = "0x181A401A0")]
|
|
private int Mx_Y(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600B946 RID: 47430 RVA: 0x00299AA8 File Offset: 0x00297CA8
|
|
[Token(Token = "0x600B946")]
|
|
[Address(RVA = "0xAAA850", Offset = "0xAA9650", VA = "0x180AAA850")]
|
|
private int M_b0(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600B947 RID: 47431 RVA: 0x00299AB8 File Offset: 0x00297CB8
|
|
[Token(Token = "0x600B947")]
|
|
[Address(RVA = "0x1A40140", Offset = "0x1A3EF40", VA = "0x181A40140")]
|
|
private int M_b1(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600B948 RID: 47432 RVA: 0x00299AC8 File Offset: 0x00297CC8
|
|
[Token(Token = "0x600B948")]
|
|
[Address(RVA = "0x1A40150", Offset = "0x1A3EF50", VA = "0x181A40150")]
|
|
private int M_b2(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600B949 RID: 47433 RVA: 0x00299AD8 File Offset: 0x00297CD8
|
|
[Token(Token = "0x600B949")]
|
|
[Address(RVA = "0x1A40160", Offset = "0x1A3EF60", VA = "0x181A40160")]
|
|
private int M_b3(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600B94A RID: 47434 RVA: 0x00299AE8 File Offset: 0x00297CE8
|
|
[Token(Token = "0x600B94A")]
|
|
[Address(RVA = "0x1A3FD90", Offset = "0x1A3EB90", VA = "0x181A3FD90")]
|
|
private int Fe32_0(int x)
|
|
{
|
|
int[] array = this.gSBox;
|
|
int length = array.Length;
|
|
return array[x];
|
|
}
|
|
|
|
// Token: 0x0600B94B RID: 47435 RVA: 0x00299B10 File Offset: 0x00297D10
|
|
[Token(Token = "0x600B94B")]
|
|
[Address(RVA = "0x1A3FE60", Offset = "0x1A3EC60", VA = "0x181A3FE60")]
|
|
private int Fe32_3(int x)
|
|
{
|
|
int[] array = this.gSBox;
|
|
int length = array.Length;
|
|
return array[this];
|
|
}
|
|
|
|
// Token: 0x0600B94C RID: 47436 RVA: 0x00299B38 File Offset: 0x00297D38
|
|
[Token(Token = "0x600B94C")]
|
|
[Address(RVA = "0x1A3E3B0", Offset = "0x1A3D1B0", VA = "0x181A3E3B0")]
|
|
private int BytesTo32Bits(byte[] b, int p)
|
|
{
|
|
int length = b.Length;
|
|
int num = p + 1;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600B94D RID: 47437 RVA: 0x00299B58 File Offset: 0x00297D58
|
|
[Token(Token = "0x600B94D")]
|
|
[Address(RVA = "0x1A3E310", Offset = "0x1A3D110", VA = "0x181A3E310")]
|
|
private void Bits32ToBytes(int inData, byte[] b, int offset)
|
|
{
|
|
int num = offset + 1;
|
|
}
|
|
|
|
// Token: 0x040075C8 RID: 30152
|
|
[Token(Token = "0x40075C8")]
|
|
private static readonly byte[,] P;
|
|
|
|
// Token: 0x040075C9 RID: 30153
|
|
[Token(Token = "0x40075C9")]
|
|
private const int P_00 = 1;
|
|
|
|
// Token: 0x040075CA RID: 30154
|
|
[Token(Token = "0x40075CA")]
|
|
private const int P_01 = 0;
|
|
|
|
// Token: 0x040075CB RID: 30155
|
|
[Token(Token = "0x40075CB")]
|
|
private const int P_02 = 0;
|
|
|
|
// Token: 0x040075CC RID: 30156
|
|
[Token(Token = "0x40075CC")]
|
|
private const int P_03 = 1;
|
|
|
|
// Token: 0x040075CD RID: 30157
|
|
[Token(Token = "0x40075CD")]
|
|
private const int P_04 = 1;
|
|
|
|
// Token: 0x040075CE RID: 30158
|
|
[Token(Token = "0x40075CE")]
|
|
private const int P_10 = 0;
|
|
|
|
// Token: 0x040075CF RID: 30159
|
|
[Token(Token = "0x40075CF")]
|
|
private const int P_11 = 0;
|
|
|
|
// Token: 0x040075D0 RID: 30160
|
|
[Token(Token = "0x40075D0")]
|
|
private const int P_12 = 1;
|
|
|
|
// Token: 0x040075D1 RID: 30161
|
|
[Token(Token = "0x40075D1")]
|
|
private const int P_13 = 1;
|
|
|
|
// Token: 0x040075D2 RID: 30162
|
|
[Token(Token = "0x40075D2")]
|
|
private const int P_14 = 0;
|
|
|
|
// Token: 0x040075D3 RID: 30163
|
|
[Token(Token = "0x40075D3")]
|
|
private const int P_20 = 1;
|
|
|
|
// Token: 0x040075D4 RID: 30164
|
|
[Token(Token = "0x40075D4")]
|
|
private const int P_21 = 1;
|
|
|
|
// Token: 0x040075D5 RID: 30165
|
|
[Token(Token = "0x40075D5")]
|
|
private const int P_22 = 0;
|
|
|
|
// Token: 0x040075D6 RID: 30166
|
|
[Token(Token = "0x40075D6")]
|
|
private const int P_23 = 0;
|
|
|
|
// Token: 0x040075D7 RID: 30167
|
|
[Token(Token = "0x40075D7")]
|
|
private const int P_24 = 0;
|
|
|
|
// Token: 0x040075D8 RID: 30168
|
|
[Token(Token = "0x40075D8")]
|
|
private const int P_30 = 0;
|
|
|
|
// Token: 0x040075D9 RID: 30169
|
|
[Token(Token = "0x40075D9")]
|
|
private const int P_31 = 1;
|
|
|
|
// Token: 0x040075DA RID: 30170
|
|
[Token(Token = "0x40075DA")]
|
|
private const int P_32 = 1;
|
|
|
|
// Token: 0x040075DB RID: 30171
|
|
[Token(Token = "0x40075DB")]
|
|
private const int P_33 = 0;
|
|
|
|
// Token: 0x040075DC RID: 30172
|
|
[Token(Token = "0x40075DC")]
|
|
private const int P_34 = 1;
|
|
|
|
// Token: 0x040075DD RID: 30173
|
|
[Token(Token = "0x40075DD")]
|
|
private const int GF256_FDBK = 361;
|
|
|
|
// Token: 0x040075DE RID: 30174
|
|
[Token(Token = "0x40075DE")]
|
|
private const int GF256_FDBK_2 = 180;
|
|
|
|
// Token: 0x040075DF RID: 30175
|
|
[Token(Token = "0x40075DF")]
|
|
private const int GF256_FDBK_4 = 90;
|
|
|
|
// Token: 0x040075E0 RID: 30176
|
|
[Token(Token = "0x40075E0")]
|
|
private const int RS_GF_FDBK = 333;
|
|
|
|
// Token: 0x040075E1 RID: 30177
|
|
[Token(Token = "0x40075E1")]
|
|
private const int ROUNDS = 16;
|
|
|
|
// Token: 0x040075E2 RID: 30178
|
|
[Token(Token = "0x40075E2")]
|
|
private const int MAX_ROUNDS = 16;
|
|
|
|
// Token: 0x040075E3 RID: 30179
|
|
[Token(Token = "0x40075E3")]
|
|
private const int BLOCK_SIZE = 16;
|
|
|
|
// Token: 0x040075E4 RID: 30180
|
|
[Token(Token = "0x40075E4")]
|
|
private const int MAX_KEY_BITS = 256;
|
|
|
|
// Token: 0x040075E5 RID: 30181
|
|
[Token(Token = "0x40075E5")]
|
|
private const int INPUT_WHITEN = 0;
|
|
|
|
// Token: 0x040075E6 RID: 30182
|
|
[Token(Token = "0x40075E6")]
|
|
private const int OUTPUT_WHITEN = 4;
|
|
|
|
// Token: 0x040075E7 RID: 30183
|
|
[Token(Token = "0x40075E7")]
|
|
private const int ROUND_SUBKEYS = 8;
|
|
|
|
// Token: 0x040075E8 RID: 30184
|
|
[Token(Token = "0x40075E8")]
|
|
private const int TOTAL_SUBKEYS = 40;
|
|
|
|
// Token: 0x040075E9 RID: 30185
|
|
[Token(Token = "0x40075E9")]
|
|
private const int SK_STEP = 33686018;
|
|
|
|
// Token: 0x040075EA RID: 30186
|
|
[Token(Token = "0x40075EA")]
|
|
private const int SK_BUMP = 16843009;
|
|
|
|
// Token: 0x040075EB RID: 30187
|
|
[Token(Token = "0x40075EB")]
|
|
private const int SK_ROTL = 9;
|
|
|
|
// Token: 0x040075EC RID: 30188
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x40075EC")]
|
|
private bool encrypting;
|
|
|
|
// Token: 0x040075ED RID: 30189
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x40075ED")]
|
|
private int[] gMDS0;
|
|
|
|
// Token: 0x040075EE RID: 30190
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x40075EE")]
|
|
private int[] gMDS1;
|
|
|
|
// Token: 0x040075EF RID: 30191
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x40075EF")]
|
|
private int[] gMDS2;
|
|
|
|
// Token: 0x040075F0 RID: 30192
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x40075F0")]
|
|
private int[] gMDS3;
|
|
|
|
// Token: 0x040075F1 RID: 30193
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x40075F1")]
|
|
private int[] gSubKeys;
|
|
|
|
// Token: 0x040075F2 RID: 30194
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x40075F2")]
|
|
private int[] gSBox;
|
|
|
|
// Token: 0x040075F3 RID: 30195
|
|
[FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x40075F3")]
|
|
private int k64Cnt;
|
|
|
|
// Token: 0x040075F4 RID: 30196
|
|
[FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x40075F4")]
|
|
private byte[] workingKey;
|
|
}
|
|
}
|