673 lines
22 KiB
C#
673 lines
22 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
|
{
|
|
// Token: 0x020016DA RID: 5850
|
|
[Token(Token = "0x20016DA")]
|
|
[StructLayout(3)]
|
|
public sealed class TwofishEngine : IBlockCipher
|
|
{
|
|
// Token: 0x06009D5B RID: 40283 RVA: 0x00240FFC File Offset: 0x0023F1FC
|
|
[Token(Token = "0x6009D5B")]
|
|
[Address(RVA = "0x1F60D30", Offset = "0x1F5F730", VA = "0x181F60D30")]
|
|
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: 0x06009D5C RID: 40284 RVA: 0x00241138 File Offset: 0x0023F338
|
|
[Token(Token = "0x6009D5C")]
|
|
[Address(RVA = "0x1F5FB10", Offset = "0x1F5E510", VA = "0x181F5FB10", Slot = "5")]
|
|
public void Init(bool forEncryption, ICipherParameters parameters)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06009D5C)
|
|
|
|
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: 0x170018FA RID: 6394
|
|
// (get) Token: 0x06009D5D RID: 40285 RVA: 0x002411A0 File Offset: 0x0023F3A0
|
|
[Token(Token = "0x170018FA")]
|
|
public string AlgorithmName
|
|
{
|
|
[Token(Token = "0x6009D5D")]
|
|
[Address(RVA = "0x1F61250", Offset = "0x1F5FC50", VA = "0x181F61250", Slot = "4")]
|
|
get
|
|
{
|
|
return "Twofish";
|
|
}
|
|
}
|
|
|
|
// Token: 0x170018FB RID: 6395
|
|
// (get) Token: 0x06009D5E RID: 40286 RVA: 0x002411B4 File Offset: 0x0023F3B4
|
|
[Token(Token = "0x170018FB")]
|
|
public bool IsPartialBlockOkay
|
|
{
|
|
[Token(Token = "0x6009D5E")]
|
|
[Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "7")]
|
|
get
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009D5F RID: 40287 RVA: 0x002411C4 File Offset: 0x0023F3C4
|
|
[Token(Token = "0x6009D5F")]
|
|
[Address(RVA = "0x1F5FDC0", Offset = "0x1F5E7C0", VA = "0x181F5FDC0", Slot = "8")]
|
|
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06009D5F)
|
|
|
|
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: 0x06009D60 RID: 40288 RVA: 0x00241204 File Offset: 0x0023F404
|
|
[Token(Token = "0x6009D60")]
|
|
[Address(RVA = "0x1F5FFE0", Offset = "0x1F5E9E0", VA = "0x181F5FFE0", Slot = "9")]
|
|
public void Reset()
|
|
{
|
|
byte[] array = this.workingKey;
|
|
if (array != 0)
|
|
{
|
|
this.SetKey(array);
|
|
return;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009D61 RID: 40289 RVA: 0x00241224 File Offset: 0x0023F424
|
|
[Token(Token = "0x6009D61")]
|
|
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "6")]
|
|
public int GetBlockSize()
|
|
{
|
|
return 16;
|
|
}
|
|
|
|
// Token: 0x06009D62 RID: 40290 RVA: 0x00241234 File Offset: 0x0023F434
|
|
[Token(Token = "0x6009D62")]
|
|
[Address(RVA = "0x1F60000", Offset = "0x1F5EA00", VA = "0x181F60000")]
|
|
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: 0x06009D63 RID: 40291 RVA: 0x002415B8 File Offset: 0x0023F7B8
|
|
[Token(Token = "0x6009D63")]
|
|
[Address(RVA = "0x1F5E8A0", Offset = "0x1F5D2A0", VA = "0x181F5E8A0")]
|
|
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: 0x06009D64 RID: 40292 RVA: 0x00241748 File Offset: 0x0023F948
|
|
[Token(Token = "0x6009D64")]
|
|
[Address(RVA = "0x1F5E040", Offset = "0x1F5CA40", VA = "0x181F5E040")]
|
|
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: 0x06009D65 RID: 40293 RVA: 0x00241904 File Offset: 0x0023FB04
|
|
[Token(Token = "0x6009D65")]
|
|
[Address(RVA = "0x1F5F100", Offset = "0x1F5DB00", VA = "0x181F5F100")]
|
|
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: 0x06009D66 RID: 40294 RVA: 0x002419DC File Offset: 0x0023FBDC
|
|
[Token(Token = "0x6009D66")]
|
|
[Address(RVA = "0x1F5FEC0", Offset = "0x1F5E8C0", VA = "0x181F5FEC0")]
|
|
private int RS_MDS_Encode(int k0, int k1)
|
|
{
|
|
return k1;
|
|
}
|
|
|
|
// Token: 0x06009D67 RID: 40295 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6009D67")]
|
|
[Address(RVA = "0x1F5FF90", Offset = "0x1F5E990", VA = "0x181F5FF90")]
|
|
private int RS_rem(int x)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06009D68 RID: 40296 RVA: 0x002419EC File Offset: 0x0023FBEC
|
|
[Token(Token = "0x6009D68")]
|
|
[Address(RVA = "0x1F5FCD0", Offset = "0x1F5E6D0", VA = "0x181F5FCD0")]
|
|
private int LFSR1(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x06009D69 RID: 40297 RVA: 0x002419FC File Offset: 0x0023FBFC
|
|
[Token(Token = "0x6009D69")]
|
|
[Address(RVA = "0x1F5FCF0", Offset = "0x1F5E6F0", VA = "0x181F5FCF0")]
|
|
private int LFSR2(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x06009D6A RID: 40298 RVA: 0x00241A0C File Offset: 0x0023FC0C
|
|
[Token(Token = "0x6009D6A")]
|
|
[Address(RVA = "0x1F5FD50", Offset = "0x1F5E750", VA = "0x181F5FD50")]
|
|
private int Mx_X(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x06009D6B RID: 40299 RVA: 0x00241A1C File Offset: 0x0023FC1C
|
|
[Token(Token = "0x6009D6B")]
|
|
[Address(RVA = "0x1F5FD80", Offset = "0x1F5E780", VA = "0x181F5FD80")]
|
|
private int Mx_Y(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x06009D6C RID: 40300 RVA: 0x00241A2C File Offset: 0x0023FC2C
|
|
[Token(Token = "0x6009D6C")]
|
|
[Address(RVA = "0x1347340", Offset = "0x1345D40", VA = "0x181347340")]
|
|
private int M_b0(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x06009D6D RID: 40301 RVA: 0x00241A3C File Offset: 0x0023FC3C
|
|
[Token(Token = "0x6009D6D")]
|
|
[Address(RVA = "0x1F5FD20", Offset = "0x1F5E720", VA = "0x181F5FD20")]
|
|
private int M_b1(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x06009D6E RID: 40302 RVA: 0x00241A4C File Offset: 0x0023FC4C
|
|
[Token(Token = "0x6009D6E")]
|
|
[Address(RVA = "0x1F5FD30", Offset = "0x1F5E730", VA = "0x181F5FD30")]
|
|
private int M_b2(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x06009D6F RID: 40303 RVA: 0x00241A5C File Offset: 0x0023FC5C
|
|
[Token(Token = "0x6009D6F")]
|
|
[Address(RVA = "0x1F5FD40", Offset = "0x1F5E740", VA = "0x181F5FD40")]
|
|
private int M_b3(int x)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x06009D70 RID: 40304 RVA: 0x00241A6C File Offset: 0x0023FC6C
|
|
[Token(Token = "0x6009D70")]
|
|
[Address(RVA = "0x1F5F970", Offset = "0x1F5E370", VA = "0x181F5F970")]
|
|
private int Fe32_0(int x)
|
|
{
|
|
int[] array = this.gSBox;
|
|
int length = array.Length;
|
|
return array[x];
|
|
}
|
|
|
|
// Token: 0x06009D71 RID: 40305 RVA: 0x00241A94 File Offset: 0x0023FC94
|
|
[Token(Token = "0x6009D71")]
|
|
[Address(RVA = "0x1F5FA40", Offset = "0x1F5E440", VA = "0x181F5FA40")]
|
|
private int Fe32_3(int x)
|
|
{
|
|
int[] array = this.gSBox;
|
|
int length = array.Length;
|
|
return array[this];
|
|
}
|
|
|
|
// Token: 0x06009D72 RID: 40306 RVA: 0x00241ABC File Offset: 0x0023FCBC
|
|
[Token(Token = "0x6009D72")]
|
|
[Address(RVA = "0x1F5DF90", Offset = "0x1F5C990", VA = "0x181F5DF90")]
|
|
private int BytesTo32Bits(byte[] b, int p)
|
|
{
|
|
int length = b.Length;
|
|
int num = p + 1;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009D73 RID: 40307 RVA: 0x00241ADC File Offset: 0x0023FCDC
|
|
[Token(Token = "0x6009D73")]
|
|
[Address(RVA = "0x1F5DEF0", Offset = "0x1F5C8F0", VA = "0x181F5DEF0")]
|
|
private void Bits32ToBytes(int inData, byte[] b, int offset)
|
|
{
|
|
int num = offset + 1;
|
|
}
|
|
|
|
// Token: 0x04006785 RID: 26501
|
|
[Token(Token = "0x4006785")]
|
|
private static readonly byte[,] P;
|
|
|
|
// Token: 0x04006786 RID: 26502
|
|
[Token(Token = "0x4006786")]
|
|
private const int P_00 = 1;
|
|
|
|
// Token: 0x04006787 RID: 26503
|
|
[Token(Token = "0x4006787")]
|
|
private const int P_01 = 0;
|
|
|
|
// Token: 0x04006788 RID: 26504
|
|
[Token(Token = "0x4006788")]
|
|
private const int P_02 = 0;
|
|
|
|
// Token: 0x04006789 RID: 26505
|
|
[Token(Token = "0x4006789")]
|
|
private const int P_03 = 1;
|
|
|
|
// Token: 0x0400678A RID: 26506
|
|
[Token(Token = "0x400678A")]
|
|
private const int P_04 = 1;
|
|
|
|
// Token: 0x0400678B RID: 26507
|
|
[Token(Token = "0x400678B")]
|
|
private const int P_10 = 0;
|
|
|
|
// Token: 0x0400678C RID: 26508
|
|
[Token(Token = "0x400678C")]
|
|
private const int P_11 = 0;
|
|
|
|
// Token: 0x0400678D RID: 26509
|
|
[Token(Token = "0x400678D")]
|
|
private const int P_12 = 1;
|
|
|
|
// Token: 0x0400678E RID: 26510
|
|
[Token(Token = "0x400678E")]
|
|
private const int P_13 = 1;
|
|
|
|
// Token: 0x0400678F RID: 26511
|
|
[Token(Token = "0x400678F")]
|
|
private const int P_14 = 0;
|
|
|
|
// Token: 0x04006790 RID: 26512
|
|
[Token(Token = "0x4006790")]
|
|
private const int P_20 = 1;
|
|
|
|
// Token: 0x04006791 RID: 26513
|
|
[Token(Token = "0x4006791")]
|
|
private const int P_21 = 1;
|
|
|
|
// Token: 0x04006792 RID: 26514
|
|
[Token(Token = "0x4006792")]
|
|
private const int P_22 = 0;
|
|
|
|
// Token: 0x04006793 RID: 26515
|
|
[Token(Token = "0x4006793")]
|
|
private const int P_23 = 0;
|
|
|
|
// Token: 0x04006794 RID: 26516
|
|
[Token(Token = "0x4006794")]
|
|
private const int P_24 = 0;
|
|
|
|
// Token: 0x04006795 RID: 26517
|
|
[Token(Token = "0x4006795")]
|
|
private const int P_30 = 0;
|
|
|
|
// Token: 0x04006796 RID: 26518
|
|
[Token(Token = "0x4006796")]
|
|
private const int P_31 = 1;
|
|
|
|
// Token: 0x04006797 RID: 26519
|
|
[Token(Token = "0x4006797")]
|
|
private const int P_32 = 1;
|
|
|
|
// Token: 0x04006798 RID: 26520
|
|
[Token(Token = "0x4006798")]
|
|
private const int P_33 = 0;
|
|
|
|
// Token: 0x04006799 RID: 26521
|
|
[Token(Token = "0x4006799")]
|
|
private const int P_34 = 1;
|
|
|
|
// Token: 0x0400679A RID: 26522
|
|
[Token(Token = "0x400679A")]
|
|
private const int GF256_FDBK = 361;
|
|
|
|
// Token: 0x0400679B RID: 26523
|
|
[Token(Token = "0x400679B")]
|
|
private const int GF256_FDBK_2 = 180;
|
|
|
|
// Token: 0x0400679C RID: 26524
|
|
[Token(Token = "0x400679C")]
|
|
private const int GF256_FDBK_4 = 90;
|
|
|
|
// Token: 0x0400679D RID: 26525
|
|
[Token(Token = "0x400679D")]
|
|
private const int RS_GF_FDBK = 333;
|
|
|
|
// Token: 0x0400679E RID: 26526
|
|
[Token(Token = "0x400679E")]
|
|
private const int ROUNDS = 16;
|
|
|
|
// Token: 0x0400679F RID: 26527
|
|
[Token(Token = "0x400679F")]
|
|
private const int MAX_ROUNDS = 16;
|
|
|
|
// Token: 0x040067A0 RID: 26528
|
|
[Token(Token = "0x40067A0")]
|
|
private const int BLOCK_SIZE = 16;
|
|
|
|
// Token: 0x040067A1 RID: 26529
|
|
[Token(Token = "0x40067A1")]
|
|
private const int MAX_KEY_BITS = 256;
|
|
|
|
// Token: 0x040067A2 RID: 26530
|
|
[Token(Token = "0x40067A2")]
|
|
private const int INPUT_WHITEN = 0;
|
|
|
|
// Token: 0x040067A3 RID: 26531
|
|
[Token(Token = "0x40067A3")]
|
|
private const int OUTPUT_WHITEN = 4;
|
|
|
|
// Token: 0x040067A4 RID: 26532
|
|
[Token(Token = "0x40067A4")]
|
|
private const int ROUND_SUBKEYS = 8;
|
|
|
|
// Token: 0x040067A5 RID: 26533
|
|
[Token(Token = "0x40067A5")]
|
|
private const int TOTAL_SUBKEYS = 40;
|
|
|
|
// Token: 0x040067A6 RID: 26534
|
|
[Token(Token = "0x40067A6")]
|
|
private const int SK_STEP = 33686018;
|
|
|
|
// Token: 0x040067A7 RID: 26535
|
|
[Token(Token = "0x40067A7")]
|
|
private const int SK_BUMP = 16843009;
|
|
|
|
// Token: 0x040067A8 RID: 26536
|
|
[Token(Token = "0x40067A8")]
|
|
private const int SK_ROTL = 9;
|
|
|
|
// Token: 0x040067A9 RID: 26537
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x40067A9")]
|
|
private bool encrypting;
|
|
|
|
// Token: 0x040067AA RID: 26538
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x40067AA")]
|
|
private int[] gMDS0;
|
|
|
|
// Token: 0x040067AB RID: 26539
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x40067AB")]
|
|
private int[] gMDS1;
|
|
|
|
// Token: 0x040067AC RID: 26540
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x40067AC")]
|
|
private int[] gMDS2;
|
|
|
|
// Token: 0x040067AD RID: 26541
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x40067AD")]
|
|
private int[] gMDS3;
|
|
|
|
// Token: 0x040067AE RID: 26542
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x40067AE")]
|
|
private int[] gSubKeys;
|
|
|
|
// Token: 0x040067AF RID: 26543
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x40067AF")]
|
|
private int[] gSBox;
|
|
|
|
// Token: 0x040067B0 RID: 26544
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x40067B0")]
|
|
private int k64Cnt;
|
|
|
|
// Token: 0x040067B1 RID: 26545
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x40067B1")]
|
|
private byte[] workingKey;
|
|
}
|
|
}
|