649 lines
21 KiB
C#
649 lines
21 KiB
C#
using System;
|
|
using System.Runtime.CompilerServices;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
|
|
{
|
|
// Token: 0x02001D04 RID: 7428
|
|
[Token(Token = "0x2001D04")]
|
|
public sealed class WhirlpoolDigest : IDigest, IMemoable
|
|
{
|
|
// Token: 0x0600BC1A RID: 48154 RVA: 0x002AB5CC File Offset: 0x002A97CC
|
|
[Token(Token = "0x600BC1A")]
|
|
[Address(RVA = "0x1FE95A0", Offset = "0x1FE83A0", VA = "0x181FE95A0")]
|
|
static WhirlpoolDigest()
|
|
{
|
|
int[] array = new int[256];
|
|
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.840B3A53AAF3595FDF3313D46FFD246A7EA6E89E).FieldHandle);
|
|
WhirlpoolDigest.SBOX = array;
|
|
WhirlpoolDigest.C0 = new long[256];
|
|
WhirlpoolDigest.C1 = new long[256];
|
|
WhirlpoolDigest.C2 = new long[256];
|
|
WhirlpoolDigest.C3 = new long[256];
|
|
WhirlpoolDigest.C4 = new long[256];
|
|
WhirlpoolDigest.C5 = new long[256];
|
|
WhirlpoolDigest.C6 = new long[256];
|
|
WhirlpoolDigest.C7 = new long[256];
|
|
WhirlpoolDigest.EIGHT = new short[32];
|
|
short[] eight = WhirlpoolDigest.EIGHT;
|
|
int num = 0;
|
|
eight[7] = (short)((uint)8);
|
|
int[] sbox = WhirlpoolDigest.SBOX;
|
|
int num2 = sbox[num];
|
|
WhirlpoolDigest.C0[0] = (long)num2;
|
|
WhirlpoolDigest.C1[0] = sbox;
|
|
WhirlpoolDigest.C2[0] = sbox;
|
|
WhirlpoolDigest.C3[0] = sbox;
|
|
WhirlpoolDigest.C4[0] = sbox;
|
|
WhirlpoolDigest.C5[0] = (long)num2;
|
|
WhirlpoolDigest.C6[0] = sbox;
|
|
long[] c = WhirlpoolDigest.C7;
|
|
num++;
|
|
c[0] = (long)num2;
|
|
}
|
|
|
|
// Token: 0x0600BC1B RID: 48155 RVA: 0x002AB70C File Offset: 0x002A990C
|
|
[Token(Token = "0x600BC1B")]
|
|
[Address(RVA = "0x1FE9CB0", Offset = "0x1FE8AB0", VA = "0x181FE9CB0")]
|
|
public WhirlpoolDigest()
|
|
{
|
|
long[] array = new long[11];
|
|
this._rc = array;
|
|
byte[] array2 = new byte[64];
|
|
this._buffer = array2;
|
|
short[] array3 = new short[32];
|
|
this._bitCount = array3;
|
|
long[] array4 = new long[8];
|
|
this._hash = array4;
|
|
long[] array5 = new long[8];
|
|
this._K = array5;
|
|
long[] array6 = new long[8];
|
|
this._L = array6;
|
|
long[] array7 = new long[8];
|
|
this._block = array7;
|
|
long[] array8 = new long[8];
|
|
this._state = array8;
|
|
base..ctor();
|
|
long[] rc = this._rc;
|
|
long[] rc2 = this._rc;
|
|
long[] c = WhirlpoolDigest.C0;
|
|
long[] c2 = WhirlpoolDigest.C1;
|
|
long[] c3 = WhirlpoolDigest.C2;
|
|
long[] c4 = WhirlpoolDigest.C3;
|
|
long[] c5 = WhirlpoolDigest.C4;
|
|
long[] c6 = WhirlpoolDigest.C5;
|
|
long[] c7 = WhirlpoolDigest.C6;
|
|
uint num2;
|
|
long num = WhirlpoolDigest.C7[(int)num2];
|
|
num2 += (uint)8;
|
|
rc2[0] = num;
|
|
ulong num3;
|
|
num3 += (ulong)1L;
|
|
while (num2 <= (uint)80)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600BC1C RID: 48156 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x600BC1C")]
|
|
[Address(RVA = "0x1FEA690", Offset = "0x1FE9490", VA = "0x181FEA690")]
|
|
private static long packIntoLong(int b7, int b6, int b5, int b4, int b3, int b2, int b1, int b0)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x0600BC1D RID: 48157 RVA: 0x002AB814 File Offset: 0x002A9A14
|
|
[Token(Token = "0x600BC1D")]
|
|
[Address(RVA = "0x1FEA670", Offset = "0x1FE9470", VA = "0x181FEA670")]
|
|
private static int maskWithReductionPolynomial(int input)
|
|
{
|
|
return input;
|
|
}
|
|
|
|
// Token: 0x0600BC1E RID: 48158 RVA: 0x002AB824 File Offset: 0x002A9A24
|
|
[Token(Token = "0x600BC1E")]
|
|
[Address(RVA = "0x1FE9BB0", Offset = "0x1FE89B0", VA = "0x181FE9BB0")]
|
|
public WhirlpoolDigest(WhirlpoolDigest originalDigest)
|
|
{
|
|
long[] array = new long[11];
|
|
this._rc = array;
|
|
byte[] array2 = new byte[64];
|
|
this._buffer = array2;
|
|
short[] array3 = new short[32];
|
|
this._bitCount = array3;
|
|
long[] array4 = new long[8];
|
|
this._hash = array4;
|
|
long[] array5 = new long[8];
|
|
this._K = array5;
|
|
long[] array6 = new long[8];
|
|
this._L = array6;
|
|
long[] array7 = new long[8];
|
|
this._block = array7;
|
|
long[] array8 = new long[8];
|
|
this._state = array8;
|
|
base..ctor();
|
|
this.Reset(originalDigest);
|
|
}
|
|
|
|
// Token: 0x17001D2F RID: 7471
|
|
// (get) Token: 0x0600BC1F RID: 48159 RVA: 0x002AB8BC File Offset: 0x002A9ABC
|
|
[Token(Token = "0x17001D2F")]
|
|
public string AlgorithmName
|
|
{
|
|
[Token(Token = "0x600BC1F")]
|
|
[Address(RVA = "0x1FEA4F0", Offset = "0x1FE92F0", VA = "0x181FEA4F0", Slot = "4")]
|
|
get
|
|
{
|
|
return "Whirlpool";
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600BC20 RID: 48160 RVA: 0x002AB8D0 File Offset: 0x002A9AD0
|
|
[Token(Token = "0x600BC20")]
|
|
[Address(RVA = "0x1B31440", Offset = "0x1B30240", VA = "0x181B31440", Slot = "5")]
|
|
public int GetDigestSize()
|
|
{
|
|
return 64;
|
|
}
|
|
|
|
// Token: 0x0600BC21 RID: 48161 RVA: 0x002AB8E0 File Offset: 0x002A9AE0
|
|
[Token(Token = "0x600BC21")]
|
|
[Address(RVA = "0x1FE8F90", Offset = "0x1FE7D90", VA = "0x181FE8F90", Slot = "9")]
|
|
public int DoFinal(byte[] output, int outOff)
|
|
{
|
|
this.finish();
|
|
int num = 0;
|
|
long num2 = this._hash[num];
|
|
int num3 = 0;
|
|
num3++;
|
|
num++;
|
|
short[] bitCount = this._bitCount;
|
|
int length = bitCount.Length;
|
|
int num4 = 0;
|
|
Array.Clear(bitCount, num4, length);
|
|
byte[] buffer = this._buffer;
|
|
int length2 = buffer.Length;
|
|
int num5 = 0;
|
|
Array.Clear(buffer, num5, length2);
|
|
long[] hash = this._hash;
|
|
int length3 = hash.Length;
|
|
int num6 = 0;
|
|
Array.Clear(hash, num6, length3);
|
|
long[] k = this._K;
|
|
int length4 = k.Length;
|
|
int num7 = 0;
|
|
Array.Clear(k, num7, length4);
|
|
long[] l = this._L;
|
|
int length5 = l.Length;
|
|
int num8 = 0;
|
|
Array.Clear(l, num8, length5);
|
|
long[] block = this._block;
|
|
int length6 = block.Length;
|
|
int num9 = 0;
|
|
Array.Clear(block, num9, length6);
|
|
long[] state = this._state;
|
|
int length7 = state.Length;
|
|
int num10 = 0;
|
|
Array.Clear(state, num10, length7);
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600BC22 RID: 48162 RVA: 0x002AB9E8 File Offset: 0x002A9BE8
|
|
[Token(Token = "0x600BC22")]
|
|
[Address(RVA = "0x1FE9170", Offset = "0x1FE7F70", VA = "0x181FE9170", Slot = "10")]
|
|
public void Reset()
|
|
{
|
|
this._bufferPos = (int)((ulong)0L);
|
|
short[] bitCount = this._bitCount;
|
|
int length = bitCount.Length;
|
|
int num = 0;
|
|
Array.Clear(bitCount, num, length);
|
|
byte[] buffer = this._buffer;
|
|
int length2 = buffer.Length;
|
|
int num2 = 0;
|
|
Array.Clear(buffer, num2, length2);
|
|
long[] hash = this._hash;
|
|
int length3 = hash.Length;
|
|
int num3 = 0;
|
|
Array.Clear(hash, num3, length3);
|
|
long[] k = this._K;
|
|
int length4 = k.Length;
|
|
int num4 = 0;
|
|
Array.Clear(k, num4, length4);
|
|
long[] l = this._L;
|
|
int length5 = l.Length;
|
|
int num5 = 0;
|
|
Array.Clear(l, num5, length5);
|
|
long[] block = this._block;
|
|
int length6 = block.Length;
|
|
int num6 = 0;
|
|
Array.Clear(block, num6, length6);
|
|
long[] state = this._state;
|
|
int length7 = state.Length;
|
|
int num7 = 0;
|
|
Array.Clear(state, num7, length7);
|
|
}
|
|
|
|
// Token: 0x0600BC23 RID: 48163 RVA: 0x002ABAD4 File Offset: 0x002A9CD4
|
|
[Token(Token = "0x600BC23")]
|
|
[Address(RVA = "0x1FEB440", Offset = "0x1FEA240", VA = "0x181FEB440")]
|
|
private void processFilledBuffer()
|
|
{
|
|
long[] state = this._state;
|
|
int num = 0;
|
|
int num2 = 0;
|
|
if (num2 < state.Length)
|
|
{
|
|
long[] block = this._block;
|
|
byte[] buffer = this._buffer;
|
|
num++;
|
|
long num3;
|
|
block[0] = num3;
|
|
long[] state2 = this._state;
|
|
}
|
|
this.processBlock();
|
|
byte[] buffer2 = this._buffer;
|
|
this._bufferPos = (int)((ulong)0L);
|
|
int length = buffer2.Length;
|
|
int num4 = 0;
|
|
Array.Clear(buffer2, num4, length);
|
|
}
|
|
|
|
// Token: 0x0600BC24 RID: 48164 RVA: 0x002ABB54 File Offset: 0x002A9D54
|
|
[Token(Token = "0x600BC24")]
|
|
[Address(RVA = "0x1FEA0B0", Offset = "0x1FE8EB0", VA = "0x181FEA0B0")]
|
|
private static long bytesToLongFromBuffer(byte[] buffer, int startPos)
|
|
{
|
|
int length = buffer.Length;
|
|
int num = startPos + 1;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600BC25 RID: 48165 RVA: 0x002ABB74 File Offset: 0x002A9D74
|
|
[Token(Token = "0x600BC25")]
|
|
[Address(RVA = "0x1FEA260", Offset = "0x1FE9060", VA = "0x181FEA260")]
|
|
private static void convertLongToByteArray(long inputLong, byte[] outputArray, int offSet)
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600BC26 RID: 48166 RVA: 0x002ABB88 File Offset: 0x002A9D88
|
|
[Token(Token = "0x600BC26")]
|
|
[Address(RVA = "0x1FEA6F0", Offset = "0x1FE94F0", VA = "0x181FEA6F0")]
|
|
private void processBlock()
|
|
{
|
|
int num = 0;
|
|
long[] block = this._block;
|
|
long[] state = this._state;
|
|
long[] hash = this._hash;
|
|
long[] k = this._K;
|
|
long num2 = hash[num];
|
|
k[0] = num2;
|
|
num++;
|
|
state[0] = num2;
|
|
this._L[0] = (long)num;
|
|
long[] l = this._L;
|
|
long[] k2 = this._K;
|
|
long[] c = WhirlpoolDigest.C0;
|
|
long[] l2 = this._L;
|
|
long[] c2 = WhirlpoolDigest.C1;
|
|
long[] k3 = this._K;
|
|
long[] l3 = this._L;
|
|
long[] c3 = WhirlpoolDigest.C2;
|
|
long[] k4 = this._K;
|
|
long[] l4 = this._L;
|
|
long[] c4 = WhirlpoolDigest.C3;
|
|
long[] k5 = this._K;
|
|
long[] l5 = this._L;
|
|
long[] c5 = WhirlpoolDigest.C4;
|
|
long[] k6 = this._K;
|
|
long[] l6 = this._L;
|
|
long[] c6 = WhirlpoolDigest.C5;
|
|
long[] k7 = this._K;
|
|
long[] l7 = this._L;
|
|
long[] c7 = WhirlpoolDigest.C6;
|
|
long[] k8 = this._K;
|
|
long[] l8 = this._L;
|
|
long[] c8 = WhirlpoolDigest.C7;
|
|
long[] k9 = this._K;
|
|
num++;
|
|
long[] k10 = this._K;
|
|
int length = k10.Length;
|
|
int num3 = 0;
|
|
long[] l9 = this._L;
|
|
int num4 = 0;
|
|
Array.Copy(l9, num4, k10, num3, length);
|
|
long[] k11 = this._K;
|
|
long[] rc = this._rc;
|
|
long[] k12 = this._K;
|
|
long[] l10 = this._L;
|
|
long num5 = k12[num];
|
|
l10[0] = num5;
|
|
long[] l11 = this._L;
|
|
long[] state2 = this._state;
|
|
long[] c9 = WhirlpoolDigest.C0;
|
|
long[] l12 = this._L;
|
|
long[] c10 = WhirlpoolDigest.C1;
|
|
long[] state3 = this._state;
|
|
long[] l13 = this._L;
|
|
long[] c11 = WhirlpoolDigest.C2;
|
|
long[] state4 = this._state;
|
|
long[] l14 = this._L;
|
|
long[] c12 = WhirlpoolDigest.C3;
|
|
long[] state5 = this._state;
|
|
long[] l15 = this._L;
|
|
long[] c13 = WhirlpoolDigest.C4;
|
|
long[] state6 = this._state;
|
|
long[] l16 = this._L;
|
|
long[] c14 = WhirlpoolDigest.C5;
|
|
long[] state7 = this._state;
|
|
long[] l17 = this._L;
|
|
long[] c15 = WhirlpoolDigest.C6;
|
|
long[] state8 = this._state;
|
|
long[] l18 = this._L;
|
|
long[] c16 = WhirlpoolDigest.C7;
|
|
long[] state9 = this._state;
|
|
num++;
|
|
long[] state10 = this._state;
|
|
int length2 = state10.Length;
|
|
int num6 = 0;
|
|
long[] l19 = this._L;
|
|
int num7 = 0;
|
|
Array.Copy(l19, num7, state10, num6, length2);
|
|
while ((ulong)((uint)1) <= (ulong)10L)
|
|
{
|
|
}
|
|
long[] hash2 = this._hash;
|
|
long[] state11 = this._state;
|
|
long num8 = this._block[num];
|
|
num++;
|
|
}
|
|
|
|
// Token: 0x0600BC27 RID: 48167 RVA: 0x002ABE1C File Offset: 0x002AA01C
|
|
[Token(Token = "0x600BC27")]
|
|
[Address(RVA = "0x1FE9400", Offset = "0x1FE8200", VA = "0x181FE9400", Slot = "7")]
|
|
public void Update(byte input)
|
|
{
|
|
byte[] buffer = this._buffer;
|
|
int bufferPos = this._bufferPos;
|
|
int num = this._bufferPos;
|
|
byte[] buffer2 = this._buffer;
|
|
num++;
|
|
this._bufferPos = num;
|
|
if (num == buffer2.Length)
|
|
{
|
|
this.processFilledBuffer();
|
|
}
|
|
int length = this._bitCount.Length;
|
|
short[] bitCount = this._bitCount;
|
|
short[] eight = WhirlpoolDigest.EIGHT;
|
|
short[] bitCount2 = this._bitCount;
|
|
}
|
|
|
|
// Token: 0x0600BC28 RID: 48168 RVA: 0x002ABE8C File Offset: 0x002AA08C
|
|
[Token(Token = "0x600BC28")]
|
|
[Address(RVA = "0x1FEA520", Offset = "0x1FE9320", VA = "0x181FEA520")]
|
|
private void increment()
|
|
{
|
|
int length = this._bitCount.Length;
|
|
short[] bitCount = this._bitCount;
|
|
short[] eight = WhirlpoolDigest.EIGHT;
|
|
short[] bitCount2 = this._bitCount;
|
|
}
|
|
|
|
// Token: 0x0600BC29 RID: 48169 RVA: 0x002ABEC0 File Offset: 0x002AA0C0
|
|
[Token(Token = "0x600BC29")]
|
|
[Address(RVA = "0x1FE8DF0", Offset = "0x1FE7BF0", VA = "0x181FE8DF0", Slot = "8")]
|
|
public void BlockUpdate(byte[] input, int inOff, int length)
|
|
{
|
|
if (length > 0)
|
|
{
|
|
byte b;
|
|
this.Update(b);
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600BC2A RID: 48170 RVA: 0x002ABEE0 File Offset: 0x002AA0E0
|
|
[Token(Token = "0x600BC2A")]
|
|
[Address(RVA = "0x1FEA370", Offset = "0x1FE9170", VA = "0x181FEA370")]
|
|
private void finish()
|
|
{
|
|
byte[] array = new byte[32];
|
|
int num = 0;
|
|
int num2 = 0;
|
|
int length = array.Length;
|
|
if (num2 < length)
|
|
{
|
|
short num3 = this._bitCount[num];
|
|
num++;
|
|
}
|
|
int bufferPos = this._bufferPos;
|
|
byte[] buffer = this._buffer;
|
|
int num4 = bufferPos + 1;
|
|
this._bufferPos = num4;
|
|
byte[] buffer2 = this._buffer;
|
|
int bufferPos2;
|
|
if (this._bufferPos == buffer2.Length)
|
|
{
|
|
this.processFilledBuffer();
|
|
bufferPos2 = this._bufferPos;
|
|
}
|
|
if (bufferPos2 > 32)
|
|
{
|
|
if (bufferPos2 == 0)
|
|
{
|
|
goto IL_A4;
|
|
}
|
|
int num5 = 0;
|
|
this.Update((byte)num5);
|
|
while (this.C3 != (ulong)0L)
|
|
{
|
|
}
|
|
}
|
|
int num6 = 0;
|
|
this.Update((byte)num6);
|
|
while (this.C3 <= (ulong)32L)
|
|
{
|
|
}
|
|
IL_A4:
|
|
int length2 = array.Length;
|
|
byte[] buffer3 = this._buffer;
|
|
int num7 = 0;
|
|
Array.Copy(array, num7, buffer3, 32, length2);
|
|
this.processFilledBuffer();
|
|
}
|
|
|
|
// Token: 0x0600BC2B RID: 48171 RVA: 0x002ABFC0 File Offset: 0x002AA1C0
|
|
[Token(Token = "0x600BC2B")]
|
|
[Address(RVA = "0x1FEA2D0", Offset = "0x1FE90D0", VA = "0x181FEA2D0")]
|
|
private byte[] copyBitLength()
|
|
{
|
|
byte[] array = new byte[32];
|
|
int num = 0;
|
|
int length = array.Length;
|
|
if (num < length)
|
|
{
|
|
short num2 = this._bitCount[num];
|
|
num++;
|
|
}
|
|
return array;
|
|
}
|
|
|
|
// Token: 0x0600BC2C RID: 48172 RVA: 0x002ABFFC File Offset: 0x002AA1FC
|
|
[Token(Token = "0x600BC2C")]
|
|
[Address(RVA = "0x1B31440", Offset = "0x1B30240", VA = "0x181B31440", Slot = "6")]
|
|
public int GetByteLength()
|
|
{
|
|
return 64;
|
|
}
|
|
|
|
// Token: 0x0600BC2D RID: 48173 RVA: 0x002AC00C File Offset: 0x002AA20C
|
|
[Token(Token = "0x600BC2D")]
|
|
[Address(RVA = "0x1FE8E70", Offset = "0x1FE7C70", VA = "0x181FE8E70", Slot = "11")]
|
|
public IMemoable Copy()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600BC2D)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.WhirlpoolDigest::Copy()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:WhirlpoolDigest(var_0_05, newobj:WhirlpoolDigest(WhirlpoolDigest::.ctor))
|
|
stloc:int64[](var_1_0D, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(11)))
|
|
stfld:int64[](WhirlpoolDigest::_rc, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_1_0D))
|
|
stloc:uint8[](var_2_1C, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(64)))
|
|
stfld:uint8[](WhirlpoolDigest::_buffer, ldloc:WhirlpoolDigest(var_0_05), ldloc:uint8[](var_2_1C))
|
|
stloc:int16[](var_3_2B, newarr:int16[]([mscorlib]System.Int16, ldc.i4:int32(32)))
|
|
stfld:int16[](WhirlpoolDigest::_bitCount, ldloc:WhirlpoolDigest(var_0_05), ldloc:int16[](var_3_2B))
|
|
stloc:int64[](var_4_39, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(8)))
|
|
stfld:int64[](WhirlpoolDigest::_hash, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_4_39))
|
|
stloc:int64[](var_5_49, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(8)))
|
|
stfld:int64[](WhirlpoolDigest::_K, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_5_49))
|
|
stloc:int64[](var_6_59, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(8)))
|
|
stfld:int64[](WhirlpoolDigest::_L, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_6_59))
|
|
stloc:int64[](var_7_69, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(8)))
|
|
stfld:int64[](WhirlpoolDigest::_block, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_7_69))
|
|
stloc:int64[](var_8_79, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(8)))
|
|
stfld:int64[](WhirlpoolDigest::_state, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_8_79))
|
|
call:void(WhirlpoolDigest::Reset, ldloc:WhirlpoolDigest(var_0_05), ldloc:WhirlpoolDigest[exp:IMemoable](this))
|
|
}
|
|
|
|
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: 0x0600BC2E RID: 48174 RVA: 0x002AC0A4 File Offset: 0x002AA2A4
|
|
[Token(Token = "0x600BC2E")]
|
|
[Address(RVA = "0x1FE9240", Offset = "0x1FE8040", VA = "0x181FE9240", Slot = "12")]
|
|
public void Reset(IMemoable other)
|
|
{
|
|
while (other == 0)
|
|
{
|
|
}
|
|
int length = this._rc.Length;
|
|
int length2 = this._buffer.Length;
|
|
short[] bitCount = this._bitCount;
|
|
this._bufferPos = length2;
|
|
int length3 = bitCount.Length;
|
|
int length4 = this._hash.Length;
|
|
int length5 = this._K.Length;
|
|
int length6 = this._L.Length;
|
|
int length7 = this._block.Length;
|
|
int length8 = this._state.Length;
|
|
}
|
|
|
|
// Token: 0x04007774 RID: 30580
|
|
[Token(Token = "0x4007774")]
|
|
private const int BYTE_LENGTH = 64;
|
|
|
|
// Token: 0x04007775 RID: 30581
|
|
[Token(Token = "0x4007775")]
|
|
private const int DIGEST_LENGTH_BYTES = 64;
|
|
|
|
// Token: 0x04007776 RID: 30582
|
|
[Token(Token = "0x4007776")]
|
|
private const int ROUNDS = 10;
|
|
|
|
// Token: 0x04007777 RID: 30583
|
|
[Token(Token = "0x4007777")]
|
|
private const int REDUCTION_POLYNOMIAL = 285;
|
|
|
|
// Token: 0x04007778 RID: 30584
|
|
[Token(Token = "0x4007778")]
|
|
private static readonly int[] SBOX;
|
|
|
|
// Token: 0x04007779 RID: 30585
|
|
[Token(Token = "0x4007779")]
|
|
private static readonly long[] C0;
|
|
|
|
// Token: 0x0400777A RID: 30586
|
|
[Token(Token = "0x400777A")]
|
|
private static readonly long[] C1;
|
|
|
|
// Token: 0x0400777B RID: 30587
|
|
[Token(Token = "0x400777B")]
|
|
private static readonly long[] C2;
|
|
|
|
// Token: 0x0400777C RID: 30588
|
|
[Token(Token = "0x400777C")]
|
|
private static readonly long[] C3;
|
|
|
|
// Token: 0x0400777D RID: 30589
|
|
[Token(Token = "0x400777D")]
|
|
private static readonly long[] C4;
|
|
|
|
// Token: 0x0400777E RID: 30590
|
|
[Token(Token = "0x400777E")]
|
|
private static readonly long[] C5;
|
|
|
|
// Token: 0x0400777F RID: 30591
|
|
[Token(Token = "0x400777F")]
|
|
private static readonly long[] C6;
|
|
|
|
// Token: 0x04007780 RID: 30592
|
|
[Token(Token = "0x4007780")]
|
|
private static readonly long[] C7;
|
|
|
|
// Token: 0x04007781 RID: 30593
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4007781")]
|
|
private readonly long[] _rc;
|
|
|
|
// Token: 0x04007782 RID: 30594
|
|
[Token(Token = "0x4007782")]
|
|
private static readonly short[] EIGHT;
|
|
|
|
// Token: 0x04007783 RID: 30595
|
|
[Token(Token = "0x4007783")]
|
|
private const int BITCOUNT_ARRAY_SIZE = 32;
|
|
|
|
// Token: 0x04007784 RID: 30596
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4007784")]
|
|
private byte[] _buffer;
|
|
|
|
// Token: 0x04007785 RID: 30597
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4007785")]
|
|
private int _bufferPos;
|
|
|
|
// Token: 0x04007786 RID: 30598
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4007786")]
|
|
private short[] _bitCount;
|
|
|
|
// Token: 0x04007787 RID: 30599
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4007787")]
|
|
private long[] _hash;
|
|
|
|
// Token: 0x04007788 RID: 30600
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x4007788")]
|
|
private long[] _K;
|
|
|
|
// Token: 0x04007789 RID: 30601
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x4007789")]
|
|
private long[] _L;
|
|
|
|
// Token: 0x0400778A RID: 30602
|
|
[FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x400778A")]
|
|
private long[] _block;
|
|
|
|
// Token: 0x0400778B RID: 30603
|
|
[FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x400778B")]
|
|
private long[] _state;
|
|
}
|
|
}
|