This commit is contained in:
niko
2026-04-12 16:51:38 +02:00
parent 1b6f6d81d0
commit c12fbe3fc6
17828 changed files with 2994770 additions and 0 deletions
@@ -0,0 +1,416 @@
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;
}
}
@@ -0,0 +1,98 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001DFA RID: 7674
[Token(Token = "0x2001DFA")]
public class JPakePrimeOrderGroup
{
// Token: 0x0600C07A RID: 49274 RVA: 0x002B76F0 File Offset: 0x002B58F0
[Token(Token = "0x600C07A")]
[Address(RVA = "0x25A7360", Offset = "0x25A6360", VA = "0x1825A7360")]
public JPakePrimeOrderGroup(BigInteger p, BigInteger q, BigInteger g)
{
}
// Token: 0x0600C07B RID: 49275 RVA: 0x002B7700 File Offset: 0x002B5900
[Token(Token = "0x600C07B")]
[Address(RVA = "0x25A6EF0", Offset = "0x25A5EF0", VA = "0x1825A6EF0")]
public JPakePrimeOrderGroup(BigInteger p, BigInteger q, BigInteger g, bool skipChecks)
{
/*
An exception occurred when decompiling this method (0600C07B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakePrimeOrderGroup::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A1:
stloc:ArgumentException(var_6_AB, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("p must be prime")))
}
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: 0x17001DD5 RID: 7637
// (get) Token: 0x0600C07C RID: 49276 RVA: 0x002B77BC File Offset: 0x002B59BC
[Token(Token = "0x17001DD5")]
public virtual BigInteger P
{
[Token(Token = "0x600C07C")]
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "4")]
get
{
return this.p;
}
}
// Token: 0x17001DD6 RID: 7638
// (get) Token: 0x0600C07D RID: 49277 RVA: 0x002B77D0 File Offset: 0x002B59D0
[Token(Token = "0x17001DD6")]
public virtual BigInteger Q
{
[Token(Token = "0x600C07D")]
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0", Slot = "5")]
get
{
return this.q;
}
}
// Token: 0x17001DD7 RID: 7639
// (get) Token: 0x0600C07E RID: 49278 RVA: 0x002B77E4 File Offset: 0x002B59E4
[Token(Token = "0x17001DD7")]
public virtual BigInteger G
{
[Token(Token = "0x600C07E")]
[Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0", Slot = "6")]
get
{
return this.g;
}
}
// Token: 0x040079EA RID: 31210
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40079EA")]
private readonly BigInteger p;
// Token: 0x040079EB RID: 31211
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40079EB")]
private readonly BigInteger q;
// Token: 0x040079EC RID: 31212
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40079EC")]
private readonly BigInteger g;
}
}
@@ -0,0 +1,53 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001DFB RID: 7675
[Token(Token = "0x2001DFB")]
public class JPakePrimeOrderGroups
{
// Token: 0x0600C07F RID: 49279 RVA: 0x002B77F8 File Offset: 0x002B59F8
[Token(Token = "0x600C07F")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public JPakePrimeOrderGroups()
{
}
// Token: 0x0600C080 RID: 49280 RVA: 0x002B780C File Offset: 0x002B5A0C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600C080")]
[Address(RVA = "0x25A7380", Offset = "0x25A6380", VA = "0x1825A7380")]
static JPakePrimeOrderGroups()
{
BigInteger bigInteger = new BigInteger("fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b6512669455d402251fb593d8d58fabfc5f5ba30f6cb9b556cd7813b801d346ff26660b76b9950a5a49f9fe8047b1022c24fbba9d7feb7c61bf83b57e7c6a8a6150f04fb83f6d3c51ec3023554135a169132f675f3ae2b61d72aeff22203199dd14801c7", 16);
BigInteger bigInteger2 = new BigInteger("9760508f15230bccb292b982a2eb840bf0581cf5", 16);
BigInteger bigInteger3 = new BigInteger("f7e1a085d69b3ddecbbcab5c36b857b97994afbbfa3aea82f9574c0b3d0782675159578ebad4594fe67107108180b449167123e84c281613b7cf09328cc8a6e13c167a8b547c8d28e0a3ae1e2bb3a675916ea37f0bfa213562f1fb627a01243bcca4f1bea8519089a883dfe15ae59f06928b665e807b552564014c3bfecf492a", 16);
ulong num;
JPakePrimeOrderGroups.SUN_JCE_1024 = new JPakePrimeOrderGroup(bigInteger, bigInteger2, bigInteger3, num != 0UL);
BigInteger bigInteger4 = new BigInteger("C196BA05AC29E1F9C3C72D56DFFC6154A033F1477AC88EC37F09BE6C5BB95F51C296DD20D1A28A067CCC4D4316A4BD1DCA55ED1066D438C35AEBAABF57E7DAE428782A95ECA1C143DB701FD48533A3C18F0FE23557EA7AE619ECACC7E0B51652A8776D02A425567DED36EABD90CA33A1E8D988F0BBB92D02D1D20290113BB562CE1FC856EEB7CDD92D33EEA6F410859B179E7E789A8F75F645FAE2E136D252BFFAFF89528945C1ABE705A38DBC2D364AADE99BE0D0AAD82E5320121496DC65B3930E38047294FF877831A16D5228418DE8AB275D7D75651CEFED65F78AFC3EA7FE4D79B35F62A0402A1117599ADAC7B269A59F353CF450E6982D3B1702D9CA83", 16);
BigInteger bigInteger5 = new BigInteger("90EAF4D1AF0708B1B612FF35E0A2997EB9E9D263C9CE659528945C0D", 16);
BigInteger bigInteger6 = new BigInteger("A59A749A11242C58C894E9E5A91804E8FA0AC64B56288F8D47D51B1EDC4D65444FECA0111D78F35FC9FDD4CB1F1B79A3BA9CBEE83A3F811012503C8117F98E5048B089E387AF6949BF8784EBD9EF45876F2E6A5A495BE64B6E770409494B7FEE1DBB1E4B2BC2A53D4F893D418B7159592E4FFFDF6969E91D770DAEBD0B5CB14C00AD68EC7DC1E5745EA55C706C4A1C5C88964E34D09DEB753AD418C1AD0F4FDFD049A955E5D78491C0B7A2F1575A008CCD727AB376DB6E695515B05BD412F5B8C2F4C77EE10DA48ABD53F5DD498927EE7B692BBBCDA2FB23A516C5B4533D73980B2A3B60E384ED200AE21B40D273651AD6060C13D97FD69AA13C5611A51B9085", 16);
ulong num2;
JPakePrimeOrderGroups.NIST_2048 = new JPakePrimeOrderGroup(bigInteger4, bigInteger5, bigInteger6, num2 != 0UL);
BigInteger bigInteger7 = new BigInteger("90066455B5CFC38F9CAA4A48B4281F292C260FEEF01FD61037E56258A7795A1C7AD46076982CE6BB956936C6AB4DCFE05E6784586940CA544B9B2140E1EB523F009D20A7E7880E4E5BFA690F1B9004A27811CD9904AF70420EEFD6EA11EF7DA129F58835FF56B89FAA637BC9AC2EFAAB903402229F491D8D3485261CD068699B6BA58A1DDBBEF6DB51E8FE34E8A78E542D7BA351C21EA8D8F1D29F5D5D15939487E27F4416B0CA632C59EFD1B1EB66511A5A0FBF615B766C5862D0BD8A3FE7A0E0DA0FB2FE1FCB19E8F9996A8EA0FCCDE538175238FC8B0EE6F29AF7F642773EBE8CD5402415A01451A840476B2FCEB0E388D30D4B376C37FE401C2A2C2F941DAD179C540C1C8CE030D460C4D983BE9AB0B20F69144C1AE13F9383EA1C08504FB0BF321503EFE43488310DD8DC77EC5B8349B8BFE97C2C560EA878DE87C11E3D597F1FEA742D73EEC7F37BE43949EF1A0D15C3F3E3FC0A8335617055AC91328EC22B50FC15B941D3D1624CD88BC25F3E941FDDC6200689581BFEC416B4B2CB73", 16);
BigInteger bigInteger8 = new BigInteger("CFA0478A54717B08CE64805B76E5B14249A77A4838469DF7F7DC987EFCCFB11D", 16);
BigInteger bigInteger9 = new BigInteger("5E5CBA992E0A680D885EB903AEA78E4A45A469103D448EDE3B7ACCC54D521E37F84A4BDD5B06B0970CC2D2BBB715F7B82846F9A0C393914C792E6A923E2117AB805276A975AADB5261D91673EA9AAFFEECBFA6183DFCB5D3B7332AA19275AFA1F8EC0B60FB6F66CC23AE4870791D5982AAD1AA9485FD8F4A60126FEB2CF05DB8A7F0F09B3397F3937F2E90B9E5B9C9B6EFEF642BC48351C46FB171B9BFA9EF17A961CE96C7E7A7CC3D3D03DFAD1078BA21DA425198F07D2481622BCE45969D9C4D6063D72AB7A0F08B2F49A7CC6AF335E08C4720E31476B67299E231F8BD90B39AC3AE3BE0C6B6CACEF8289A2E2873D58E51E029CAFBD55E6841489AB66B5B4B9BA6E2F784660896AFF387D92844CCB8B69475496DE19DA2E58259B090489AC8E62363CDF82CFD8EF2A427ABCD65750B506F56DDE3B988567A88126B914D7828E2B63A6D7ED0747EC59E0E0A23CE7D8A74C1D2C2A7AFB6A29799620F00E11C33787F7DED3B30E1A22D09F1FBDA1ABBBFBF25CAE05A13F812E34563F99410E73B", 16);
ulong num3;
JPakePrimeOrderGroups.NIST_3072 = new JPakePrimeOrderGroup(bigInteger7, bigInteger8, bigInteger9, num3 != 0UL);
}
// Token: 0x040079ED RID: 31213
[Token(Token = "0x40079ED")]
public static readonly JPakePrimeOrderGroup SUN_JCE_1024;
// Token: 0x040079EE RID: 31214
[Token(Token = "0x40079EE")]
public static readonly JPakePrimeOrderGroup NIST_2048;
// Token: 0x040079EF RID: 31215
[Token(Token = "0x40079EF")]
public static readonly JPakePrimeOrderGroup NIST_3072;
}
}
@@ -0,0 +1,135 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001DFC RID: 7676
[Token(Token = "0x2001DFC")]
public class JPakeRound1Payload
{
// Token: 0x0600C081 RID: 49281 RVA: 0x002B78C8 File Offset: 0x002B5AC8
[Token(Token = "0x600C081")]
[Address(RVA = "0x25A75D0", Offset = "0x25A65D0", VA = "0x1825A75D0")]
public JPakeRound1Payload(string participantId, BigInteger gx1, BigInteger gx2, BigInteger[] knowledgeProofForX1, BigInteger[] knowledgeProofForX2)
{
/*
An exception occurred when decompiling this method (0600C081)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeRound1Payload::.ctor(System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[],BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5E:
stloc:ArgumentNullException(var_3_68, 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: 0x17001DD8 RID: 7640
// (get) Token: 0x0600C082 RID: 49282 RVA: 0x002B7940 File Offset: 0x002B5B40
[Token(Token = "0x17001DD8")]
public virtual string ParticipantId
{
[Token(Token = "0x600C082")]
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "4")]
get
{
return this.participantId;
}
}
// Token: 0x17001DD9 RID: 7641
// (get) Token: 0x0600C083 RID: 49283 RVA: 0x002B7954 File Offset: 0x002B5B54
[Token(Token = "0x17001DD9")]
public virtual BigInteger Gx1
{
[Token(Token = "0x600C083")]
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0", Slot = "5")]
get
{
return this.gx1;
}
}
// Token: 0x17001DDA RID: 7642
// (get) Token: 0x0600C084 RID: 49284 RVA: 0x002B7968 File Offset: 0x002B5B68
[Token(Token = "0x17001DDA")]
public virtual BigInteger Gx2
{
[Token(Token = "0x600C084")]
[Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0", Slot = "6")]
get
{
return this.gx2;
}
}
// Token: 0x17001DDB RID: 7643
// (get) Token: 0x0600C085 RID: 49285 RVA: 0x002B797C File Offset: 0x002B5B7C
[Token(Token = "0x17001DDB")]
public virtual BigInteger[] KnowledgeProofForX1
{
[Token(Token = "0x600C085")]
[Address(RVA = "0x25A7870", Offset = "0x25A6870", VA = "0x1825A7870", Slot = "7")]
get
{
BigInteger[] array = new BigInteger[this.knowledgeProofForX1.Length];
BigInteger[] array2 = this.knowledgeProofForX1;
int length = array2.Length;
Array.Copy(array2, array, length);
return array;
}
}
// Token: 0x17001DDC RID: 7644
// (get) Token: 0x0600C086 RID: 49286 RVA: 0x002B79B8 File Offset: 0x002B5BB8
[Token(Token = "0x17001DDC")]
public virtual BigInteger[] KnowledgeProofForX2
{
[Token(Token = "0x600C086")]
[Address(RVA = "0x25A78E0", Offset = "0x25A68E0", VA = "0x1825A78E0", Slot = "8")]
get
{
BigInteger[] array = new BigInteger[this.knowledgeProofForX2.Length];
BigInteger[] array2 = this.knowledgeProofForX2;
int length = array2.Length;
Array.Copy(array2, array, length);
return array;
}
}
// Token: 0x040079F0 RID: 31216
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40079F0")]
private readonly string participantId;
// Token: 0x040079F1 RID: 31217
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40079F1")]
private readonly BigInteger gx1;
// Token: 0x040079F2 RID: 31218
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40079F2")]
private readonly BigInteger gx2;
// Token: 0x040079F3 RID: 31219
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40079F3")]
private readonly BigInteger[] knowledgeProofForX1;
// Token: 0x040079F4 RID: 31220
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40079F4")]
private readonly BigInteger[] knowledgeProofForX2;
}
}
@@ -0,0 +1,95 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001DFD RID: 7677
[Token(Token = "0x2001DFD")]
public class JPakeRound2Payload
{
// Token: 0x0600C087 RID: 49287 RVA: 0x002B79F4 File Offset: 0x002B5BF4
[Token(Token = "0x600C087")]
[Address(RVA = "0x25A7950", Offset = "0x25A6950", VA = "0x1825A7950")]
public JPakeRound2Payload(string participantId, BigInteger a, BigInteger[] knowledgeProofForX2s)
{
/*
An exception occurred when decompiling this method (0600C087)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeRound2Payload::.ctor(System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4D:
stloc:ArgumentNullException(var_3_57, 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: 0x17001DDD RID: 7645
// (get) Token: 0x0600C088 RID: 49288 RVA: 0x002B7A58 File Offset: 0x002B5C58
[Token(Token = "0x17001DDD")]
public virtual string ParticipantId
{
[Token(Token = "0x600C088")]
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "4")]
get
{
return this.participantId;
}
}
// Token: 0x17001DDE RID: 7646
// (get) Token: 0x0600C089 RID: 49289 RVA: 0x002B7A6C File Offset: 0x002B5C6C
[Token(Token = "0x17001DDE")]
public virtual BigInteger A
{
[Token(Token = "0x600C089")]
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0", Slot = "5")]
get
{
return this.a;
}
}
// Token: 0x17001DDF RID: 7647
// (get) Token: 0x0600C08A RID: 49290 RVA: 0x002B7A80 File Offset: 0x002B5C80
[Token(Token = "0x17001DDF")]
public virtual BigInteger[] KnowledgeProofForX2s
{
[Token(Token = "0x600C08A")]
[Address(RVA = "0x25A7B00", Offset = "0x25A6B00", VA = "0x1825A7B00", Slot = "6")]
get
{
BigInteger[] array = new BigInteger[this.knowledgeProofForX2s.Length];
BigInteger[] array2 = this.knowledgeProofForX2s;
int length = array2.Length;
Array.Copy(array2, array, length);
return array;
}
}
// Token: 0x040079F5 RID: 31221
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40079F5")]
private readonly string participantId;
// Token: 0x040079F6 RID: 31222
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40079F6")]
private readonly BigInteger a;
// Token: 0x040079F7 RID: 31223
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40079F7")]
private readonly BigInteger[] knowledgeProofForX2s;
}
}
@@ -0,0 +1,56 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001DFE RID: 7678
[Token(Token = "0x2001DFE")]
public class JPakeRound3Payload
{
// Token: 0x0600C08B RID: 49291 RVA: 0x002B7ABC File Offset: 0x002B5CBC
[Token(Token = "0x600C08B")]
[Address(RVA = "0x417DD0", Offset = "0x416DD0", VA = "0x180417DD0")]
public JPakeRound3Payload(string participantId, BigInteger magTag)
{
this.participantId = participantId;
this.macTag = magTag;
}
// Token: 0x17001DE0 RID: 7648
// (get) Token: 0x0600C08C RID: 49292 RVA: 0x002B7AE0 File Offset: 0x002B5CE0
[Token(Token = "0x17001DE0")]
public virtual string ParticipantId
{
[Token(Token = "0x600C08C")]
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "4")]
get
{
return this.participantId;
}
}
// Token: 0x17001DE1 RID: 7649
// (get) Token: 0x0600C08D RID: 49293 RVA: 0x002B7AF4 File Offset: 0x002B5CF4
[Token(Token = "0x17001DE1")]
public virtual BigInteger MacTag
{
[Token(Token = "0x600C08D")]
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0", Slot = "5")]
get
{
return this.macTag;
}
}
// Token: 0x040079F8 RID: 31224
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40079F8")]
private readonly string participantId;
// Token: 0x040079F9 RID: 31225
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40079F9")]
private readonly BigInteger macTag;
}
}
@@ -0,0 +1,411 @@
using System;
using System.Text;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
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: 0x02001DFF RID: 7679
[Token(Token = "0x2001DFF")]
public abstract class JPakeUtilities
{
// Token: 0x0600C08E RID: 49294 RVA: 0x002B7B08 File Offset: 0x002B5D08
[Token(Token = "0x600C08E")]
[Address(RVA = "0x25A8780", Offset = "0x25A7780", VA = "0x1825A8780")]
public static BigInteger GenerateX1(BigInteger q, SecureRandom random)
{
BigInteger zero = JPakeUtilities.Zero;
BigInteger one = JPakeUtilities.One;
BigInteger bigInteger = q.Subtract(one);
return BigIntegers.CreateRandomInRange(zero, bigInteger, random);
}
// Token: 0x0600C08F RID: 49295 RVA: 0x002B7B38 File Offset: 0x002B5D38
[Token(Token = "0x600C08F")]
[Address(RVA = "0x25A8820", Offset = "0x25A7820", VA = "0x1825A8820")]
public static BigInteger GenerateX2(BigInteger q, SecureRandom random)
{
BigInteger one = JPakeUtilities.One;
BigInteger bigInteger = q.Subtract(one);
return BigIntegers.CreateRandomInRange(one, bigInteger, random);
}
// Token: 0x0600C090 RID: 49296 RVA: 0x002B7B64 File Offset: 0x002B5D64
[Token(Token = "0x600C090")]
[Address(RVA = "0x25A84C0", Offset = "0x25A74C0", VA = "0x1825A84C0")]
public static BigInteger CalculateS(char[] password)
{
Encoding utf = Encoding.UTF8;
BigInteger bigInteger;
return bigInteger;
}
// Token: 0x0600C091 RID: 49297 RVA: 0x002B7B80 File Offset: 0x002B5D80
[Token(Token = "0x600C091")]
[Address(RVA = "0x257E6F0", Offset = "0x257D6F0", VA = "0x18257E6F0")]
public static BigInteger CalculateGx(BigInteger p, BigInteger g, BigInteger x)
{
return g.ModPow(x, p);
}
// Token: 0x0600C092 RID: 49298 RVA: 0x002B7B9C File Offset: 0x002B5D9C
[Token(Token = "0x600C092")]
[Address(RVA = "0x25A7BA0", Offset = "0x25A6BA0", VA = "0x1825A7BA0")]
public static BigInteger CalculateGA(BigInteger p, BigInteger gx1, BigInteger gx3, BigInteger gx4)
{
return gx1.Multiply(gx3).Multiply(gx4).Mod(p);
}
// Token: 0x0600C093 RID: 49299 RVA: 0x002B7BC4 File Offset: 0x002B5DC4
[Token(Token = "0x600C093")]
[Address(RVA = "0x25A8540", Offset = "0x25A7540", VA = "0x1825A8540")]
public static BigInteger CalculateX2s(BigInteger q, BigInteger x2, BigInteger s)
{
return x2.Multiply(s).Mod(q);
}
// Token: 0x0600C094 RID: 49300 RVA: 0x002B7BE4 File Offset: 0x002B5DE4
[Token(Token = "0x600C094")]
[Address(RVA = "0x25A7B70", Offset = "0x25A6B70", VA = "0x1825A7B70")]
public static BigInteger CalculateA(BigInteger p, BigInteger q, BigInteger gA, BigInteger x2s)
{
return gA.ModPow(x2s, p);
}
// Token: 0x0600C095 RID: 49301 RVA: 0x002B7C00 File Offset: 0x002B5E00
[Token(Token = "0x600C095")]
[Address(RVA = "0x25A8580", Offset = "0x25A7580", VA = "0x1825A8580")]
public static BigInteger[] CalculateZeroKnowledgeProof(BigInteger p, BigInteger q, BigInteger g, BigInteger gx, BigInteger x, string participantId, IDigest digest, SecureRandom random)
{
BigInteger zero = JPakeUtilities.Zero;
BigInteger one = JPakeUtilities.One;
BigInteger bigInteger = q.Subtract(one);
BigInteger bigInteger3;
BigInteger bigInteger2 = g.ModPow(bigInteger3, p);
BigInteger[] array = new BigInteger[2];
if (bigInteger2 != 0)
{
}
array[0] = bigInteger2;
BigInteger bigInteger5;
BigInteger bigInteger4 = bigInteger3.Subtract(bigInteger5).Mod(q);
if (bigInteger4 != 0)
{
}
array[1] = bigInteger4;
return array;
}
// Token: 0x0600C096 RID: 49302 RVA: 0x002B7C6C File Offset: 0x002B5E6C
[Token(Token = "0x600C096")]
[Address(RVA = "0x25A7C00", Offset = "0x25A6C00", VA = "0x1825A7C00")]
private static BigInteger CalculateHashForZeroKnowledgeProof(BigInteger g, BigInteger gr, BigInteger gx, string participantId, IDigest digest)
{
byte[] array = BigIntegers.AsUnsignedByteArray(g);
byte[] array2 = BigIntegers.AsUnsignedByteArray(gr);
byte[] array3 = BigIntegers.AsUnsignedByteArray(gx);
Encoding utf = Encoding.UTF8;
byte[] array4;
return new BigInteger(array4);
}
// Token: 0x0600C097 RID: 49303 RVA: 0x002B7CA4 File Offset: 0x002B5EA4
[Token(Token = "0x600C097")]
[Address(RVA = "0x25A8EB0", Offset = "0x25A7EB0", VA = "0x1825A8EB0")]
public static void ValidateGx4(BigInteger gx4)
{
}
// Token: 0x0600C098 RID: 49304 RVA: 0x002B7CBC File Offset: 0x002B5EBC
[Token(Token = "0x600C098")]
[Address(RVA = "0x25A8E00", Offset = "0x25A7E00", VA = "0x1825A8E00")]
public static void ValidateGa(BigInteger ga)
{
}
// Token: 0x0600C099 RID: 49305 RVA: 0x002B7CD4 File Offset: 0x002B5ED4
[Token(Token = "0x600C099")]
[Address(RVA = "0x25A9310", Offset = "0x25A8310", VA = "0x1825A9310")]
public static void ValidateZeroKnowledgeProof(BigInteger p, BigInteger q, BigInteger g, BigInteger gx, BigInteger[] zeroKnowledgeProof, string participantId, IDigest digest)
{
/*
An exception occurred when decompiling this method (0600C099)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateZeroKnowledgeProof(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[],System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_69:
stloc:CryptoException(var_7_73, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Zero-knowledge proof validation failed")))
}
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: 0x0600C09A RID: 49306 RVA: 0x002B7D58 File Offset: 0x002B5F58
[Token(Token = "0x600C09A")]
[Address(RVA = "0x25A7E60", Offset = "0x25A6E60", VA = "0x1825A7E60")]
public static BigInteger CalculateKeyingMaterial(BigInteger p, BigInteger q, BigInteger gx4, BigInteger x2, BigInteger s, BigInteger B)
{
BigInteger bigInteger2;
BigInteger bigInteger = bigInteger2.Negate().Mod(q);
BigInteger bigInteger3 = gx4.ModPow(bigInteger, p);
BigInteger bigInteger4;
return bigInteger4.ModPow(x2, p);
}
// Token: 0x0600C09B RID: 49307 RVA: 0x002B7D8C File Offset: 0x002B5F8C
[Token(Token = "0x600C09B")]
[Address(RVA = "0x25A90F0", Offset = "0x25A80F0", VA = "0x1825A90F0")]
public static void ValidateParticipantIdsDiffer(string participantId1, string participantId2)
{
/*
An exception occurred when decompiling this method (0600C09B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateParticipantIdsDiffer(System.String,System.String)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_0B:
stloc:CryptoException(var_0_20, newobj:CryptoException(CryptoException::.ctor, call:string(string::Concat, ldstr:string("Both participants are using the same participantId ("), ldloc:string(participantId1), ldstr:string("). This is not allowed. Each participant must use a unique 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.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: 0x0600C09C RID: 49308 RVA: 0x002B7DBC File Offset: 0x002B5FBC
[Token(Token = "0x600C09C")]
[Address(RVA = "0x25A9190", Offset = "0x25A8190", VA = "0x1825A9190")]
public static void ValidateParticipantIdsEqual(string expectedParticipantId, string actualParticipantId)
{
if (expectedParticipantId.Equals(actualParticipantId))
{
return;
}
string[] array = new string[5];
throw new NullReferenceException();
}
// Token: 0x0600C09D RID: 49309 RVA: 0x002B7E48 File Offset: 0x002B6048
[Token(Token = "0x600C09D")]
[Address(RVA = "0x25A9080", Offset = "0x25A8080", VA = "0x1825A9080")]
public static void ValidateNotNull(object obj, string description)
{
/*
An exception occurred when decompiling this method (0600C09D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateNotNull(System.Object,System.String)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_05:
stloc:ArgumentNullException(var_0_0B, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldloc:string(description)))
}
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: 0x0600C09E RID: 49310 RVA: 0x002B7E60 File Offset: 0x002B6060
[Token(Token = "0x600C09E")]
[Address(RVA = "0x25A8090", Offset = "0x25A7090", VA = "0x1825A8090")]
public static BigInteger CalculateMacTag(string participantId, string partnerParticipantId, BigInteger gx1, BigInteger gx2, BigInteger gx3, BigInteger gx4, BigInteger keyingMaterial, IDigest digest)
{
Encoding utf = Encoding.UTF8;
byte[] array;
KeyParameter keyParameter = new KeyParameter(array);
HMac hmac;
IDigest underlyingDigest = hmac.GetUnderlyingDigest();
int num = 0;
Arrays.Fill(array, (byte)num);
JPakeUtilities.UpdateMac(hmac, "KC_1_U");
JPakeUtilities.UpdateMac(hmac, participantId);
JPakeUtilities.UpdateMac(hmac, partnerParticipantId);
byte[] array2 = BigIntegers.AsUnsignedByteArray(gx1);
JPakeUtilities.UpdateMac(hmac, array2);
byte[] array3 = BigIntegers.AsUnsignedByteArray(gx2);
JPakeUtilities.UpdateMac(hmac, array3);
byte[] array4;
JPakeUtilities.UpdateMac(hmac, array4);
byte[] array5;
JPakeUtilities.UpdateMac(hmac, array5);
return new BigInteger(MacUtilities.DoFinal(hmac));
}
// Token: 0x0600C09F RID: 49311 RVA: 0x002B7EF8 File Offset: 0x002B60F8
[Token(Token = "0x600C09F")]
[Address(RVA = "0x25A7F20", Offset = "0x25A6F20", VA = "0x1825A7F20")]
private static byte[] CalculateMacKey(BigInteger keyingMaterial, IDigest digest)
{
byte[] array = BigIntegers.AsUnsignedByteArray(keyingMaterial);
JPakeUtilities.UpdateDigest(digest, array);
Encoding utf = Encoding.UTF8;
return DigestUtilities.DoFinal(digest);
}
// Token: 0x0600C0A0 RID: 49312 RVA: 0x002B7F28 File Offset: 0x002B6128
[Token(Token = "0x600C0A0")]
[Address(RVA = "0x25A8F60", Offset = "0x25A7F60", VA = "0x1825A8F60")]
public static void ValidateMacTag(string participantId, string partnerParticipantId, BigInteger gx1, BigInteger gx2, BigInteger gx3, BigInteger gx4, BigInteger keyingMaterial, IDigest digest, BigInteger partnerMacTag)
{
/*
An exception occurred when decompiling this method (0600C0A0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateMacTag(System.String,System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_05:
stloc:CryptoException(var_2_0F, 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: 0x0600C0A1 RID: 49313 RVA: 0x002B7F44 File Offset: 0x002B6144
[Token(Token = "0x600C0A1")]
[Address(RVA = "0x25A8AC0", Offset = "0x25A7AC0", VA = "0x1825A8AC0")]
private static void UpdateDigest(IDigest digest, BigInteger bigInteger)
{
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
JPakeUtilities.UpdateDigest(digest, array);
}
// Token: 0x0600C0A2 RID: 49314 RVA: 0x002B7F60 File Offset: 0x002B6160
[Token(Token = "0x600C0A2")]
[Address(RVA = "0x25A8BD0", Offset = "0x25A7BD0", VA = "0x1825A8BD0")]
private static void UpdateDigest(IDigest digest, string str)
{
Encoding utf = Encoding.UTF8;
}
// Token: 0x0600C0A3 RID: 49315 RVA: 0x002B7F7C File Offset: 0x002B617C
[Token(Token = "0x600C0A3")]
[Address(RVA = "0x25A8B30", Offset = "0x25A7B30", VA = "0x1825A8B30")]
private static void UpdateDigest(IDigest digest, byte[] bytes)
{
int length = bytes.Length;
int num = 0;
Arrays.Fill(bytes, (byte)num);
}
// Token: 0x0600C0A4 RID: 49316 RVA: 0x002B7FA0 File Offset: 0x002B61A0
[Token(Token = "0x600C0A4")]
[Address(RVA = "0x25A88D0", Offset = "0x25A78D0", VA = "0x1825A88D0")]
private static void UpdateDigestIncludingSize(IDigest digest, BigInteger bigInteger)
{
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
JPakeUtilities.UpdateDigestIncludingSize(digest, array);
}
// Token: 0x0600C0A5 RID: 49317 RVA: 0x002B7FBC File Offset: 0x002B61BC
[Token(Token = "0x600C0A5")]
[Address(RVA = "0x25A8A30", Offset = "0x25A7A30", VA = "0x1825A8A30")]
private static void UpdateDigestIncludingSize(IDigest digest, string str)
{
Encoding utf = Encoding.UTF8;
}
// Token: 0x0600C0A6 RID: 49318 RVA: 0x002B7FD8 File Offset: 0x002B61D8
[Token(Token = "0x600C0A6")]
[Address(RVA = "0x25A8940", Offset = "0x25A7940", VA = "0x1825A8940")]
private static void UpdateDigestIncludingSize(IDigest digest, byte[] bytes)
{
byte[] array = Pack.UInt32_To_BE((uint)bytes.Length);
int length = bytes.Length;
int num = 0;
Arrays.Fill(bytes, (byte)num);
}
// Token: 0x0600C0A7 RID: 49319 RVA: 0x002B800C File Offset: 0x002B620C
[Token(Token = "0x600C0A7")]
[Address(RVA = "0x25A8C60", Offset = "0x25A7C60", VA = "0x1825A8C60")]
private static void UpdateMac(IMac mac, BigInteger bigInteger)
{
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
JPakeUtilities.UpdateMac(mac, array);
}
// Token: 0x0600C0A8 RID: 49320 RVA: 0x002B8028 File Offset: 0x002B6228
[Token(Token = "0x600C0A8")]
[Address(RVA = "0x25A8D70", Offset = "0x25A7D70", VA = "0x1825A8D70")]
private static void UpdateMac(IMac mac, string str)
{
Encoding utf = Encoding.UTF8;
}
// Token: 0x0600C0A9 RID: 49321 RVA: 0x002B8044 File Offset: 0x002B6244
[Token(Token = "0x600C0A9")]
[Address(RVA = "0x25A8CD0", Offset = "0x25A7CD0", VA = "0x1825A8CD0")]
private static void UpdateMac(IMac mac, byte[] bytes)
{
int length = bytes.Length;
int num = 0;
Arrays.Fill(bytes, (byte)num);
}
// Token: 0x0600C0AA RID: 49322 RVA: 0x002B8068 File Offset: 0x002B6268
[Token(Token = "0x600C0AA")]
[Address(RVA = "0x25A88C0", Offset = "0x25A78C0", VA = "0x1825A88C0")]
private static byte[] IntToByteArray(int value)
{
return Pack.UInt32_To_BE((uint)value);
}
// Token: 0x0600C0AB RID: 49323 RVA: 0x002B807C File Offset: 0x002B627C
[Token(Token = "0x600C0AB")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected JPakeUtilities()
{
}
// Token: 0x040079FA RID: 31226
[Token(Token = "0x40079FA")]
public static readonly BigInteger Zero = BigInteger.Zero;
// Token: 0x040079FB RID: 31227
[Token(Token = "0x40079FB")]
public static readonly BigInteger One = BigInteger.One;
}
}