Files
Jan2021-Cpp2Il-Dump/Assembly-CSharp/BestHTTP/SecureProtocol/Org/BouncyCastle/Crypto/Prng/DigestRandomGenerator.cs
T
2026-04-08 23:40:05 +02:00

212 lines
5.8 KiB
C#

using System;
using System.Runtime.InteropServices;
using System.Threading;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Prng
{
// Token: 0x020015E6 RID: 5606
[Token(Token = "0x20015E6")]
[StructLayout(3)]
public class DigestRandomGenerator : IRandomGenerator
{
// Token: 0x060095EC RID: 38380 RVA: 0x00213DAC File Offset: 0x00211FAC
[Token(Token = "0x60095EC")]
[Address(RVA = "0x1DD4310", Offset = "0x1DD2D10", VA = "0x181DD4310")]
public DigestRandomGenerator(IDigest digest)
{
this.digest = digest;
byte[] array = new byte[0];
this.seed = array;
this.seedCounter = (long)((ulong)1L);
byte[] array2 = new byte[array];
this.state = array2;
this.stateCounter = (long)((ulong)1L);
}
// Token: 0x060095ED RID: 38381 RVA: 0x00213DFC File Offset: 0x00211FFC
[Token(Token = "0x60095ED")]
[Address(RVA = "0x1DD3B60", Offset = "0x1DD2560", VA = "0x181DD3B60", Slot = "4")]
public void AddSeedMaterial(byte[] inSeed)
{
int num;
do
{
num = 0;
IDigest digest = this.digest;
int length = inSeed.Length;
byte[] array = this.seed;
IDigest digest2 = this.digest;
int length2 = array.Length;
IDigest digest3 = this.digest;
Monitor.Exit(this);
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x060095EE RID: 38382 RVA: 0x00213E64 File Offset: 0x00212064
[Token(Token = "0x60095EE")]
[Address(RVA = "0x1DD39F0", Offset = "0x1DD23F0", VA = "0x181DD39F0", Slot = "5")]
public void AddSeedMaterial(long rSeed)
{
int num;
do
{
num = 0;
this.DigestAddCounter(rSeed);
byte[] array = this.seed;
IDigest digest = this.digest;
int length = array.Length;
IDigest digest2 = this.digest;
Monitor.Exit(this);
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x060095EF RID: 38383 RVA: 0x00213EB8 File Offset: 0x002120B8
[Token(Token = "0x60095EF")]
[Address(RVA = "0x1DD42E0", Offset = "0x1DD2CE0", VA = "0x181DD42E0", Slot = "6")]
public void NextBytes(byte[] bytes)
{
int length = bytes.Length;
int num = 0;
this.NextBytes(bytes, num, length);
}
// Token: 0x060095F0 RID: 38384 RVA: 0x00213EE0 File Offset: 0x002120E0
[Token(Token = "0x60095F0")]
[Address(RVA = "0x1DD4170", Offset = "0x1DD2B70", VA = "0x181DD4170", Slot = "7")]
public void NextBytes(byte[] bytes, int start, int len)
{
int num;
do
{
num = 0;
this.GenerateState();
if (start < len)
{
byte[] array = this.state;
if (num == array.Length)
{
this.GenerateState();
}
num++;
}
Monitor.Exit(this);
if (num != -1)
{
}
}
while (num != 0);
}
// Token: 0x060095F1 RID: 38385 RVA: 0x00213F40 File Offset: 0x00212140
[Token(Token = "0x60095F1")]
[Address(RVA = "0x1DD3D10", Offset = "0x1DD2710", VA = "0x181DD3D10")]
private void CycleSeed()
{
byte[] array = this.seed;
IDigest digest = this.digest;
int length = array.Length;
long num = this.seedCounter;
long num2 = num + 1L;
this.seedCounter = num2;
this.DigestAddCounter(num);
IDigest digest2 = this.digest;
}
// Token: 0x060095F2 RID: 38386 RVA: 0x00213F90 File Offset: 0x00212190
[Token(Token = "0x60095F2")]
[Address(RVA = "0x1DD3F70", Offset = "0x1DD2970", VA = "0x181DD3F70")]
private void GenerateState()
{
long num = this.stateCounter;
long num2 = num + 1L;
this.stateCounter = num2;
this.DigestAddCounter(num);
byte[] array = this.state;
IDigest digest = this.digest;
int length = array.Length;
byte[] array2 = this.seed;
IDigest digest2 = this.digest;
int length2 = array2.Length;
IDigest digest3 = this.digest;
if (this.stateCounter == typeof(IDigest).TypeHandle)
{
byte[] array3 = this.seed;
IDigest digest4 = this.digest;
int length3 = array3.Length;
long num3 = this.seedCounter;
long num4 = num3 + 1L;
this.seedCounter = num4;
this.DigestAddCounter(num3);
IDigest digest5 = this.digest;
}
}
// Token: 0x060095F3 RID: 38387 RVA: 0x00214044 File Offset: 0x00212244
[Token(Token = "0x60095F3")]
[Address(RVA = "0x1DD3DF0", Offset = "0x1DD27F0", VA = "0x181DD3DF0")]
private void DigestAddCounter(long seedVal)
{
byte[] array = new byte[8];
Pack.UInt64_To_LE((ulong)seedVal, array);
IDigest digest = this.digest;
int length = array.Length;
}
// Token: 0x060095F4 RID: 38388 RVA: 0x00214074 File Offset: 0x00212274
[Token(Token = "0x60095F4")]
[Address(RVA = "0x1DD3F00", Offset = "0x1DD2900", VA = "0x181DD3F00")]
private void DigestUpdate(byte[] inSeed)
{
IDigest digest = this.digest;
int length = inSeed.Length;
}
// Token: 0x060095F5 RID: 38389 RVA: 0x00214098 File Offset: 0x00212298
[Token(Token = "0x60095F5")]
[Address(RVA = "0x1DD3E90", Offset = "0x1DD2890", VA = "0x181DD3E90")]
private void DigestDoFinal(byte[] result)
{
IDigest digest = this.digest;
}
// Token: 0x040062FA RID: 25338
[Token(Token = "0x40062FA")]
private const long CYCLE_COUNT = 10L;
// Token: 0x040062FB RID: 25339
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x40062FB")]
private long stateCounter;
// Token: 0x040062FC RID: 25340
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x40062FC")]
private long seedCounter;
// Token: 0x040062FD RID: 25341
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x40062FD")]
private IDigest digest;
// Token: 0x040062FE RID: 25342
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x40062FE")]
private byte[] state;
// Token: 0x040062FF RID: 25343
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x40062FF")]
private byte[] seed;
}
}