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

237 lines
7.0 KiB
C#

using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc7748
{
// Token: 0x02001AF3 RID: 6899
[Token(Token = "0x2001AF3")]
public abstract class X448
{
// Token: 0x0600A602 RID: 42498 RVA: 0x00238824 File Offset: 0x00236A24
[Token(Token = "0x600A602")]
[Address(RVA = "0x74B0A0", Offset = "0x74A0A0", VA = "0x18074B0A0")]
public static bool CalculateAgreement(byte[] k, int kOff, byte[] u, int uOff, byte[] r, int rOff)
{
bool flag;
return !flag;
}
// Token: 0x0600A603 RID: 42499 RVA: 0x00238838 File Offset: 0x00236A38
[Token(Token = "0x600A603")]
[Address(RVA = "0x45D6B0", Offset = "0x45C6B0", VA = "0x18045D6B0")]
private static uint Decode32(byte[] bs, int off)
{
int length = bs.Length;
int num = off + 1;
throw new NullReferenceException();
}
// Token: 0x0600A604 RID: 42500 RVA: 0x00238858 File Offset: 0x00236A58
[Token(Token = "0x600A604")]
[Address(RVA = "0x74B160", Offset = "0x74A160", VA = "0x18074B160")]
private static void DecodeScalar(byte[] k, int kOff, uint[] n)
{
int num = 0;
int length = k.Length;
int num2 = kOff + 1;
byte b = k[k];
num++;
n[0] = (uint)b;
}
// Token: 0x0600A605 RID: 42501 RVA: 0x0023888C File Offset: 0x00236A8C
[Token(Token = "0x600A605")]
[Address(RVA = "0x74B2A0", Offset = "0x74A2A0", VA = "0x18074B2A0")]
public static void GeneratePrivateKey(SecureRandom random, byte[] k)
{
double num = random.NextDouble();
}
// Token: 0x0600A606 RID: 42502 RVA: 0x002388A8 File Offset: 0x00236AA8
[Token(Token = "0x600A606")]
[Address(RVA = "0x74B310", Offset = "0x74A310", VA = "0x18074B310")]
public static void GeneratePublicKey(byte[] k, int kOff, byte[] r, int rOff)
{
uint[] array = new uint[16];
uint[] array2 = new uint[16];
Ed448.ScalarMultBaseXY(k, kOff, array, array2);
X448Field.Inv(array, array);
X448Field.Mul(array, array2, array);
X448Field.Sqr(array, array);
X448Field.Reduce(array, 1);
X448Field.Reduce(array, -1);
X448Field.Encode(array, r, rOff);
}
// Token: 0x0600A607 RID: 42503 RVA: 0x002388FC File Offset: 0x00236AFC
[Token(Token = "0x600A607")]
[Address(RVA = "0x74B460", Offset = "0x74A460", VA = "0x18074B460")]
private static void PointDouble(uint[] x, uint[] z)
{
uint[] array = new uint[16];
uint[] array2 = new uint[16];
X448Field.Add(x, z, array);
X448Field.Sub(x, z, array2);
X448Field.Sqr(array, array);
X448Field.Sqr(array2, array2);
X448Field.Mul(array, array2, x);
X448Field.Sub(array, array2, array);
X448Field.Mul(array, (uint)39082, z);
X448Field.Add(z, array2, z);
X448Field.Mul(z, array, z);
}
// Token: 0x0600A608 RID: 42504 RVA: 0x00238964 File Offset: 0x00236B64
[Token(Token = "0x600A608")]
[Address(RVA = "0x74B590", Offset = "0x74A590", VA = "0x18074B590")]
public static void Precompute()
{
Ed448.Precompute();
}
// Token: 0x0600A609 RID: 42505 RVA: 0x00238978 File Offset: 0x00236B78
[Token(Token = "0x600A609")]
[Address(RVA = "0x74B5E0", Offset = "0x74A5E0", VA = "0x18074B5E0")]
public static void ScalarMult(byte[] k, int kOff, byte[] u, int uOff, byte[] r, int rOff)
{
uint[] array = new uint[14];
int num = 0;
int length = k.Length;
int num2 = kOff + 1;
num++;
byte b;
array[0] = (uint)b;
uint[] array2 = new uint[16];
int num3 = 0;
X448Field.Decode56(u, uOff, array2, num3);
uint num4;
X448Field.Decode56(u, uOff, array2, (int)num4);
uint num5;
X448Field.Decode56(u, uOff, array2, (int)num5);
uint num6;
X448Field.Decode56(u, uOff, array2, (int)num6);
uint num7;
X448Field.Decode56(u, uOff, array2, (int)num7);
uint num8;
X448Field.Decode56(u, uOff, array2, (int)num8);
uint num9;
X448Field.Decode56(u, uOff, array2, (int)num9);
uint num10;
X448Field.Decode56(u, uOff, array2, (int)num10);
uint[] array3 = new uint[16];
uint num11 = array2[num];
num++;
array3[0] = num11;
uint[] array4 = new uint[16];
uint num12;
array4[0] = num12;
uint[] array5 = new uint[16];
array5[0] = num12;
uint[] array6 = new uint[16];
uint[] array7 = new uint[16];
uint[] array8 = new uint[16];
uint num13 = array6[num];
num++;
array7[0] = num13;
X448Field.Sub(array5, array6, array5);
uint num14 = array4[num];
num++;
array6[0] = num14;
X448Field.Sub(array3, array4, array3);
X448Field.Mul(array7, array3, array7);
X448Field.Mul(array5, array6, array5);
X448Field.Sqr(array6, array6);
X448Field.Sqr(array3, array3);
X448Field.Sub(array6, array3, array8);
uint num15;
X448Field.Mul(array8, num15, array4);
num++;
X448Field.Mul(array4, array8, array4);
X448Field.Mul(array3, array6, array3);
X448Field.Sub(array7, array5, array6);
num++;
X448Field.Sqr(array5, array5);
X448Field.Sqr(array6, array6);
X448Field.Mul(array6, array2, array6);
uint num17;
uint num16 = array[(int)num17];
uint num18 = array5[num];
num++;
array5[0] = num18;
num++;
array6[0] = num18;
uint[] array9 = new uint[16];
uint[] array10 = new uint[16];
uint num19 = array4[num];
num++;
array9[0] = num19;
X448Field.Sub(array3, array4, array10);
X448Field.Sqr(array9, array9);
X448Field.Sqr(array10, array10);
X448Field.Mul(array9, array10, array3);
X448Field.Sub(array9, array10, array9);
uint num20;
X448Field.Mul(array9, num20, array4);
num++;
X448Field.Mul(array4, array9, array4);
num++;
X448Field.Inv(array4, array4);
X448Field.Mul(array3, array4, array3);
uint num21 = array3[7];
num21 += (uint)1;
num21 += (uint)1;
uint num22 = array3[num];
num++;
num22 += num21;
array3[0] = num22;
array3[7] = (uint)num;
uint num23 = array3[num];
num++;
num23 += (uint)num;
array3[0] = num23;
array3[7] = 0U;
}
// Token: 0x0600A60A RID: 42506 RVA: 0x00238C68 File Offset: 0x00236E68
[Token(Token = "0x600A60A")]
[Address(RVA = "0x74B310", Offset = "0x74A310", VA = "0x18074B310")]
public static void ScalarMultBase(byte[] k, int kOff, byte[] r, int rOff)
{
uint[] array = new uint[16];
uint[] array2 = new uint[16];
Ed448.ScalarMultBaseXY(k, kOff, array, array2);
X448Field.Inv(array, array);
X448Field.Mul(array, array2, array);
X448Field.Sqr(array, array);
X448Field.Reduce(array, 1);
X448Field.Reduce(array, -1);
X448Field.Encode(array, r, rOff);
}
// Token: 0x0600A60B RID: 42507 RVA: 0x00238CBC File Offset: 0x00236EBC
[Token(Token = "0x600A60B")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected X448()
{
}
// Token: 0x04006CC6 RID: 27846
[Token(Token = "0x4006CC6")]
public const int PointSize = 56;
// Token: 0x04006CC7 RID: 27847
[Token(Token = "0x4006CC7")]
public const int ScalarSize = 56;
// Token: 0x04006CC8 RID: 27848
[Token(Token = "0x4006CC8")]
private const uint C_A = 156326U;
// Token: 0x04006CC9 RID: 27849
[Token(Token = "0x4006CC9")]
private const uint C_A24 = 39082U;
}
}