oh dear
This commit is contained in:
+200
@@ -0,0 +1,200 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Prng
|
||||
{
|
||||
// Token: 0x02001BC3 RID: 7107
|
||||
[Token(Token = "0x2001BC3")]
|
||||
public class DigestRandomGenerator : IRandomGenerator
|
||||
{
|
||||
// Token: 0x0600B1C6 RID: 45510 RVA: 0x0026B418 File Offset: 0x00269618
|
||||
[Token(Token = "0x600B1C6")]
|
||||
[Address(RVA = "0x1804EF0", Offset = "0x1803CF0", VA = "0x181804EF0")]
|
||||
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: 0x0600B1C7 RID: 45511 RVA: 0x0026B468 File Offset: 0x00269668
|
||||
[Token(Token = "0x600B1C7")]
|
||||
[Address(RVA = "0x1804780", Offset = "0x1803580", VA = "0x181804780", 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: 0x0600B1C8 RID: 45512 RVA: 0x0026B4CC File Offset: 0x002696CC
|
||||
[Token(Token = "0x600B1C8")]
|
||||
[Address(RVA = "0x1804640", Offset = "0x1803440", VA = "0x181804640", 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: 0x0600B1C9 RID: 45513 RVA: 0x0026B51C File Offset: 0x0026971C
|
||||
[Token(Token = "0x600B1C9")]
|
||||
[Address(RVA = "0x1804EC0", Offset = "0x1803CC0", VA = "0x181804EC0", Slot = "6")]
|
||||
public void NextBytes(byte[] bytes)
|
||||
{
|
||||
int length = bytes.Length;
|
||||
int num = 0;
|
||||
this.NextBytes(bytes, num, length);
|
||||
}
|
||||
|
||||
// Token: 0x0600B1CA RID: 45514 RVA: 0x0026B544 File Offset: 0x00269744
|
||||
[Token(Token = "0x600B1CA")]
|
||||
[Address(RVA = "0x1804D70", Offset = "0x1803B70", VA = "0x181804D70", 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: 0x0600B1CB RID: 45515 RVA: 0x0026B5A0 File Offset: 0x002697A0
|
||||
[Token(Token = "0x600B1CB")]
|
||||
[Address(RVA = "0x1804910", Offset = "0x1803710", VA = "0x181804910")]
|
||||
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: 0x0600B1CC RID: 45516 RVA: 0x0026B5F0 File Offset: 0x002697F0
|
||||
[Token(Token = "0x600B1CC")]
|
||||
[Address(RVA = "0x1804B70", Offset = "0x1803970", VA = "0x181804B70")]
|
||||
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: 0x0600B1CD RID: 45517 RVA: 0x0026B6A4 File Offset: 0x002698A4
|
||||
[Token(Token = "0x600B1CD")]
|
||||
[Address(RVA = "0x18049F0", Offset = "0x18037F0", VA = "0x1818049F0")]
|
||||
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: 0x0600B1CE RID: 45518 RVA: 0x0026B6D4 File Offset: 0x002698D4
|
||||
[Token(Token = "0x600B1CE")]
|
||||
[Address(RVA = "0x1804B00", Offset = "0x1803900", VA = "0x181804B00")]
|
||||
private void DigestUpdate(byte[] inSeed)
|
||||
{
|
||||
IDigest digest = this.digest;
|
||||
int length = inSeed.Length;
|
||||
}
|
||||
|
||||
// Token: 0x0600B1CF RID: 45519 RVA: 0x0026B6F8 File Offset: 0x002698F8
|
||||
[Token(Token = "0x600B1CF")]
|
||||
[Address(RVA = "0x1804A90", Offset = "0x1803890", VA = "0x181804A90")]
|
||||
private void DigestDoFinal(byte[] result)
|
||||
{
|
||||
IDigest digest = this.digest;
|
||||
}
|
||||
|
||||
// Token: 0x0400713D RID: 28989
|
||||
[Token(Token = "0x400713D")]
|
||||
private const long CYCLE_COUNT = 10L;
|
||||
|
||||
// Token: 0x0400713E RID: 28990
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400713E")]
|
||||
private long stateCounter;
|
||||
|
||||
// Token: 0x0400713F RID: 28991
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400713F")]
|
||||
private long seedCounter;
|
||||
|
||||
// Token: 0x04007140 RID: 28992
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007140")]
|
||||
private IDigest digest;
|
||||
|
||||
// Token: 0x04007141 RID: 28993
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007141")]
|
||||
private byte[] state;
|
||||
|
||||
// Token: 0x04007142 RID: 28994
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007142")]
|
||||
private byte[] seed;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user