Files
27Aug2021-Cpp2IL-Dump/Assembly-CSharp/BestHTTP/SecureProtocol/Org/BouncyCastle/Crypto/Prng/DigestRandomGenerator.cs
T
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

201 lines
5.5 KiB
C#

using System;
using System.Threading;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Prng
{
// Token: 0x02001CA3 RID: 7331
[Token(Token = "0x2001CA3")]
public class DigestRandomGenerator : IRandomGenerator
{
// Token: 0x0600B594 RID: 46484 RVA: 0x002745DC File Offset: 0x002727DC
[Token(Token = "0x600B594")]
[Address(RVA = "0x2354C30", Offset = "0x2353C30", VA = "0x182354C30")]
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: 0x0600B595 RID: 46485 RVA: 0x0027462C File Offset: 0x0027282C
[Token(Token = "0x600B595")]
[Address(RVA = "0x23544C0", Offset = "0x23534C0", VA = "0x1823544C0", 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);
}
while (num != 0);
}
// Token: 0x0600B596 RID: 46486 RVA: 0x00274690 File Offset: 0x00272890
[Token(Token = "0x600B596")]
[Address(RVA = "0x2354380", Offset = "0x2353380", VA = "0x182354380", 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);
}
while (num != 0);
}
// Token: 0x0600B597 RID: 46487 RVA: 0x002746E0 File Offset: 0x002728E0
[Token(Token = "0x600B597")]
[Address(RVA = "0x2354C00", Offset = "0x2353C00", VA = "0x182354C00", Slot = "6")]
public void NextBytes(byte[] bytes)
{
int length = bytes.Length;
int num = 0;
this.NextBytes(bytes, num, length);
}
// Token: 0x0600B598 RID: 46488 RVA: 0x00274708 File Offset: 0x00272908
[Token(Token = "0x600B598")]
[Address(RVA = "0x2354AB0", Offset = "0x2353AB0", VA = "0x182354AB0", 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);
}
while (num != 0);
}
// Token: 0x0600B599 RID: 46489 RVA: 0x00274764 File Offset: 0x00272964
[Token(Token = "0x600B599")]
[Address(RVA = "0x2354650", Offset = "0x2353650", VA = "0x182354650")]
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: 0x0600B59A RID: 46490 RVA: 0x002747B4 File Offset: 0x002729B4
[Token(Token = "0x600B59A")]
[Address(RVA = "0x23548B0", Offset = "0x23538B0", VA = "0x1823548B0")]
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: 0x0600B59B RID: 46491 RVA: 0x00274868 File Offset: 0x00272A68
[Token(Token = "0x600B59B")]
[Address(RVA = "0x2354730", Offset = "0x2353730", VA = "0x182354730")]
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: 0x0600B59C RID: 46492 RVA: 0x00274898 File Offset: 0x00272A98
[Token(Token = "0x600B59C")]
[Address(RVA = "0x2354840", Offset = "0x2353840", VA = "0x182354840")]
private void DigestUpdate(byte[] inSeed)
{
IDigest digest = this.digest;
int length = inSeed.Length;
}
// Token: 0x0600B59D RID: 46493 RVA: 0x002748BC File Offset: 0x00272ABC
[Token(Token = "0x600B59D")]
[Address(RVA = "0x23547D0", Offset = "0x23537D0", VA = "0x1823547D0")]
private void DigestDoFinal(byte[] result)
{
IDigest digest = this.digest;
}
// Token: 0x040072F6 RID: 29430
[Token(Token = "0x40072F6")]
private const long CYCLE_COUNT = 10L;
// Token: 0x040072F7 RID: 29431
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40072F7")]
private long stateCounter;
// Token: 0x040072F8 RID: 29432
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40072F8")]
private long seedCounter;
// Token: 0x040072F9 RID: 29433
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40072F9")]
private IDigest digest;
// Token: 0x040072FA RID: 29434
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40072FA")]
private byte[] state;
// Token: 0x040072FB RID: 29435
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40072FB")]
private byte[] seed;
}
}