using System; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators; using BestHTTP.SecureProtocol.Org.BouncyCastle.Math; using BestHTTP.SecureProtocol.Org.BouncyCastle.Security; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake { // Token: 0x02001DF9 RID: 7673 [Token(Token = "0x2001DF9")] public class JPakeParticipant { // Token: 0x0600C06E RID: 49262 RVA: 0x002B6EE8 File Offset: 0x002B50E8 [Token(Token = "0x600C06E")] [Address(RVA = "0x292ED50", Offset = "0x292DD50", VA = "0x18292ED50")] public JPakeParticipant(string participantId, char[] password) { JPakePrimeOrderGroup nist_ = JPakePrimeOrderGroups.NIST_3072; } // Token: 0x0600C06F RID: 49263 RVA: 0x002B6EFC File Offset: 0x002B50FC [Token(Token = "0x600C06F")] [Address(RVA = "0x292EDE0", Offset = "0x292DDE0", VA = "0x18292EDE0")] public JPakeParticipant(string participantId, char[] password, JPakePrimeOrderGroup group) { /* An exception occurred when decompiling this method (0600C06F) 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) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_CF: stloc:ArgumentException(var_8_D9, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Password must not be empty."))) } 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: 0x0600C070 RID: 49264 RVA: 0x002B6FE4 File Offset: 0x002B51E4 [Token(Token = "0x600C070")] [Address(RVA = "0x292F010", Offset = "0x292E010", VA = "0x18292F010")] public JPakeParticipant(string participantId, char[] password, JPakePrimeOrderGroup group, IDigest digest, SecureRandom random) { /* An exception occurred when decompiling this method (0600C070) 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:ArgumentException(var_6_B3, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Password must not be empty."))) } 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: 0x17001DD4 RID: 7636 // (get) Token: 0x0600C071 RID: 49265 RVA: 0x002B70A8 File Offset: 0x002B52A8 [Token(Token = "0x17001DD4")] public virtual int State { [Token(Token = "0x600C071")] [Address(RVA = "0x4F3F50", Offset = "0x4F2F50", VA = "0x1804F3F50", Slot = "4")] get { return this.state; } } // Token: 0x0600C072 RID: 49266 RVA: 0x002B70BC File Offset: 0x002B52BC [Token(Token = "0x600C072")] [Address(RVA = "0x292DD20", Offset = "0x292CD20", VA = "0x18292DD20", Slot = "5")] public virtual JPakeRound1Payload CreateRound1PayloadToSend() { int num = this.state; BigInteger bigInteger = this.q; SecureRandom secureRandom = this.random; BigInteger bigInteger2 = JPakeUtilities.GenerateX1(bigInteger, secureRandom); SecureRandom secureRandom2 = this.random; BigInteger bigInteger3 = this.q; this.x1 = bigInteger2; BigInteger bigInteger4 = JPakeUtilities.GenerateX2(bigInteger3, secureRandom2); BigInteger bigInteger5 = this.x1; BigInteger bigInteger6 = this.g; BigInteger bigInteger7 = this.p; this.x2 = bigInteger4; BigInteger bigInteger8 = DsaKeyPairGenerator.CalculatePublicKey(bigInteger7, bigInteger6, bigInteger5); BigInteger bigInteger9 = this.x2; BigInteger bigInteger10 = this.g; BigInteger bigInteger11 = this.p; this.gx1 = bigInteger8; BigInteger bigInteger12 = DsaKeyPairGenerator.CalculatePublicKey(bigInteger11, bigInteger10, bigInteger9); IDigest digest = this.digest; string text = this.participantId; BigInteger bigInteger13 = this.x1; BigInteger bigInteger14 = this.gx1; BigInteger bigInteger15 = this.g; BigInteger bigInteger16 = this.q; BigInteger bigInteger17 = this.p; this.gx2 = bigInteger12; SecureRandom secureRandom3 = this.random; BigInteger[] array = JPakeUtilities.CalculateZeroKnowledgeProof(bigInteger17, bigInteger16, bigInteger15, bigInteger14, bigInteger13, text, digest, secureRandom3); SecureRandom secureRandom4 = this.random; IDigest digest2 = this.digest; string text2 = this.participantId; BigInteger bigInteger18 = this.x2; BigInteger bigInteger19 = this.gx2; BigInteger bigInteger20 = this.g; BigInteger bigInteger21 = this.q; BigInteger[] array2 = JPakeUtilities.CalculateZeroKnowledgeProof(this.p, bigInteger21, bigInteger20, bigInteger19, bigInteger18, text2, digest2, secureRandom4); string text3 = this.participantId; BigInteger bigInteger22 = this.gx1; BigInteger bigInteger23 = this.gx2; int state_ROUND_1_CREATED = JPakeParticipant.STATE_ROUND_1_CREATED; this.state = state_ROUND_1_CREATED; return new JPakeRound1Payload(text3, bigInteger22, bigInteger23, array, array2); } // Token: 0x0600C073 RID: 49267 RVA: 0x002B7254 File Offset: 0x002B5454 [Token(Token = "0x600C073")] [Address(RVA = "0x292E450", Offset = "0x292D450", VA = "0x18292E450", 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); JPakeUtilities.ValidateGx4(this.gx4); BigInteger bigInteger3 = this.p; string text5 = round1PayloadReceived.ToString(); IDigest digest = this.digest; BigInteger bigInteger4 = this.p; BigInteger bigInteger5 = this.q; BigInteger bigInteger6 = this.g; BigInteger bigInteger7 = this.gx4; string text6 = round1PayloadReceived.ToString(); IDigest digest2 = this.digest; JPakeUtilities.ValidateZeroKnowledgeProof(bigInteger4, bigInteger5, bigInteger6, bigInteger7, knowledgeProofForX, text6, digest2); int state_ROUND_1_VALIDATED = JPakeParticipant.STATE_ROUND_1_VALIDATED; this.state = state_ROUND_1_VALIDATED; } // Token: 0x0600C074 RID: 49268 RVA: 0x002B733C File Offset: 0x002B553C [Token(Token = "0x600C074")] [Address(RVA = "0x292DF80", Offset = "0x292CF80", VA = "0x18292DF80", Slot = "7")] public virtual JPakeRound2Payload CreateRound2PayloadToSend() { 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 = JPakeUtilities.CalculateGA(bigInteger, bigInteger2, bigInteger3, bigInteger4); BigInteger bigInteger6 = JPakeUtilities.CalculateS(this.password); BigInteger bigInteger7 = this.x2; BigInteger bigInteger8 = JPakeUtilities.CalculateX2s(this.q, bigInteger7, bigInteger6); BigInteger bigInteger9 = this.q; BigInteger bigInteger10 = JPakeUtilities.CalculateA(this.p, bigInteger9, bigInteger5, bigInteger8); SecureRandom secureRandom = this.random; IDigest digest = this.digest; string text = this.participantId; BigInteger bigInteger11 = this.q; BigInteger[] array = JPakeUtilities.CalculateZeroKnowledgeProof(this.p, bigInteger11, bigInteger5, bigInteger10, bigInteger8, text, digest, secureRandom); string text2 = this.participantId; int state_ROUND_2_CREATED = JPakeParticipant.STATE_ROUND_2_CREATED; this.state = state_ROUND_2_CREATED; return new JPakeRound2Payload(text2, bigInteger10, array); } // Token: 0x0600C075 RID: 49269 RVA: 0x002B742C File Offset: 0x002B562C [Token(Token = "0x600C075")] [Address(RVA = "0x292E700", Offset = "0x292D700", VA = "0x18292E700", 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 = JPakeUtilities.CalculateGA(bigInteger, bigInteger2, bigInteger3, bigInteger4); 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); JPakeUtilities.ValidateGa(bigInteger5); 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: 0x0600C076 RID: 49270 RVA: 0x002B74F4 File Offset: 0x002B56F4 [Token(Token = "0x600C076")] [Address(RVA = "0x292DB10", Offset = "0x292CB10", VA = "0x18292DB10", 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.b; int num4 = 0; BigInteger bigInteger3 = this.x2; BigInteger bigInteger4 = this.gx4; BigInteger bigInteger5 = this.q; BigInteger bigInteger6 = this.p; this.password = num4; BigInteger bigInteger7 = JPakeUtilities.CalculateKeyingMaterial(bigInteger6, bigInteger5, bigInteger4, bigInteger3, bigInteger, bigInteger2); this.x1 = num4; this.x2 = num4; this.b = num4; int state_KEY_CALCULATED = JPakeParticipant.STATE_KEY_CALCULATED; this.state = state_KEY_CALCULATED; return bigInteger7; } // Token: 0x0600C077 RID: 49271 RVA: 0x002B75B0 File Offset: 0x002B57B0 [Token(Token = "0x600C077")] [Address(RVA = "0x292E200", Offset = "0x292D200", VA = "0x18292E200", 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); int state_ROUND_3_CREATED = JPakeParticipant.STATE_ROUND_3_CREATED; this.state = state_ROUND_3_CREATED; return new JPakeRound3Payload(this.participantId, bigInteger5); } // Token: 0x0600C078 RID: 49272 RVA: 0x002B763C File Offset: 0x002B583C [Token(Token = "0x600C078")] [Address(RVA = "0x292E9D0", Offset = "0x292D9D0", VA = "0x18292E9D0", Slot = "11")] public virtual void ValidateRound3PayloadReceived(JPakeRound3Payload round3PayloadReceived, BigInteger keyingMaterial) { int num = this.state; int num2 = this.state; string text = this.participantId; string text2 = round3PayloadReceived.ToString(); JPakeUtilities.ValidateParticipantIdsDiffer(text, text2); string text3 = this.partnerParticipantId; string text4 = round3PayloadReceived.ToString(); JPakeUtilities.ValidateParticipantIdsEqual(text3, text4); string text5 = this.participantId; BigInteger bigInteger = this.gx3; BigInteger bigInteger2 = this.gx4; IDigest digest = this.digest; int num3 = 0; this.gx1 = num3; this.gx2 = num3; this.gx3 = num3; this.gx4 = num3; int state_ROUND_3_VALIDATED = JPakeParticipant.STATE_ROUND_3_VALIDATED; this.state = state_ROUND_3_VALIDATED; } // Token: 0x040079D2 RID: 31186 [Token(Token = "0x40079D2")] public static readonly int STATE_INITIALIZED; // Token: 0x040079D3 RID: 31187 [Token(Token = "0x40079D3")] public static readonly int STATE_ROUND_1_CREATED; // Token: 0x040079D4 RID: 31188 [Token(Token = "0x40079D4")] public static readonly int STATE_ROUND_1_VALIDATED; // Token: 0x040079D5 RID: 31189 [Token(Token = "0x40079D5")] public static readonly int STATE_ROUND_2_CREATED; // Token: 0x040079D6 RID: 31190 [Token(Token = "0x40079D6")] public static readonly int STATE_ROUND_2_VALIDATED; // Token: 0x040079D7 RID: 31191 [Token(Token = "0x40079D7")] public static readonly int STATE_KEY_CALCULATED; // Token: 0x040079D8 RID: 31192 [Token(Token = "0x40079D8")] public static readonly int STATE_ROUND_3_CREATED; // Token: 0x040079D9 RID: 31193 [Token(Token = "0x40079D9")] public static readonly int STATE_ROUND_3_VALIDATED; // Token: 0x040079DA RID: 31194 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40079DA")] private string participantId; // Token: 0x040079DB RID: 31195 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40079DB")] private char[] password; // Token: 0x040079DC RID: 31196 [FieldOffset(Offset = "0x20")] [Token(Token = "0x40079DC")] private IDigest digest; // Token: 0x040079DD RID: 31197 [FieldOffset(Offset = "0x28")] [Token(Token = "0x40079DD")] private readonly SecureRandom random; // Token: 0x040079DE RID: 31198 [FieldOffset(Offset = "0x30")] [Token(Token = "0x40079DE")] private readonly BigInteger p; // Token: 0x040079DF RID: 31199 [FieldOffset(Offset = "0x38")] [Token(Token = "0x40079DF")] private readonly BigInteger q; // Token: 0x040079E0 RID: 31200 [FieldOffset(Offset = "0x40")] [Token(Token = "0x40079E0")] private readonly BigInteger g; // Token: 0x040079E1 RID: 31201 [FieldOffset(Offset = "0x48")] [Token(Token = "0x40079E1")] private string partnerParticipantId; // Token: 0x040079E2 RID: 31202 [FieldOffset(Offset = "0x50")] [Token(Token = "0x40079E2")] private BigInteger x1; // Token: 0x040079E3 RID: 31203 [FieldOffset(Offset = "0x58")] [Token(Token = "0x40079E3")] private BigInteger x2; // Token: 0x040079E4 RID: 31204 [FieldOffset(Offset = "0x60")] [Token(Token = "0x40079E4")] private BigInteger gx1; // Token: 0x040079E5 RID: 31205 [FieldOffset(Offset = "0x68")] [Token(Token = "0x40079E5")] private BigInteger gx2; // Token: 0x040079E6 RID: 31206 [FieldOffset(Offset = "0x70")] [Token(Token = "0x40079E6")] private BigInteger gx3; // Token: 0x040079E7 RID: 31207 [FieldOffset(Offset = "0x78")] [Token(Token = "0x40079E7")] private BigInteger gx4; // Token: 0x040079E8 RID: 31208 [FieldOffset(Offset = "0x80")] [Token(Token = "0x40079E8")] private BigInteger b; // Token: 0x040079E9 RID: 31209 [FieldOffset(Offset = "0x88")] [Token(Token = "0x40079E9")] private int state; } }