m
This commit is contained in:
+205
@@ -0,0 +1,205 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
|
||||
{
|
||||
// Token: 0x02001D6B RID: 7531
|
||||
[Token(Token = "0x2001D6B")]
|
||||
public class ChaChaEngine : Salsa20Engine
|
||||
{
|
||||
// Token: 0x0600BB1E RID: 47902 RVA: 0x00291580 File Offset: 0x0028F780
|
||||
[Token(Token = "0x600BB1E")]
|
||||
[Address(RVA = "0x27E7000", Offset = "0x27E6000", VA = "0x1827E7000")]
|
||||
public ChaChaEngine()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600BB1F RID: 47903 RVA: 0x00291594 File Offset: 0x0028F794
|
||||
[Token(Token = "0x600BB1F")]
|
||||
[Address(RVA = "0x27E6FA0", Offset = "0x27E5FA0", VA = "0x1827E6FA0")]
|
||||
public ChaChaEngine(int rounds)
|
||||
: base(rounds)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x17001D62 RID: 7522
|
||||
// (get) Token: 0x0600BB20 RID: 47904 RVA: 0x002915A8 File Offset: 0x0028F7A8
|
||||
[Token(Token = "0x17001D62")]
|
||||
public override string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BB20")]
|
||||
[Address(RVA = "0x27E7060", Offset = "0x27E6060", VA = "0x1827E7060", Slot = "11")]
|
||||
get
|
||||
{
|
||||
int rounds = this.rounds;
|
||||
return "ChaCha" + rounds;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB21 RID: 47905 RVA: 0x002915C8 File Offset: 0x0028F7C8
|
||||
[Token(Token = "0x600BB21")]
|
||||
[Address(RVA = "0x27E6440", Offset = "0x27E5440", VA = "0x1827E6440", Slot = "13")]
|
||||
protected override void AdvanceCounter()
|
||||
{
|
||||
if (this.engineState.Length == 12)
|
||||
{
|
||||
uint[] engineState = this.engineState;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BB22 RID: 47906 RVA: 0x002915F4 File Offset: 0x0028F7F4
|
||||
[Token(Token = "0x600BB22")]
|
||||
[Address(RVA = "0x27E6E10", Offset = "0x27E5E10", VA = "0x1827E6E10", Slot = "16")]
|
||||
protected override void ResetCounter()
|
||||
{
|
||||
uint[] engineState = this.engineState;
|
||||
int num = 0;
|
||||
engineState[6] = (uint)num;
|
||||
engineState[6] = (uint)num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BB23 RID: 47907 RVA: 0x00291620 File Offset: 0x0028F820
|
||||
[Token(Token = "0x600BB23")]
|
||||
[Address(RVA = "0x27E6E70", Offset = "0x27E5E70", VA = "0x1827E6E70", Slot = "17")]
|
||||
protected override void SetKey(byte[] keyBytes, byte[] ivBytes)
|
||||
{
|
||||
if (keyBytes != 0)
|
||||
{
|
||||
int length = keyBytes.Length;
|
||||
uint[] engineState = this.engineState;
|
||||
int num = 0;
|
||||
base.PackTauOrSigma(length, engineState, num);
|
||||
uint[] engineState2 = this.engineState;
|
||||
int num2 = 0;
|
||||
ulong num3;
|
||||
Pack.LE_To_UInt32(keyBytes, num2, engineState2, 4, (int)num3);
|
||||
int length2 = keyBytes.Length;
|
||||
uint[] engineState3 = this.engineState;
|
||||
ulong num4;
|
||||
Pack.LE_To_UInt32(keyBytes, length2, engineState3, 8, (int)num4);
|
||||
}
|
||||
uint[] engineState4 = this.engineState;
|
||||
int num5 = 0;
|
||||
uint num6;
|
||||
ulong num7;
|
||||
Pack.LE_To_UInt32(ivBytes, num5, engineState4, (int)num6, (int)num7);
|
||||
}
|
||||
|
||||
// Token: 0x0600BB24 RID: 47908 RVA: 0x002916A4 File Offset: 0x0028F8A4
|
||||
[Token(Token = "0x600BB24")]
|
||||
[Address(RVA = "0x27E61F0", Offset = "0x27E51F0", VA = "0x1827E61F0", Slot = "18")]
|
||||
protected override void GenerateKeyStream(byte[] output)
|
||||
{
|
||||
uint[] x = this.x;
|
||||
uint[] engineState = this.engineState;
|
||||
ChaChaEngine.ChachaCore(this.rounds, engineState, x);
|
||||
uint[] x2 = this.x;
|
||||
int num = 0;
|
||||
Pack.UInt32_To_LE(x2, output, num);
|
||||
}
|
||||
|
||||
// Token: 0x0600BB25 RID: 47909 RVA: 0x002916E0 File Offset: 0x0028F8E0
|
||||
[Token(Token = "0x600BB25")]
|
||||
[Address(RVA = "0x27E64A0", Offset = "0x27E54A0", VA = "0x1827E64A0")]
|
||||
internal static void ChachaCore(int rounds, uint[] input, uint[] x)
|
||||
{
|
||||
while (input.Length != 16 || rounds != 1)
|
||||
{
|
||||
}
|
||||
uint num = input[2];
|
||||
uint num2 = input[6];
|
||||
uint num3 = input[5];
|
||||
uint num4 = input[6];
|
||||
uint num5 = input[0];
|
||||
uint num6 = input[0];
|
||||
uint num7 = input[2];
|
||||
uint num8 = input[4];
|
||||
uint num9 = input[3];
|
||||
uint num10 = input[4];
|
||||
uint num11 = input[3];
|
||||
uint num12 = input[7];
|
||||
uint num13 = input[1];
|
||||
uint num14 = input[5];
|
||||
uint num15 = input[7];
|
||||
uint num16 = input[1];
|
||||
if (rounds > 0)
|
||||
{
|
||||
int num17 = rounds - 1;
|
||||
num17++;
|
||||
num5 += num7;
|
||||
num10 += num5;
|
||||
num5 += num5;
|
||||
num10 += num5;
|
||||
num4 = num10;
|
||||
num8 = num5;
|
||||
num8 += num5;
|
||||
num6 += num5;
|
||||
num8 = num5;
|
||||
num10 = num5;
|
||||
num8 += num10;
|
||||
num6 = num8;
|
||||
num5 = num8;
|
||||
num14 += num5;
|
||||
num13 += num14;
|
||||
num14 += num14;
|
||||
num12 = num14;
|
||||
num13 = num14;
|
||||
num5 = num14;
|
||||
num3 += num5;
|
||||
num16 += num3;
|
||||
num5 = num3;
|
||||
num3 += num5;
|
||||
num5 += num6;
|
||||
num16 = num3;
|
||||
num5 = num3;
|
||||
num14 += num5;
|
||||
num5 += num14;
|
||||
num15 = num14;
|
||||
num14 += num15;
|
||||
num6 += num13;
|
||||
num3 += num14;
|
||||
num6 += num14;
|
||||
num3 += num14;
|
||||
num13 += num16;
|
||||
num10 += num14;
|
||||
num13 += num14;
|
||||
num10 += num14;
|
||||
num15 = num10;
|
||||
num8 += num14;
|
||||
num5 = num14;
|
||||
num14 = num8;
|
||||
num16 += num14;
|
||||
num14 = num5;
|
||||
num5 = num14;
|
||||
num8 += num14;
|
||||
num14 = num8;
|
||||
num7 = num14;
|
||||
}
|
||||
uint num18 = input[0];
|
||||
num5 += num18;
|
||||
uint num19 = input[0];
|
||||
num19 += num6;
|
||||
uint num20 = input[1];
|
||||
num20 += num13;
|
||||
uint num21 = input[1];
|
||||
num21 += num16;
|
||||
uint num22 = input[2];
|
||||
num22 += num7;
|
||||
uint num23 = input[4];
|
||||
num23 += num10;
|
||||
uint num24 = input[4];
|
||||
num24 += num8;
|
||||
uint num25 = input[5];
|
||||
num25 += num14;
|
||||
uint num26 = input[5];
|
||||
num26 += num3;
|
||||
uint num27 = input[6];
|
||||
num27 += num4;
|
||||
uint num28 = input[7];
|
||||
num28 += num12;
|
||||
uint num29 = input[7];
|
||||
num29 += num15;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user