Files
Apr2020-Cpp2Il-Dump/Assembly-CSharp/BestHTTP/SecureProtocol/Org/BouncyCastle/Crypto/Generators/DHParametersHelper.cs
T
niko 8fc35183db a
2026-04-11 22:19:20 +02:00

172 lines
5.5 KiB
C#

using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
{
// Token: 0x02001C64 RID: 7268
[Token(Token = "0x2001C64")]
internal class DHParametersHelper
{
// Token: 0x0600B620 RID: 46624 RVA: 0x0027D430 File Offset: 0x0027B630
[Token(Token = "0x600B620")]
[Address(RVA = "0x1A29E80", Offset = "0x1A28C80", VA = "0x181A29E80")]
private static BigInteger[] ConstructBigPrimeProducts(int[] primeProducts)
{
BigInteger[] array = new BigInteger[primeProducts.Length];
int num = 0;
if (num < array.Length)
{
BigInteger bigInteger = BigInteger.ValueOf((long)primeProducts[num]);
throw new ArrayTypeMismatchException();
}
return array;
}
// Token: 0x0600B621 RID: 46625 RVA: 0x0027D47C File Offset: 0x0027B67C
[Token(Token = "0x600B621")]
[Address(RVA = "0x1A29F80", Offset = "0x1A28D80", VA = "0x181A29F80")]
internal static BigInteger[] GenerateSafePrimes(int size, int certainty, SecureRandom random)
{
BigInteger bigInteger9;
BigInteger bigInteger11;
ulong num10;
do
{
int num = size - 1;
if (size > 32)
{
int num2 = 0;
int num3;
BigInteger bigInteger = new BigInteger(certainty, num3, random);
num3 = 0;
int[][] array = DHParametersHelper.primeLists;
BigInteger bigInteger6;
if (num2 < array.Length)
{
BigInteger[] bigPrimeProducts = DHParametersHelper.BigPrimeProducts;
BigInteger bigInteger3;
BigInteger bigInteger2 = bigInteger.Remainder(bigInteger3);
int num4 = 0;
int intValue = bigInteger2.IntValue;
if (num2 == 0 && size != 2)
{
BigInteger bigInteger4 = BigInteger.ValueOf((long)size);
BigInteger bigInteger5 = bigInteger.Add(bigInteger4);
int[] array2 = DHParametersHelper.primeProducts;
}
int[][] array3 = DHParametersHelper.primeLists;
if (num4 != 0 && num4 != random)
{
num2++;
num2++;
}
BigInteger six = DHParametersHelper.Six;
bigInteger6 = bigInteger.Add(six);
}
uint num5;
ulong num6;
if (bigInteger6.BitLength != num || !bigInteger6.RabinMillerTest((int)num5, random, num6 != 0UL))
{
continue;
}
BigInteger bigInteger7 = bigInteger6.ShiftLeft(1);
BigInteger one = BigInteger.One;
BigInteger bigInteger8 = bigInteger7.Add(one);
ulong num7;
ulong num8;
if (!bigInteger8.RabinMillerTest(certainty, random, num7 != 0UL) || (certainty > 2 && !bigInteger6.RabinMillerTest(certainty, random, num8 != 0UL)))
{
continue;
}
int nafWeight = WNafUtilities.GetNafWeight(bigInteger8);
BigInteger[] array4 = new BigInteger[2];
}
bigInteger9 = new BigInteger(certainty, 2, random);
BigInteger bigInteger10 = bigInteger9.ShiftLeft(1);
BigInteger one2 = BigInteger.One;
bigInteger11 = bigInteger10.Add(one2);
ulong num9;
if (!bigInteger11.IsProbablePrime(certainty, num9 != 0UL))
{
break;
}
while (certainty <= 2)
{
}
}
while (bigInteger9.IsProbablePrime(certainty, num10 != 0UL));
uint num11;
BigInteger bigInteger12 = new BigInteger(certainty, (int)num11, random);
bigInteger12.nBitLength = bigInteger11;
if (bigInteger12 != 0)
{
}
return bigInteger12;
}
// Token: 0x0600B622 RID: 46626 RVA: 0x0027D5F8 File Offset: 0x0027B7F8
[Token(Token = "0x600B622")]
[Address(RVA = "0x1A2A590", Offset = "0x1A29390", VA = "0x181A2A590")]
internal static BigInteger SelectGenerator(BigInteger p, BigInteger q, SecureRandom random)
{
BigInteger two = BigInteger.Two;
BigInteger bigInteger = p.Subtract(two);
BigInteger bigInteger2 = BigIntegers.CreateRandomInRange(BigInteger.Two, bigInteger, random);
BigInteger two2 = BigInteger.Two;
BigInteger bigInteger3 = bigInteger2.ModPow(two2, p);
while (bigInteger3 != 0)
{
}
return bigInteger3;
}
// Token: 0x0600B623 RID: 46627 RVA: 0x0027D640 File Offset: 0x0027B840
[Token(Token = "0x600B623")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public DHParametersHelper()
{
}
// Token: 0x0600B624 RID: 46628 RVA: 0x0027D654 File Offset: 0x0027B854
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B624")]
[Address(RVA = "0x1A2A6D0", Offset = "0x1A294D0", VA = "0x181A2A6D0")]
static DHParametersHelper()
{
BigInteger bigInteger;
DHParametersHelper.Six = bigInteger;
DHParametersHelper.primeLists = BigInteger.primeLists;
DHParametersHelper.primeProducts = BigInteger.primeProducts;
int[] array = DHParametersHelper.primeProducts;
BigInteger[] array2 = new BigInteger[array.Length];
int num = 0;
if (num < array2.Length)
{
BigInteger bigInteger2 = BigInteger.ValueOf((long)array[num]);
throw new ArrayTypeMismatchException();
}
DHParametersHelper.BigPrimeProducts = array2;
}
// Token: 0x04007388 RID: 29576
[Token(Token = "0x4007388")]
private static readonly BigInteger Six;
// Token: 0x04007389 RID: 29577
[Token(Token = "0x4007389")]
private static readonly int[][] primeLists;
// Token: 0x0400738A RID: 29578
[Token(Token = "0x400738A")]
private static readonly int[] primeProducts;
// Token: 0x0400738B RID: 29579
[Token(Token = "0x400738B")]
private static readonly BigInteger[] BigPrimeProducts;
}
}