Files
2026-04-10 22:50:51 +02:00

437 lines
20 KiB
C#

using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001D19 RID: 7449
[Token(Token = "0x2001D19")]
public class JPakeParticipant
{
// Token: 0x0600BCA0 RID: 48288 RVA: 0x002AE630 File Offset: 0x002AC830
[Token(Token = "0x600BCA0")]
[Address(RVA = "0x200BB20", Offset = "0x200A920", VA = "0x18200BB20")]
public JPakeParticipant(string participantId, char[] password)
{
JPakePrimeOrderGroup nist_ = JPakePrimeOrderGroups.NIST_3072;
Sha256Digest sha256Digest = new Sha256Digest();
SecureRandom secureRandom = new SecureRandom();
}
// Token: 0x0600BCA1 RID: 48289 RVA: 0x002AE650 File Offset: 0x002AC850
[Token(Token = "0x600BCA1")]
[Address(RVA = "0x200BC20", Offset = "0x200AA20", VA = "0x18200BC20")]
public JPakeParticipant(string participantId, char[] password, JPakePrimeOrderGroup group)
{
Sha256Digest sha256Digest = new Sha256Digest();
SecureRandom secureRandom = new SecureRandom();
}
// Token: 0x0600BCA2 RID: 48290 RVA: 0x002AE66C File Offset: 0x002AC86C
[Token(Token = "0x600BCA2")]
[Address(RVA = "0x200BCD0", Offset = "0x200AAD0", VA = "0x18200BCD0")]
public JPakeParticipant(string participantId, char[] password, JPakePrimeOrderGroup group, IDigest digest, SecureRandom random)
{
/*
An exception occurred when decompiling this method (0600BCA2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeParticipant::.ctor(System.String,System.Char[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakePrimeOrderGroup,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,BestHTTP.SecureProtocol.Org.BouncyCastle.Security.SecureRandom)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A9:
stloc:ArgumentNullException(var_6_B3, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("participantId")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x17001D37 RID: 7479
// (get) Token: 0x0600BCA3 RID: 48291 RVA: 0x002AE730 File Offset: 0x002AC930
[Token(Token = "0x17001D37")]
public virtual int State
{
[Token(Token = "0x600BCA3")]
[Address(RVA = "0x404240", Offset = "0x403040", VA = "0x180404240", Slot = "4")]
get
{
return this.state;
}
}
// Token: 0x0600BCA4 RID: 48292 RVA: 0x002AE744 File Offset: 0x002AC944
[Token(Token = "0x600BCA4")]
[Address(RVA = "0x200A650", Offset = "0x2009450", VA = "0x18200A650", Slot = "5")]
public virtual JPakeRound1Payload CreateRound1PayloadToSend()
{
int num = this.state;
BigInteger bigInteger = this.q;
SecureRandom secureRandom = this.random;
BigInteger zero = JPakeUtilities.Zero;
BigInteger one = JPakeUtilities.One;
BigInteger bigInteger2 = bigInteger.Subtract(one);
BigInteger bigInteger3 = BigIntegers.CreateRandomInRange(zero, bigInteger2, secureRandom);
BigInteger bigInteger4 = this.q;
SecureRandom secureRandom2 = this.random;
this.x1 = bigInteger3;
BigInteger one2 = JPakeUtilities.One;
BigInteger bigInteger5 = bigInteger4.Subtract(one2);
BigInteger bigInteger6 = BigIntegers.CreateRandomInRange(one2, bigInteger5, secureRandom2);
BigInteger bigInteger7 = this.g;
this.x2 = bigInteger6;
BigInteger bigInteger8 = this.p;
BigInteger bigInteger9 = this.x1;
BigInteger bigInteger10 = bigInteger7.ModPow(bigInteger9, bigInteger8);
BigInteger bigInteger11 = this.g;
this.gx1 = bigInteger10;
BigInteger bigInteger12 = this.p;
BigInteger bigInteger13 = this.x2;
BigInteger bigInteger14 = bigInteger11.ModPow(bigInteger13, bigInteger12);
IDigest digest = this.digest;
string text = this.participantId;
BigInteger bigInteger15 = this.x1;
BigInteger bigInteger16 = this.gx1;
BigInteger bigInteger17 = this.g;
BigInteger bigInteger18 = this.q;
BigInteger bigInteger19 = this.p;
this.gx2 = bigInteger14;
SecureRandom secureRandom3 = this.random;
BigInteger[] array = JPakeUtilities.CalculateZeroKnowledgeProof(bigInteger19, bigInteger18, bigInteger17, bigInteger16, bigInteger15, text, digest, secureRandom3);
SecureRandom secureRandom4 = this.random;
IDigest digest2 = this.digest;
string text2 = this.participantId;
BigInteger bigInteger20 = this.x2;
BigInteger bigInteger21 = this.gx2;
BigInteger bigInteger22 = this.g;
BigInteger bigInteger23 = this.q;
BigInteger[] array2 = JPakeUtilities.CalculateZeroKnowledgeProof(this.p, bigInteger23, bigInteger22, bigInteger21, bigInteger20, text2, digest2, secureRandom4);
string text3 = this.participantId;
BigInteger bigInteger24 = this.gx1;
BigInteger bigInteger25 = this.gx2;
int state_ROUND_1_CREATED = JPakeParticipant.STATE_ROUND_1_CREATED;
this.state = state_ROUND_1_CREATED;
return new JPakeRound1Payload(text3, bigInteger24, bigInteger25, array, array2);
}
// Token: 0x0600BCA5 RID: 48293 RVA: 0x002AE90C File Offset: 0x002ACB0C
[Token(Token = "0x600BCA5")]
[Address(RVA = "0x200B030", Offset = "0x2009E30", VA = "0x18200B030", Slot = "6")]
public virtual void ValidateRound1PayloadReceived(JPakeRound1Payload round1PayloadReceived)
{
int num = this.state;
string text = round1PayloadReceived.ToString();
this.partnerParticipantId = text;
string text2 = round1PayloadReceived.ParticipantId;
this.gx3 = text2;
BigInteger bigInteger = round1PayloadReceived.Gx1;
this.gx4 = bigInteger;
BigInteger bigInteger2 = round1PayloadReceived.Gx2;
BigInteger[] knowledgeProofForX = round1PayloadReceived.KnowledgeProofForX1;
string text3 = this.participantId;
string text4 = round1PayloadReceived.ToString();
JPakeUtilities.ValidateParticipantIdsDiffer(text3, text4);
BigInteger bigInteger3 = this.gx4;
BigInteger bigInteger4 = this.p;
string text5 = round1PayloadReceived.ToString();
IDigest digest = this.digest;
BigInteger bigInteger5 = this.p;
BigInteger bigInteger6 = this.q;
BigInteger bigInteger7 = this.g;
BigInteger bigInteger8 = this.gx4;
string text6 = round1PayloadReceived.ToString();
IDigest digest2 = this.digest;
JPakeUtilities.ValidateZeroKnowledgeProof(bigInteger5, bigInteger6, bigInteger7, bigInteger8, knowledgeProofForX, text6, digest2);
int state_ROUND_1_VALIDATED = JPakeParticipant.STATE_ROUND_1_VALIDATED;
this.state = state_ROUND_1_VALIDATED;
}
// Token: 0x0600BCA6 RID: 48294 RVA: 0x002AE9FC File Offset: 0x002ACBFC
[Token(Token = "0x600BCA6")]
[Address(RVA = "0x200A9B0", Offset = "0x20097B0", VA = "0x18200A9B0", Slot = "7")]
public virtual JPakeRound2Payload CreateRound2PayloadToSend()
{
BigInteger bigInteger11;
BigInteger[] array;
string text2;
for (;;)
{
int num = this.state;
int num2 = this.state;
BigInteger bigInteger = this.p;
BigInteger bigInteger2 = this.gx1;
BigInteger bigInteger3 = this.gx3;
BigInteger bigInteger4 = this.gx4;
BigInteger bigInteger5 = bigInteger2.Multiply(bigInteger3).Multiply(bigInteger4).Mod(bigInteger);
BigInteger bigInteger6 = JPakeUtilities.CalculateS(this.password);
BigInteger bigInteger7 = this.x2;
BigInteger bigInteger8 = this.q;
BigInteger bigInteger9 = bigInteger7.Multiply(bigInteger6).Mod(bigInteger8);
BigInteger bigInteger10 = this.p;
bigInteger11 = bigInteger5.ModPow(bigInteger9, bigInteger10);
SecureRandom secureRandom = this.random;
IDigest digest = this.digest;
string text = this.participantId;
BigInteger bigInteger12 = this.q;
array = JPakeUtilities.CalculateZeroKnowledgeProof(this.p, bigInteger12, bigInteger5, bigInteger11, bigInteger9, text, digest, secureRandom);
text2 = this.participantId;
int state_ROUND_2_CREATED = JPakeParticipant.STATE_ROUND_2_CREATED;
this.state = state_ROUND_2_CREATED;
if (text2 != 0)
{
if ((ulong)1L == 0UL)
{
}
if (bigInteger11 != 0)
{
if ((ulong)1L == 0UL)
{
}
if (array != 0)
{
break;
}
}
}
}
JPakeRound2Payload jpakeRound2Payload;
jpakeRound2Payload.participantId = text2;
jpakeRound2Payload.a = bigInteger11;
BigInteger[] array2 = new BigInteger[array.Length];
jpakeRound2Payload.knowledgeProofForX2s = array2;
return jpakeRound2Payload;
}
// Token: 0x0600BCA7 RID: 48295 RVA: 0x002AEB40 File Offset: 0x002ACD40
[Token(Token = "0x600BCA7")]
[Address(RVA = "0x200B370", Offset = "0x200A170", VA = "0x18200B370", Slot = "8")]
public virtual void ValidateRound2PayloadReceived(JPakeRound2Payload round2PayloadReceived)
{
int num = this.state;
int num2 = this.state;
BigInteger bigInteger = this.p;
BigInteger bigInteger2 = this.gx3;
BigInteger bigInteger3 = this.gx1;
BigInteger bigInteger4 = this.gx2;
BigInteger bigInteger5 = bigInteger2.Multiply(bigInteger3).Multiply(bigInteger4).Mod(bigInteger);
string text = round2PayloadReceived.ParticipantId;
this.b = text;
BigInteger a = round2PayloadReceived.A;
string text2 = this.participantId;
string text3 = round2PayloadReceived.ToString();
JPakeUtilities.ValidateParticipantIdsDiffer(text2, text3);
string text4 = this.partnerParticipantId;
string text5 = round2PayloadReceived.ToString();
JPakeUtilities.ValidateParticipantIdsEqual(text4, text5);
BigInteger bigInteger6 = this.p;
string text6 = round2PayloadReceived.ToString();
IDigest digest = this.digest;
int state_ROUND_2_VALIDATED = JPakeParticipant.STATE_ROUND_2_VALIDATED;
this.state = state_ROUND_2_VALIDATED;
}
// Token: 0x0600BCA8 RID: 48296 RVA: 0x002AEC18 File Offset: 0x002ACE18
[Token(Token = "0x600BCA8")]
[Address(RVA = "0x200A390", Offset = "0x2009190", VA = "0x18200A390", Slot = "9")]
public virtual BigInteger CalculateKeyingMaterial()
{
int num = this.state;
int num2 = this.state;
BigInteger bigInteger = JPakeUtilities.CalculateS(this.password);
char[] array = this.password;
int length = array.Length;
int num3 = 0;
Array.Clear(array, num3, length);
BigInteger bigInteger2 = this.x2;
int num4 = 0;
BigInteger bigInteger3 = this.p;
BigInteger bigInteger4 = this.q;
BigInteger bigInteger5 = this.b;
BigInteger bigInteger6 = this.gx4;
this.password = num4;
BigInteger bigInteger7 = bigInteger2.Multiply(bigInteger).Negate().Mod(bigInteger4);
BigInteger bigInteger8 = bigInteger6.ModPow(bigInteger7, bigInteger3).Multiply(bigInteger5).ModPow(bigInteger2, bigInteger3);
this.x1 = num4;
this.x2 = num4;
this.b = num4;
int state_KEY_CALCULATED = JPakeParticipant.STATE_KEY_CALCULATED;
this.state = state_KEY_CALCULATED;
return bigInteger8;
}
// Token: 0x0600BCA9 RID: 48297 RVA: 0x002AECF4 File Offset: 0x002ACEF4
[Token(Token = "0x600BCA9")]
[Address(RVA = "0x200ADE0", Offset = "0x2009BE0", VA = "0x18200ADE0", Slot = "10")]
public virtual JPakeRound3Payload CreateRound3PayloadToSend(BigInteger keyingMaterial)
{
int num = this.state;
int num2 = this.state;
IDigest digest = this.digest;
string text = this.participantId;
string text2 = this.partnerParticipantId;
BigInteger bigInteger = this.gx1;
BigInteger bigInteger2 = this.gx2;
BigInteger bigInteger3 = this.gx3;
BigInteger bigInteger4 = this.gx4;
BigInteger bigInteger5 = JPakeUtilities.CalculateMacTag(text, text2, bigInteger, bigInteger2, bigInteger3, bigInteger4, keyingMaterial, digest);
string text3 = this.participantId;
int state_ROUND_3_CREATED = JPakeParticipant.STATE_ROUND_3_CREATED;
this.state = state_ROUND_3_CREATED;
JPakeRound3Payload jpakeRound3Payload;
jpakeRound3Payload.participantId = text3;
jpakeRound3Payload.macTag = bigInteger5;
return jpakeRound3Payload;
}
// Token: 0x0600BCAA RID: 48298 RVA: 0x002AED90 File Offset: 0x002ACF90
[Token(Token = "0x600BCAA")]
[Address(RVA = "0x200B700", Offset = "0x200A500", VA = "0x18200B700", Slot = "11")]
public virtual void ValidateRound3PayloadReceived(JPakeRound3Payload round3PayloadReceived, BigInteger keyingMaterial)
{
/*
An exception occurred when decompiling this method (0600BCAA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeParticipant::ValidateRound3PayloadReceived(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeRound3Payload,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_CF:
stloc:CryptoException(var_18_D9, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Partner MacTag validation failed. Therefore, the password, MAC, or digest algorithm of each participant does not match.")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x04007819 RID: 30745
[Token(Token = "0x4007819")]
public static readonly int STATE_INITIALIZED;
// Token: 0x0400781A RID: 30746
[Token(Token = "0x400781A")]
public static readonly int STATE_ROUND_1_CREATED;
// Token: 0x0400781B RID: 30747
[Token(Token = "0x400781B")]
public static readonly int STATE_ROUND_1_VALIDATED;
// Token: 0x0400781C RID: 30748
[Token(Token = "0x400781C")]
public static readonly int STATE_ROUND_2_CREATED;
// Token: 0x0400781D RID: 30749
[Token(Token = "0x400781D")]
public static readonly int STATE_ROUND_2_VALIDATED;
// Token: 0x0400781E RID: 30750
[Token(Token = "0x400781E")]
public static readonly int STATE_KEY_CALCULATED;
// Token: 0x0400781F RID: 30751
[Token(Token = "0x400781F")]
public static readonly int STATE_ROUND_3_CREATED;
// Token: 0x04007820 RID: 30752
[Token(Token = "0x4007820")]
public static readonly int STATE_ROUND_3_VALIDATED;
// Token: 0x04007821 RID: 30753
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007821")]
private string participantId;
// Token: 0x04007822 RID: 30754
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007822")]
private char[] password;
// Token: 0x04007823 RID: 30755
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007823")]
private IDigest digest;
// Token: 0x04007824 RID: 30756
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007824")]
private readonly SecureRandom random;
// Token: 0x04007825 RID: 30757
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007825")]
private readonly BigInteger p;
// Token: 0x04007826 RID: 30758
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007826")]
private readonly BigInteger q;
// Token: 0x04007827 RID: 30759
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007827")]
private readonly BigInteger g;
// Token: 0x04007828 RID: 30760
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4007828")]
private string partnerParticipantId;
// Token: 0x04007829 RID: 30761
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4007829")]
private BigInteger x1;
// Token: 0x0400782A RID: 30762
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x400782A")]
private BigInteger x2;
// Token: 0x0400782B RID: 30763
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x400782B")]
private BigInteger gx1;
// Token: 0x0400782C RID: 30764
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x400782C")]
private BigInteger gx2;
// Token: 0x0400782D RID: 30765
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x400782D")]
private BigInteger gx3;
// Token: 0x0400782E RID: 30766
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x400782E")]
private BigInteger gx4;
// Token: 0x0400782F RID: 30767
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x400782F")]
private BigInteger b;
// Token: 0x04007830 RID: 30768
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x4007830")]
private int state;
}
}