671 lines
22 KiB
C#
671 lines
22 KiB
C#
using System;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
|
{
|
|
// Token: 0x02001D97 RID: 7575
|
|
[Token(Token = "0x2001D97")]
|
|
public sealed class TwofishEngine : IBlockCipher
|
|
{
|
|
// Token: 0x0600BD03 RID: 48387 RVA: 0x002A1A20 File Offset: 0x0029FC20
|
|
[Token(Token = "0x600BD03")]
|
|
[Address(RVA = "0x2593F40", Offset = "0x2592F40", VA = "0x182593F40")]
|
|
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: 0x0600BD04 RID: 48388 RVA: 0x002A1B5C File Offset: 0x0029FD5C
|
|
[Token(Token = "0x600BD04")]
|
|
[Address(RVA = "0x2592D20", Offset = "0x2591D20", VA = "0x182592D20", Slot = "5")]
|
|
public void Init(bool forEncryption, ICipherParameters parameters)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600BD04)
|
|
|
|
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: 0x17001D98 RID: 7576
|
|
// (get) Token: 0x0600BD05 RID: 48389 RVA: 0x002A1BC4 File Offset: 0x0029FDC4
|
|
[Token(Token = "0x17001D98")]
|
|
public string AlgorithmName
|
|
{
|
|
[Token(Token = "0x600BD05")]
|
|
[Address(RVA = "0x2594460", Offset = "0x2593460", VA = "0x182594460", Slot = "4")]
|
|
get
|
|
{
|
|
return "Twofish";
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001D99 RID: 7577
|
|
// (get) Token: 0x0600BD06 RID: 48390 RVA: 0x002A1BD8 File Offset: 0x0029FDD8
|
|
[Token(Token = "0x17001D99")]
|
|
public bool IsPartialBlockOkay
|
|
{
|
|
[Token(Token = "0x600BD06")]
|
|
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "7")]
|
|
get
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600BD07 RID: 48391 RVA: 0x002A1BE8 File Offset: 0x0029FDE8
|
|
[Token(Token = "0x600BD07")]
|
|
[Address(RVA = "0x2592FD0", Offset = "0x2591FD0", VA = "0x182592FD0", Slot = "8")]
|
|
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600BD07)
|
|
|
|
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: 0x0600BD08 RID: 48392 RVA: 0x002A1C28 File Offset: 0x0029FE28
|
|
[Token(Token = "0x600BD08")]
|
|
[Address(RVA = "0x25931F0", Offset = "0x25921F0", VA = "0x1825931F0", Slot = "9")]
|
|
public void Reset()
|
|
{
|
|
byte[] array = this.workingKey;
|
|
if (array != 0)
|
|
{
|
|
this.SetKey(array);
|
|
return;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600BD09 RID: 48393 RVA: 0x002A1C48 File Offset: 0x0029FE48
|
|
[Token(Token = "0x600BD09")]
|
|
[Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "6")]
|
|
public int GetBlockSize()
|
|
{
|
|
return 16;
|
|
}
|
|
|
|
// Token: 0x0600BD0A RID: 48394 RVA: 0x002A1C58 File Offset: 0x0029FE58
|
|
[Token(Token = "0x600BD0A")]
|
|
[Address(RVA = "0x2593210", Offset = "0x2592210", VA = "0x182593210")]
|
|
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: 0x0600BD0B RID: 48395 RVA: 0x002A1FDC File Offset: 0x002A01DC
|
|
[Token(Token = "0x600BD0B")]
|
|
[Address(RVA = "0x2591AB0", Offset = "0x2590AB0", VA = "0x182591AB0")]
|
|
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: 0x0600BD0C RID: 48396 RVA: 0x002A216C File Offset: 0x002A036C
|
|
[Token(Token = "0x600BD0C")]
|
|
[Address(RVA = "0x2591250", Offset = "0x2590250", VA = "0x182591250")]
|
|
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: 0x0600BD0D RID: 48397 RVA: 0x002A2328 File Offset: 0x002A0528
|
|
[Token(Token = "0x600BD0D")]
|
|
[Address(RVA = "0x2592310", Offset = "0x2591310", VA = "0x182592310")]
|
|
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: 0x0600BD0E RID: 48398 RVA: 0x002A2400 File Offset: 0x002A0600
|
|
[Token(Token = "0x600BD0E")]
|
|
[Address(RVA = "0x25930D0", Offset = "0x25920D0", VA = "0x1825930D0")]
|
|
private int RS_MDS_Encode(int k0, int k1)
|
|
{
|
|
return k1;
|
|
}
|
|
|
|
// Token: 0x0600BD0F RID: 48399 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x600BD0F")]
|
|
[Address(RVA = "0x25931A0", Offset = "0x25921A0", VA = "0x1825931A0")]
|
|
private int RS_rem(int x)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x0600BD10 RID: 48400 RVA: 0x002A2410 File Offset: 0x002A0610
|
|
[Token(Token = "0x600BD10")]
|
|
[Address(RVA = "0x2592EE0", Offset = "0x2591EE0", VA = "0x182592EE0")]
|
|
private int LFSR1(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600BD11 RID: 48401 RVA: 0x002A2420 File Offset: 0x002A0620
|
|
[Token(Token = "0x600BD11")]
|
|
[Address(RVA = "0x2592F00", Offset = "0x2591F00", VA = "0x182592F00")]
|
|
private int LFSR2(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600BD12 RID: 48402 RVA: 0x002A2430 File Offset: 0x002A0630
|
|
[Token(Token = "0x600BD12")]
|
|
[Address(RVA = "0x2592F60", Offset = "0x2591F60", VA = "0x182592F60")]
|
|
private int Mx_X(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600BD13 RID: 48403 RVA: 0x002A2440 File Offset: 0x002A0640
|
|
[Token(Token = "0x600BD13")]
|
|
[Address(RVA = "0x2592F90", Offset = "0x2591F90", VA = "0x182592F90")]
|
|
private int Mx_Y(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600BD14 RID: 48404 RVA: 0x002A2450 File Offset: 0x002A0650
|
|
[Token(Token = "0x600BD14")]
|
|
[Address(RVA = "0x16A3490", Offset = "0x16A2490", VA = "0x1816A3490")]
|
|
private int M_b0(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600BD15 RID: 48405 RVA: 0x002A2460 File Offset: 0x002A0660
|
|
[Token(Token = "0x600BD15")]
|
|
[Address(RVA = "0x2592F30", Offset = "0x2591F30", VA = "0x182592F30")]
|
|
private int M_b1(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600BD16 RID: 48406 RVA: 0x002A2470 File Offset: 0x002A0670
|
|
[Token(Token = "0x600BD16")]
|
|
[Address(RVA = "0x2592F40", Offset = "0x2591F40", VA = "0x182592F40")]
|
|
private int M_b2(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600BD17 RID: 48407 RVA: 0x002A2480 File Offset: 0x002A0680
|
|
[Token(Token = "0x600BD17")]
|
|
[Address(RVA = "0x2592F50", Offset = "0x2591F50", VA = "0x182592F50")]
|
|
private int M_b3(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x0600BD18 RID: 48408 RVA: 0x002A2490 File Offset: 0x002A0690
|
|
[Token(Token = "0x600BD18")]
|
|
[Address(RVA = "0x2592B80", Offset = "0x2591B80", VA = "0x182592B80")]
|
|
private int Fe32_0(int x)
|
|
{
|
|
int[] array = this.gSBox;
|
|
int length = array.Length;
|
|
return array[x];
|
|
}
|
|
|
|
// Token: 0x0600BD19 RID: 48409 RVA: 0x002A24B8 File Offset: 0x002A06B8
|
|
[Token(Token = "0x600BD19")]
|
|
[Address(RVA = "0x2592C50", Offset = "0x2591C50", VA = "0x182592C50")]
|
|
private int Fe32_3(int x)
|
|
{
|
|
int[] array = this.gSBox;
|
|
int length = array.Length;
|
|
return array[this];
|
|
}
|
|
|
|
// Token: 0x0600BD1A RID: 48410 RVA: 0x002A24E0 File Offset: 0x002A06E0
|
|
[Token(Token = "0x600BD1A")]
|
|
[Address(RVA = "0x25911A0", Offset = "0x25901A0", VA = "0x1825911A0")]
|
|
private int BytesTo32Bits(byte[] b, int p)
|
|
{
|
|
int length = b.Length;
|
|
int num = p + 1;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600BD1B RID: 48411 RVA: 0x002A2500 File Offset: 0x002A0700
|
|
[Token(Token = "0x600BD1B")]
|
|
[Address(RVA = "0x2591100", Offset = "0x2590100", VA = "0x182591100")]
|
|
private void Bits32ToBytes(int inData, byte[] b, int offset)
|
|
{
|
|
int num = offset + 1;
|
|
}
|
|
|
|
// Token: 0x04007781 RID: 30593
|
|
[Token(Token = "0x4007781")]
|
|
private static readonly byte[,] P;
|
|
|
|
// Token: 0x04007782 RID: 30594
|
|
[Token(Token = "0x4007782")]
|
|
private const int P_00 = 1;
|
|
|
|
// Token: 0x04007783 RID: 30595
|
|
[Token(Token = "0x4007783")]
|
|
private const int P_01 = 0;
|
|
|
|
// Token: 0x04007784 RID: 30596
|
|
[Token(Token = "0x4007784")]
|
|
private const int P_02 = 0;
|
|
|
|
// Token: 0x04007785 RID: 30597
|
|
[Token(Token = "0x4007785")]
|
|
private const int P_03 = 1;
|
|
|
|
// Token: 0x04007786 RID: 30598
|
|
[Token(Token = "0x4007786")]
|
|
private const int P_04 = 1;
|
|
|
|
// Token: 0x04007787 RID: 30599
|
|
[Token(Token = "0x4007787")]
|
|
private const int P_10 = 0;
|
|
|
|
// Token: 0x04007788 RID: 30600
|
|
[Token(Token = "0x4007788")]
|
|
private const int P_11 = 0;
|
|
|
|
// Token: 0x04007789 RID: 30601
|
|
[Token(Token = "0x4007789")]
|
|
private const int P_12 = 1;
|
|
|
|
// Token: 0x0400778A RID: 30602
|
|
[Token(Token = "0x400778A")]
|
|
private const int P_13 = 1;
|
|
|
|
// Token: 0x0400778B RID: 30603
|
|
[Token(Token = "0x400778B")]
|
|
private const int P_14 = 0;
|
|
|
|
// Token: 0x0400778C RID: 30604
|
|
[Token(Token = "0x400778C")]
|
|
private const int P_20 = 1;
|
|
|
|
// Token: 0x0400778D RID: 30605
|
|
[Token(Token = "0x400778D")]
|
|
private const int P_21 = 1;
|
|
|
|
// Token: 0x0400778E RID: 30606
|
|
[Token(Token = "0x400778E")]
|
|
private const int P_22 = 0;
|
|
|
|
// Token: 0x0400778F RID: 30607
|
|
[Token(Token = "0x400778F")]
|
|
private const int P_23 = 0;
|
|
|
|
// Token: 0x04007790 RID: 30608
|
|
[Token(Token = "0x4007790")]
|
|
private const int P_24 = 0;
|
|
|
|
// Token: 0x04007791 RID: 30609
|
|
[Token(Token = "0x4007791")]
|
|
private const int P_30 = 0;
|
|
|
|
// Token: 0x04007792 RID: 30610
|
|
[Token(Token = "0x4007792")]
|
|
private const int P_31 = 1;
|
|
|
|
// Token: 0x04007793 RID: 30611
|
|
[Token(Token = "0x4007793")]
|
|
private const int P_32 = 1;
|
|
|
|
// Token: 0x04007794 RID: 30612
|
|
[Token(Token = "0x4007794")]
|
|
private const int P_33 = 0;
|
|
|
|
// Token: 0x04007795 RID: 30613
|
|
[Token(Token = "0x4007795")]
|
|
private const int P_34 = 1;
|
|
|
|
// Token: 0x04007796 RID: 30614
|
|
[Token(Token = "0x4007796")]
|
|
private const int GF256_FDBK = 361;
|
|
|
|
// Token: 0x04007797 RID: 30615
|
|
[Token(Token = "0x4007797")]
|
|
private const int GF256_FDBK_2 = 180;
|
|
|
|
// Token: 0x04007798 RID: 30616
|
|
[Token(Token = "0x4007798")]
|
|
private const int GF256_FDBK_4 = 90;
|
|
|
|
// Token: 0x04007799 RID: 30617
|
|
[Token(Token = "0x4007799")]
|
|
private const int RS_GF_FDBK = 333;
|
|
|
|
// Token: 0x0400779A RID: 30618
|
|
[Token(Token = "0x400779A")]
|
|
private const int ROUNDS = 16;
|
|
|
|
// Token: 0x0400779B RID: 30619
|
|
[Token(Token = "0x400779B")]
|
|
private const int MAX_ROUNDS = 16;
|
|
|
|
// Token: 0x0400779C RID: 30620
|
|
[Token(Token = "0x400779C")]
|
|
private const int BLOCK_SIZE = 16;
|
|
|
|
// Token: 0x0400779D RID: 30621
|
|
[Token(Token = "0x400779D")]
|
|
private const int MAX_KEY_BITS = 256;
|
|
|
|
// Token: 0x0400779E RID: 30622
|
|
[Token(Token = "0x400779E")]
|
|
private const int INPUT_WHITEN = 0;
|
|
|
|
// Token: 0x0400779F RID: 30623
|
|
[Token(Token = "0x400779F")]
|
|
private const int OUTPUT_WHITEN = 4;
|
|
|
|
// Token: 0x040077A0 RID: 30624
|
|
[Token(Token = "0x40077A0")]
|
|
private const int ROUND_SUBKEYS = 8;
|
|
|
|
// Token: 0x040077A1 RID: 30625
|
|
[Token(Token = "0x40077A1")]
|
|
private const int TOTAL_SUBKEYS = 40;
|
|
|
|
// Token: 0x040077A2 RID: 30626
|
|
[Token(Token = "0x40077A2")]
|
|
private const int SK_STEP = 33686018;
|
|
|
|
// Token: 0x040077A3 RID: 30627
|
|
[Token(Token = "0x40077A3")]
|
|
private const int SK_BUMP = 16843009;
|
|
|
|
// Token: 0x040077A4 RID: 30628
|
|
[Token(Token = "0x40077A4")]
|
|
private const int SK_ROTL = 9;
|
|
|
|
// Token: 0x040077A5 RID: 30629
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x40077A5")]
|
|
private bool encrypting;
|
|
|
|
// Token: 0x040077A6 RID: 30630
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x40077A6")]
|
|
private int[] gMDS0;
|
|
|
|
// Token: 0x040077A7 RID: 30631
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x40077A7")]
|
|
private int[] gMDS1;
|
|
|
|
// Token: 0x040077A8 RID: 30632
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x40077A8")]
|
|
private int[] gMDS2;
|
|
|
|
// Token: 0x040077A9 RID: 30633
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x40077A9")]
|
|
private int[] gMDS3;
|
|
|
|
// Token: 0x040077AA RID: 30634
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x40077AA")]
|
|
private int[] gSubKeys;
|
|
|
|
// Token: 0x040077AB RID: 30635
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x40077AB")]
|
|
private int[] gSBox;
|
|
|
|
// Token: 0x040077AC RID: 30636
|
|
[FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x40077AC")]
|
|
private int k64Cnt;
|
|
|
|
// Token: 0x040077AD RID: 30637
|
|
[FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x40077AD")]
|
|
private byte[] workingKey;
|
|
}
|
|
}
|