576 lines
21 KiB
C#
576 lines
21 KiB
C#
using System;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Runtime.InteropServices;
|
|
using System.Runtime.Serialization.Formatters.Binary;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
|
|
{
|
|
// Token: 0x02001704 RID: 5892
|
|
[Token(Token = "0x2001704")]
|
|
[StructLayout(3)]
|
|
public class Blake2sDigest : IDigest
|
|
{
|
|
// Token: 0x06009E39 RID: 40505 RVA: 0x0024555C File Offset: 0x0024375C
|
|
[Token(Token = "0x6009E39")]
|
|
[Address(RVA = "0x2176680", Offset = "0x2175080", VA = "0x182176680")]
|
|
public Blake2sDigest()
|
|
{
|
|
this.digestLength = (int)((ulong)32L);
|
|
uint[] array = new uint[16];
|
|
this.internalState = array;
|
|
base..ctor();
|
|
byte[] array2 = new byte[64];
|
|
this.buffer = array2;
|
|
this.digestLength = (int)((ulong)32L);
|
|
this.Init();
|
|
}
|
|
|
|
// Token: 0x06009E3A RID: 40506 RVA: 0x002455A8 File Offset: 0x002437A8
|
|
[Token(Token = "0x6009E3A")]
|
|
[Address(RVA = "0x2176130", Offset = "0x2174B30", VA = "0x182176130")]
|
|
public Blake2sDigest(Blake2sDigest digest)
|
|
{
|
|
this.digestLength = (int)((ulong)32L);
|
|
uint[] array = new uint[16];
|
|
this.internalState = array;
|
|
base..ctor();
|
|
int num = digest.bufferPos;
|
|
this.bufferPos = num;
|
|
byte[] array2 = Arrays.Clone(digest.buffer);
|
|
this.buffer = array2;
|
|
int num2 = digest.keyLength;
|
|
this.keyLength = num2;
|
|
byte[] array3 = Arrays.Clone(digest.key);
|
|
this.key = array3;
|
|
int num3 = digest.digestLength;
|
|
this.digestLength = num3;
|
|
uint[] array4 = Arrays.Clone(digest.chainValue);
|
|
this.chainValue = array4;
|
|
byte[] array5 = Arrays.Clone(digest.personalization);
|
|
this.personalization = array5;
|
|
}
|
|
|
|
// Token: 0x06009E3B RID: 40507 RVA: 0x00245658 File Offset: 0x00243858
|
|
[Token(Token = "0x6009E3B")]
|
|
[Address(RVA = "0x2176340", Offset = "0x2174D40", VA = "0x182176340")]
|
|
public Blake2sDigest(int digestBits)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06009E3B)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Blake2sDigest::.ctor(System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_57:
|
|
stloc:ArgumentException(var_5_61, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("BLAKE2s digest bit length must be a multiple of 8 and not greater than 256")))
|
|
}
|
|
|
|
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: 0x06009E3C RID: 40508 RVA: 0x002456C8 File Offset: 0x002438C8
|
|
[Token(Token = "0x6009E3C")]
|
|
[Address(RVA = "0x2176220", Offset = "0x2174C20", VA = "0x182176220")]
|
|
public Blake2sDigest(byte[] key)
|
|
{
|
|
this.digestLength = (int)((ulong)32L);
|
|
uint[] array = new uint[16];
|
|
this.internalState = array;
|
|
base..ctor();
|
|
byte[] array2 = new byte[64];
|
|
this.buffer = array2;
|
|
if (key != 0)
|
|
{
|
|
byte[] array3 = new byte[key.Length];
|
|
this.key = array3;
|
|
int num = 0;
|
|
int length = key.Length;
|
|
int num2 = 0;
|
|
Array.Copy(key, num2, array3, num, length);
|
|
int length2 = key.Length;
|
|
int num3 = 0;
|
|
byte[] array4 = this.buffer;
|
|
int num4 = 0;
|
|
this.keyLength = length2;
|
|
int length3 = key.Length;
|
|
Array.Copy(key, num4, array4, num3, length3);
|
|
this.bufferPos = (int)((ulong)64L);
|
|
}
|
|
this.digestLength = (int)((ulong)32L);
|
|
this.Init();
|
|
}
|
|
|
|
// Token: 0x06009E3D RID: 40509 RVA: 0x00245790 File Offset: 0x00243990
|
|
[Token(Token = "0x6009E3D")]
|
|
[Address(RVA = "0x2176420", Offset = "0x2174E20", VA = "0x182176420")]
|
|
public Blake2sDigest(byte[] key, int digestBytes, byte[] salt, byte[] personalization)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06009E3D)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Blake2sDigest::.ctor(System.Byte[],System.Int32,System.Byte[],System.Byte[])
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_110:
|
|
stloc:ArgumentException(var_19_11A, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Salt length must be exactly 8 bytes")))
|
|
}
|
|
|
|
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: 0x06009E3E RID: 40510 RVA: 0x002458B8 File Offset: 0x00243AB8
|
|
[Token(Token = "0x6009E3E")]
|
|
[Address(RVA = "0x2175850", Offset = "0x2174250", VA = "0x182175850")]
|
|
private void Init()
|
|
{
|
|
if (this.chainValue == (ulong)0L)
|
|
{
|
|
uint[] array = new uint[8];
|
|
this.chainValue = array;
|
|
uint[] array2 = Blake2sDigest.blake2s_IV;
|
|
int num = this.keyLength;
|
|
array[0] = (uint)num;
|
|
uint[] array3 = this.chainValue;
|
|
uint num2 = Blake2sDigest.blake2s_IV[0];
|
|
array3[0] = num2;
|
|
uint[] array4 = this.chainValue;
|
|
uint num3 = Blake2sDigest.blake2s_IV[1];
|
|
array4[1] = num3;
|
|
uint[] array5 = this.chainValue;
|
|
uint num4 = Blake2sDigest.blake2s_IV[1];
|
|
array5[1] = num4;
|
|
uint[] array6 = this.chainValue;
|
|
uint num5 = Blake2sDigest.blake2s_IV[2];
|
|
array6[2] = num5;
|
|
uint[] array7 = this.chainValue;
|
|
uint num6 = Blake2sDigest.blake2s_IV[2];
|
|
array7[2] = num6;
|
|
byte[] array8 = this.salt;
|
|
if (array8 != 0)
|
|
{
|
|
uint[] array9 = this.chainValue;
|
|
int num7 = 0;
|
|
int @int = SerializationHeaderRecord.GetInt32(array8, num7);
|
|
array9[2] = (uint)@int;
|
|
uint[] array10 = this.chainValue;
|
|
int int2 = SerializationHeaderRecord.GetInt32(this.salt, 4);
|
|
array10[2] = (uint)int2;
|
|
}
|
|
uint[] array11 = this.chainValue;
|
|
uint num8 = Blake2sDigest.blake2s_IV[3];
|
|
array11[3] = num8;
|
|
uint[] array12 = this.chainValue;
|
|
uint num9 = Blake2sDigest.blake2s_IV[3];
|
|
array12[3] = num9;
|
|
byte[] array13 = this.personalization;
|
|
if (array13 != 0)
|
|
{
|
|
uint[] array14 = this.chainValue;
|
|
int num10 = 0;
|
|
int int3 = SerializationHeaderRecord.GetInt32(array13, num10);
|
|
array14[3] = (uint)int3;
|
|
uint[] array15 = this.chainValue;
|
|
int int4 = SerializationHeaderRecord.GetInt32(this.personalization, 4);
|
|
array15[3] = (uint)int4;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009E3F RID: 40511 RVA: 0x00245A70 File Offset: 0x00243C70
|
|
[Token(Token = "0x6009E3F")]
|
|
[Address(RVA = "0x2175D10", Offset = "0x2174710", VA = "0x182175D10")]
|
|
private void InitializeInternalState()
|
|
{
|
|
uint[] array = this.chainValue;
|
|
int length = array.Length;
|
|
int num = 0;
|
|
uint[] array2 = this.internalState;
|
|
int num2 = 0;
|
|
Array.Copy(array, num2, array2, num, length);
|
|
uint[] array3 = this.chainValue;
|
|
int num3 = 0;
|
|
int length2 = array3.Length;
|
|
uint[] array4 = this.internalState;
|
|
ulong num4;
|
|
Array.Copy(Blake2sDigest.blake2s_IV, num3, array4, length2, (int)num4);
|
|
uint[] array5 = this.internalState;
|
|
uint num5 = Blake2sDigest.blake2s_IV[2];
|
|
array5[6] = num5;
|
|
uint[] array6 = this.internalState;
|
|
uint num6 = Blake2sDigest.blake2s_IV[2];
|
|
array6[6] = num6;
|
|
uint[] array7 = this.internalState;
|
|
uint num7 = Blake2sDigest.blake2s_IV[3];
|
|
array7[7] = num7;
|
|
uint[] array8 = this.internalState;
|
|
uint num8 = Blake2sDigest.blake2s_IV[3];
|
|
array8[7] = num8;
|
|
}
|
|
|
|
// Token: 0x06009E40 RID: 40512 RVA: 0x00245B54 File Offset: 0x00243D54
|
|
[Token(Token = "0x6009E40")]
|
|
[Address(RVA = "0x2175FC0", Offset = "0x21749C0", VA = "0x182175FC0", Slot = "11")]
|
|
public virtual void Update(byte b)
|
|
{
|
|
int num = this.bufferPos;
|
|
uint num2;
|
|
byte[] array;
|
|
if (num2 != (uint)num)
|
|
{
|
|
array = this.buffer;
|
|
return;
|
|
}
|
|
if (num == array.Length)
|
|
{
|
|
}
|
|
byte[] array2 = this.buffer;
|
|
int num3 = 0;
|
|
this.Compress(array2, num3);
|
|
byte[] array3 = this.buffer;
|
|
int length = array3.Length;
|
|
int num4 = 0;
|
|
Array.Clear(array3, num4, length);
|
|
this.buffer[0] = b;
|
|
this.bufferPos = (int)((ulong)1L);
|
|
}
|
|
|
|
// Token: 0x06009E41 RID: 40513 RVA: 0x00245BCC File Offset: 0x00243DCC
|
|
[Token(Token = "0x6009E41")]
|
|
[Address(RVA = "0x2174A90", Offset = "0x2173490", VA = "0x182174A90", Slot = "12")]
|
|
public virtual void BlockUpdate(byte[] message, int offset, int len)
|
|
{
|
|
if (message != 0 && len != 0)
|
|
{
|
|
int num = this.bufferPos;
|
|
int num2 = 0;
|
|
if (num != 0)
|
|
{
|
|
byte[] array = this.buffer;
|
|
uint num3;
|
|
num3 -= (uint)num;
|
|
Array.Copy(message, offset, array, num, len);
|
|
Array.Copy(message, offset, array, num, (int)num3);
|
|
if (num3 == (uint)len)
|
|
{
|
|
}
|
|
byte[] array2 = this.buffer;
|
|
int num4 = 0;
|
|
this.Compress(array2, num4);
|
|
byte[] array3 = this.buffer;
|
|
this.bufferPos = num2;
|
|
int length = array3.Length;
|
|
int num5 = 0;
|
|
Array.Clear(array3, num5, length);
|
|
}
|
|
num2 += offset;
|
|
this.Compress(message, num2);
|
|
num2 += 64;
|
|
byte[] array4 = this.buffer;
|
|
int num6 = 0;
|
|
Array.Copy(message, num2, array4, num6, offset);
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009E42 RID: 40514 RVA: 0x00245C80 File Offset: 0x00243E80
|
|
[Token(Token = "0x6009E42")]
|
|
[Address(RVA = "0x2175360", Offset = "0x2173D60", VA = "0x182175360", Slot = "13")]
|
|
public virtual int DoFinal(byte[] output, int outOffset)
|
|
{
|
|
this.f0 = (uint)((ulong)4294967295L);
|
|
byte[] array = this.buffer;
|
|
int num = 0;
|
|
this.Compress(array, num);
|
|
byte[] array2 = this.buffer;
|
|
int length = array2.Length;
|
|
int num2 = 0;
|
|
Array.Clear(array2, num2, length);
|
|
uint[] array3 = this.internalState;
|
|
int length2 = array3.Length;
|
|
int num3 = 0;
|
|
Array.Clear(array3, num3, length2);
|
|
uint[] array4 = this.chainValue;
|
|
int num4 = 0;
|
|
uint[] array6;
|
|
if (num4 < array4.Length && num4 < this.digestLength)
|
|
{
|
|
byte[] array5 = Pack.UInt32_To_LE(array4[num4]);
|
|
int num5 = this.digestLength;
|
|
num5 -= num4;
|
|
int num6 = 0;
|
|
uint num7;
|
|
Array.Copy(array5, num6, output, 0, (int)num7);
|
|
array6 = this.chainValue;
|
|
num4++;
|
|
num4 += 4;
|
|
}
|
|
int length3 = array6.Length;
|
|
int num8 = 0;
|
|
Array.Clear(array6, num8, length3);
|
|
return this.digestLength;
|
|
}
|
|
|
|
// Token: 0x06009E43 RID: 40515 RVA: 0x00245D70 File Offset: 0x00243F70
|
|
[Token(Token = "0x6009E43")]
|
|
[Address(RVA = "0x2175F40", Offset = "0x2174940", VA = "0x182175F40", Slot = "14")]
|
|
public virtual void Reset()
|
|
{
|
|
int num = 0;
|
|
this.bufferPos = num;
|
|
this.t1 = (uint)num;
|
|
this.t0 = (uint)num;
|
|
this.chainValue = num;
|
|
byte[] array = this.buffer;
|
|
int length = array.Length;
|
|
int num2 = 0;
|
|
Array.Clear(array, num2, length);
|
|
byte[] array2 = this.key;
|
|
if (array2 != 0)
|
|
{
|
|
int length2 = array2.Length;
|
|
int num3 = 0;
|
|
byte[] array3 = this.buffer;
|
|
int num4 = 0;
|
|
Array.Copy(array2, num4, array3, num3, length2);
|
|
this.bufferPos = (int)((ulong)64L);
|
|
}
|
|
this.Init();
|
|
}
|
|
|
|
// Token: 0x06009E44 RID: 40516 RVA: 0x00245DFC File Offset: 0x00243FFC
|
|
[Token(Token = "0x6009E44")]
|
|
[Address(RVA = "0x2174BD0", Offset = "0x21735D0", VA = "0x182174BD0")]
|
|
private void Compress(byte[] message, int messagePos)
|
|
{
|
|
this.InitializeInternalState();
|
|
uint[] array = new uint[16];
|
|
int num = 0;
|
|
num++;
|
|
array[0] = array;
|
|
byte[,] array2 = Blake2sDigest.blake2s_sigma;
|
|
throw new IndexOutOfRangeException();
|
|
}
|
|
|
|
// Token: 0x06009E45 RID: 40517 RVA: 0x00246064 File Offset: 0x00244264
|
|
[Token(Token = "0x6009E45")]
|
|
[Address(RVA = "0x21754C0", Offset = "0x2173EC0", VA = "0x1821754C0")]
|
|
private void G(uint m1, uint m2, int posA, int posB, int posC, int posD)
|
|
{
|
|
uint[] array = this.internalState;
|
|
int length = array.Length;
|
|
uint num;
|
|
uint num2;
|
|
num += num2;
|
|
num += m1;
|
|
posA.m_value = (int)num;
|
|
int length2 = this.internalState.Length;
|
|
uint num3;
|
|
array.m_value = num3;
|
|
uint[] array2 = this.internalState;
|
|
int length3 = array2.Length;
|
|
uint num4;
|
|
uint num5;
|
|
num4 += num5;
|
|
array2[0] = num4;
|
|
int length4 = this.internalState.Length;
|
|
int length5 = this.internalState.Length;
|
|
uint num6;
|
|
uint num7;
|
|
num6 += num7;
|
|
num6 += m2;
|
|
posA.m_value = (int)num6;
|
|
int length6 = this.internalState.Length;
|
|
uint num8;
|
|
array.m_value = num8;
|
|
uint[] array3 = this.internalState;
|
|
int length7 = array3.Length;
|
|
uint num9;
|
|
uint num10;
|
|
num9 += num10;
|
|
array3[0] = num9;
|
|
int length8 = this.internalState.Length;
|
|
}
|
|
|
|
// Token: 0x06009E46 RID: 40518 RVA: 0x00246140 File Offset: 0x00244340
|
|
[Token(Token = "0x6009E46")]
|
|
[Address(RVA = "0x2176730", Offset = "0x2175130", VA = "0x182176730")]
|
|
private uint rotr32(uint x, int rot)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x17001908 RID: 6408
|
|
// (get) Token: 0x06009E47 RID: 40519 RVA: 0x00246150 File Offset: 0x00244350
|
|
[Token(Token = "0x17001908")]
|
|
public virtual string AlgorithmName
|
|
{
|
|
[Token(Token = "0x6009E47")]
|
|
[Address(RVA = "0x2176700", Offset = "0x2175100", VA = "0x182176700", Slot = "15")]
|
|
get
|
|
{
|
|
return "BLAKE2s";
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009E48 RID: 40520 RVA: 0x00246164 File Offset: 0x00244364
|
|
[Token(Token = "0x6009E48")]
|
|
[Address(RVA = "0x3C1C50", Offset = "0x3C0650", VA = "0x1803C1C50", Slot = "16")]
|
|
public virtual int GetDigestSize()
|
|
{
|
|
return this.digestLength;
|
|
}
|
|
|
|
// Token: 0x06009E49 RID: 40521 RVA: 0x00246178 File Offset: 0x00244378
|
|
[Token(Token = "0x6009E49")]
|
|
[Address(RVA = "0x2062AA0", Offset = "0x20614A0", VA = "0x182062AA0", Slot = "17")]
|
|
public virtual int GetByteLength()
|
|
{
|
|
return 64;
|
|
}
|
|
|
|
// Token: 0x06009E4A RID: 40522 RVA: 0x00246188 File Offset: 0x00244388
|
|
[Token(Token = "0x6009E4A")]
|
|
[Address(RVA = "0x2172D70", Offset = "0x2171770", VA = "0x182172D70", Slot = "18")]
|
|
public virtual void ClearKey()
|
|
{
|
|
byte[] array = this.key;
|
|
if (array != 0)
|
|
{
|
|
int length = array.Length;
|
|
int num = 0;
|
|
Array.Clear(array, num, length);
|
|
byte[] array2 = this.buffer;
|
|
int length2 = array2.Length;
|
|
int num2 = 0;
|
|
Array.Clear(array2, num2, length2);
|
|
return;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009E4B RID: 40523 RVA: 0x002461D4 File Offset: 0x002443D4
|
|
[Token(Token = "0x6009E4B")]
|
|
[Address(RVA = "0x2172DC0", Offset = "0x21717C0", VA = "0x182172DC0", Slot = "19")]
|
|
public virtual void ClearSalt()
|
|
{
|
|
byte[] array = this.salt;
|
|
if (array != 0)
|
|
{
|
|
int length = array.Length;
|
|
int num = 0;
|
|
Array.Clear(array, num, length);
|
|
return;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009E4C RID: 40524 RVA: 0x00246200 File Offset: 0x00244400
|
|
// Note: this type is marked as 'beforefieldinit'.
|
|
[Token(Token = "0x6009E4C")]
|
|
[Address(RVA = "0x2176080", Offset = "0x2174A80", VA = "0x182176080")]
|
|
static Blake2sDigest()
|
|
{
|
|
uint[] array = new uint[8];
|
|
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.013B76F7DD3E0346CB351F079CC062EFBD293457).FieldHandle);
|
|
Blake2sDigest.blake2s_IV = array;
|
|
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.7F817443C1F736721DD92BD67C7C8994C7B8DEBF).FieldHandle);
|
|
Blake2sDigest.blake2s_sigma = array;
|
|
}
|
|
|
|
// Token: 0x0400680D RID: 26637
|
|
[Token(Token = "0x400680D")]
|
|
private static readonly uint[] blake2s_IV;
|
|
|
|
// Token: 0x0400680E RID: 26638
|
|
[Token(Token = "0x400680E")]
|
|
private static readonly byte[,] blake2s_sigma;
|
|
|
|
// Token: 0x0400680F RID: 26639
|
|
[Token(Token = "0x400680F")]
|
|
private const int ROUNDS = 10;
|
|
|
|
// Token: 0x04006810 RID: 26640
|
|
[Token(Token = "0x4006810")]
|
|
private const int BLOCK_LENGTH_BYTES = 64;
|
|
|
|
// Token: 0x04006811 RID: 26641
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4006811")]
|
|
private int digestLength;
|
|
|
|
// Token: 0x04006812 RID: 26642
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x14")]
|
|
[Token(Token = "0x4006812")]
|
|
private int keyLength;
|
|
|
|
// Token: 0x04006813 RID: 26643
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4006813")]
|
|
private byte[] salt;
|
|
|
|
// Token: 0x04006814 RID: 26644
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4006814")]
|
|
private byte[] personalization;
|
|
|
|
// Token: 0x04006815 RID: 26645
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4006815")]
|
|
private byte[] key;
|
|
|
|
// Token: 0x04006816 RID: 26646
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4006816")]
|
|
private byte[] buffer;
|
|
|
|
// Token: 0x04006817 RID: 26647
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x4006817")]
|
|
private int bufferPos;
|
|
|
|
// Token: 0x04006818 RID: 26648
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x4006818")]
|
|
private uint[] internalState;
|
|
|
|
// Token: 0x04006819 RID: 26649
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x4006819")]
|
|
private uint[] chainValue;
|
|
|
|
// Token: 0x0400681A RID: 26650
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x400681A")]
|
|
private uint t0;
|
|
|
|
// Token: 0x0400681B RID: 26651
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x54")]
|
|
[Token(Token = "0x400681B")]
|
|
private uint t1;
|
|
|
|
// Token: 0x0400681C RID: 26652
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
|
|
[Token(Token = "0x400681C")]
|
|
private uint f0;
|
|
}
|
|
}
|