119 lines
3.2 KiB
C#
119 lines
3.2 KiB
C#
using System;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Runtime.InteropServices;
|
|
using System.Threading;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Prng
|
|
{
|
|
// Token: 0x020015F2 RID: 5618
|
|
[Token(Token = "0x20015F2")]
|
|
[StructLayout(3)]
|
|
public class VmpcRandomGenerator : IRandomGenerator
|
|
{
|
|
// Token: 0x0600961F RID: 38431 RVA: 0x0021488C File Offset: 0x00212A8C
|
|
[Token(Token = "0x600961F")]
|
|
[Address(RVA = "0x1E4D9B0", Offset = "0x1E4C3B0", VA = "0x181E4D9B0")]
|
|
public VmpcRandomGenerator()
|
|
{
|
|
byte[] array = new byte[256];
|
|
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.B31A9EA1A2718942996E7F94106F0FC798C174C8).FieldHandle);
|
|
this.P = array;
|
|
this.s = (byte)((ulong)190L);
|
|
base..ctor();
|
|
}
|
|
|
|
// Token: 0x06009620 RID: 38432 RVA: 0x002148CC File Offset: 0x00212ACC
|
|
[Token(Token = "0x6009620")]
|
|
[Address(RVA = "0x1E4D4E0", Offset = "0x1E4BEE0", VA = "0x181E4D4E0", Slot = "8")]
|
|
public virtual void AddSeedMaterial(byte[] seed)
|
|
{
|
|
int num = 0;
|
|
int length = seed.Length;
|
|
if (num < length)
|
|
{
|
|
byte[] p = this.P;
|
|
byte b = this.n;
|
|
int length2 = p.Length;
|
|
byte b2;
|
|
byte b3;
|
|
b2 += b3;
|
|
byte b4 = this.s;
|
|
b2 += b4;
|
|
byte b5;
|
|
this.s = b5;
|
|
int length3 = p.Length;
|
|
byte[] p2 = this.P;
|
|
byte b6 = this.s;
|
|
num++;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009621 RID: 38433 RVA: 0x00214940 File Offset: 0x00212B40
|
|
[Token(Token = "0x6009621")]
|
|
[Address(RVA = "0x1E4D640", Offset = "0x1E4C040", VA = "0x181E4D640", Slot = "9")]
|
|
public virtual void AddSeedMaterial(long seed)
|
|
{
|
|
byte[] array = Pack.UInt64_To_BE((ulong)seed);
|
|
((IRandomGenerator)this).AddSeedMaterial(array);
|
|
}
|
|
|
|
// Token: 0x06009622 RID: 38434 RVA: 0x0021495C File Offset: 0x00212B5C
|
|
[Token(Token = "0x6009622")]
|
|
[Address(RVA = "0x1E4D970", Offset = "0x1E4C370", VA = "0x181E4D970", Slot = "10")]
|
|
public virtual void NextBytes(byte[] bytes)
|
|
{
|
|
this.NextBytes(bytes);
|
|
}
|
|
|
|
// Token: 0x06009623 RID: 38435 RVA: 0x00214978 File Offset: 0x00212B78
|
|
[Token(Token = "0x6009623")]
|
|
[Address(RVA = "0x1E4D680", Offset = "0x1E4C080", VA = "0x181E4D680", Slot = "11")]
|
|
public virtual void NextBytes(byte[] bytes, int start, int len)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
byte[] p = this.P;
|
|
byte[] p2 = this.P;
|
|
byte b = this.n;
|
|
int length = p2.Length;
|
|
byte b2 = this.s;
|
|
byte b3;
|
|
b3 += b2;
|
|
byte b4;
|
|
this.s = b4;
|
|
int length2 = p2.Length;
|
|
byte[] p3 = this.P;
|
|
byte b5 = this.n;
|
|
int length3 = p3.Length;
|
|
byte b6 = this.s;
|
|
byte[] p4 = this.P;
|
|
byte b7 = this.s;
|
|
Monitor.Exit(p);
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
}
|
|
|
|
// Token: 0x0400631C RID: 25372
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x400631C")]
|
|
private byte n;
|
|
|
|
// Token: 0x0400631D RID: 25373
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x400631D")]
|
|
private byte[] P;
|
|
|
|
// Token: 0x0400631E RID: 25374
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x400631E")]
|
|
private byte s;
|
|
}
|
|
}
|