89 lines
3.3 KiB
C#
89 lines
3.3 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
|
|
{
|
|
// Token: 0x0200172E RID: 5934
|
|
[Token(Token = "0x200172E")]
|
|
[StructLayout(3)]
|
|
public class ECMqvBasicAgreement : IBasicAgreement
|
|
{
|
|
// Token: 0x0600A06E RID: 41070 RVA: 0x00254580 File Offset: 0x00252780
|
|
[Token(Token = "0x600A06E")]
|
|
[Address(RVA = "0x659370", Offset = "0x657D70", VA = "0x180659370", Slot = "7")]
|
|
public virtual void Init(ICipherParameters parameters)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
}
|
|
while (parameters != 0 && ((parameters != 0 && (parameters == 0 || parameters == 0)) || (parameters != 0 && parameters == 0)));
|
|
this.privParams = num;
|
|
}
|
|
|
|
// Token: 0x0600A06F RID: 41071 RVA: 0x002545B8 File Offset: 0x002527B8
|
|
[Token(Token = "0x600A06F")]
|
|
[Address(RVA = "0x659310", Offset = "0x657D10", VA = "0x180659310", Slot = "8")]
|
|
public virtual int GetFieldSize()
|
|
{
|
|
string text = this.privParams.ToString().m_stringLength.ToString();
|
|
text += 0;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600A070 RID: 41072 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x600A070")]
|
|
[Address(RVA = "0x658D70", Offset = "0x657770", VA = "0x180658D70", Slot = "9")]
|
|
public virtual BigInteger CalculateAgreement(ICipherParameters pubKey)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x0600A071 RID: 41073 RVA: 0x002545E4 File Offset: 0x002527E4
|
|
[Token(Token = "0x600A071")]
|
|
[Address(RVA = "0x659000", Offset = "0x657A00", VA = "0x180659000")]
|
|
private static ECPoint CalculateMqvAgreement(ECDomainParameters parameters, ECPrivateKeyParameters d1U, ECPrivateKeyParameters d2U, ECPublicKeyParameters Q2U, ECPublicKeyParameters Q1V, ECPublicKeyParameters Q2V)
|
|
{
|
|
BigInteger n = parameters.n;
|
|
int num = 0;
|
|
int num2 = n.BitLength;
|
|
num2++;
|
|
num2 -= num;
|
|
BigInteger bigInteger = BigInteger.One.ShiftLeft(num2);
|
|
ECCurve curve = parameters.curve;
|
|
ECPoint q = Q2U.q;
|
|
string text = ECAlgorithms.CleanPoint(curve, q).CurveCoordinateSystem.ToString();
|
|
BigInteger bigInteger3;
|
|
BigInteger bigInteger2 = bigInteger3.SetBit(num2);
|
|
BigInteger bigInteger4 = d1U.d.Multiply(bigInteger2);
|
|
BigInteger bigInteger6;
|
|
BigInteger bigInteger5 = bigInteger6.Mod(n);
|
|
ECPoint ecpoint;
|
|
string text2 = ecpoint.CurveCoordinateSystem.ToString();
|
|
BigInteger bigInteger8;
|
|
BigInteger bigInteger7 = bigInteger8.SetBit(num2);
|
|
BigInteger bigInteger9 = parameters.h.Multiply(bigInteger5).Mod(n);
|
|
BigInteger bigInteger10 = bigInteger7.Multiply(bigInteger9).Mod(n);
|
|
ECPoint ecpoint2;
|
|
return ECAlgorithms.SumOfTwoMultiplies(ecpoint2, bigInteger10, ecpoint, bigInteger9);
|
|
}
|
|
|
|
// Token: 0x0600A072 RID: 41074 RVA: 0x002546B0 File Offset: 0x002528B0
|
|
[Token(Token = "0x600A072")]
|
|
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
|
public ECMqvBasicAgreement()
|
|
{
|
|
}
|
|
|
|
// Token: 0x04006985 RID: 27013
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4006985")]
|
|
protected internal MqvPrivateParameters privParams;
|
|
}
|
|
}
|