a
This commit is contained in:
@@ -0,0 +1,236 @@
|
||||
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: 0x02001A13 RID: 6675
|
||||
[Token(Token = "0x2001A13")]
|
||||
public abstract class X448
|
||||
{
|
||||
// Token: 0x0600A234 RID: 41524 RVA: 0x0022F778 File Offset: 0x0022D978
|
||||
[Token(Token = "0x600A234")]
|
||||
[Address(RVA = "0x1F65D90", Offset = "0x1F64B90", VA = "0x181F65D90")]
|
||||
public static bool CalculateAgreement(byte[] k, int kOff, byte[] u, int uOff, byte[] r, int rOff)
|
||||
{
|
||||
bool flag;
|
||||
return !flag;
|
||||
}
|
||||
|
||||
// Token: 0x0600A235 RID: 41525 RVA: 0x0022F78C File Offset: 0x0022D98C
|
||||
[Token(Token = "0x600A235")]
|
||||
[Address(RVA = "0x1824CD0", Offset = "0x1823AD0", VA = "0x181824CD0")]
|
||||
private static uint Decode32(byte[] bs, int off)
|
||||
{
|
||||
int length = bs.Length;
|
||||
int num = off + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600A236 RID: 41526 RVA: 0x0022F7AC File Offset: 0x0022D9AC
|
||||
[Token(Token = "0x600A236")]
|
||||
[Address(RVA = "0x1F65E50", Offset = "0x1F64C50", VA = "0x181F65E50")]
|
||||
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: 0x0600A237 RID: 41527 RVA: 0x0022F7E0 File Offset: 0x0022D9E0
|
||||
[Token(Token = "0x600A237")]
|
||||
[Address(RVA = "0x1F65F90", Offset = "0x1F64D90", VA = "0x181F65F90")]
|
||||
public static void GeneratePrivateKey(SecureRandom random, byte[] k)
|
||||
{
|
||||
double num = random.NextDouble();
|
||||
}
|
||||
|
||||
// Token: 0x0600A238 RID: 41528 RVA: 0x0022F7FC File Offset: 0x0022D9FC
|
||||
[Token(Token = "0x600A238")]
|
||||
[Address(RVA = "0x1F66000", Offset = "0x1F64E00", VA = "0x181F66000")]
|
||||
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: 0x0600A239 RID: 41529 RVA: 0x0022F850 File Offset: 0x0022DA50
|
||||
[Token(Token = "0x600A239")]
|
||||
[Address(RVA = "0x1F66150", Offset = "0x1F64F50", VA = "0x181F66150")]
|
||||
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: 0x0600A23A RID: 41530 RVA: 0x0022F8B8 File Offset: 0x0022DAB8
|
||||
[Token(Token = "0x600A23A")]
|
||||
[Address(RVA = "0x1F66280", Offset = "0x1F65080", VA = "0x181F66280")]
|
||||
public static void Precompute()
|
||||
{
|
||||
Ed448.Precompute();
|
||||
}
|
||||
|
||||
// Token: 0x0600A23B RID: 41531 RVA: 0x0022F8CC File Offset: 0x0022DACC
|
||||
[Token(Token = "0x600A23B")]
|
||||
[Address(RVA = "0x1F662D0", Offset = "0x1F650D0", VA = "0x181F662D0")]
|
||||
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: 0x0600A23C RID: 41532 RVA: 0x0022FBBC File Offset: 0x0022DDBC
|
||||
[Token(Token = "0x600A23C")]
|
||||
[Address(RVA = "0x1F66000", Offset = "0x1F64E00", VA = "0x181F66000")]
|
||||
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: 0x0600A23D RID: 41533 RVA: 0x0022FC10 File Offset: 0x0022DE10
|
||||
[Token(Token = "0x600A23D")]
|
||||
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
|
||||
protected X448()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04006B0D RID: 27405
|
||||
[Token(Token = "0x4006B0D")]
|
||||
public const int PointSize = 56;
|
||||
|
||||
// Token: 0x04006B0E RID: 27406
|
||||
[Token(Token = "0x4006B0E")]
|
||||
public const int ScalarSize = 56;
|
||||
|
||||
// Token: 0x04006B0F RID: 27407
|
||||
[Token(Token = "0x4006B0F")]
|
||||
private const uint C_A = 156326U;
|
||||
|
||||
// Token: 0x04006B10 RID: 27408
|
||||
[Token(Token = "0x4006B10")]
|
||||
private const uint C_A24 = 39082U;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user