This commit is contained in:
niko
2026-04-10 22:50:51 +02:00
parent 6d1607d5a2
commit f18d448581
17033 changed files with 2863270 additions and 0 deletions
@@ -0,0 +1,436 @@
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;
}
}
@@ -0,0 +1,98 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001D1A RID: 7450
[Token(Token = "0x2001D1A")]
public class JPakePrimeOrderGroup
{
// Token: 0x0600BCAC RID: 48300 RVA: 0x002AEE88 File Offset: 0x002AD088
[Token(Token = "0x600BCAC")]
[Address(RVA = "0x200C470", Offset = "0x200B270", VA = "0x18200C470")]
public JPakePrimeOrderGroup(BigInteger p, BigInteger q, BigInteger g)
{
}
// Token: 0x0600BCAD RID: 48301 RVA: 0x002AEE98 File Offset: 0x002AD098
[Token(Token = "0x600BCAD")]
[Address(RVA = "0x200C000", Offset = "0x200AE00", VA = "0x18200C000")]
public JPakePrimeOrderGroup(BigInteger p, BigInteger q, BigInteger g, bool skipChecks)
{
/*
An exception occurred when decompiling this method (0600BCAD)
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: 0x17001D38 RID: 7480
// (get) Token: 0x0600BCAE RID: 48302 RVA: 0x002AEF54 File Offset: 0x002AD154
[Token(Token = "0x17001D38")]
public virtual BigInteger P
{
[Token(Token = "0x600BCAE")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20", Slot = "4")]
get
{
return this.p;
}
}
// Token: 0x17001D39 RID: 7481
// (get) Token: 0x0600BCAF RID: 48303 RVA: 0x002AEF68 File Offset: 0x002AD168
[Token(Token = "0x17001D39")]
public virtual BigInteger Q
{
[Token(Token = "0x600BCAF")]
[Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40", Slot = "5")]
get
{
return this.q;
}
}
// Token: 0x17001D3A RID: 7482
// (get) Token: 0x0600BCB0 RID: 48304 RVA: 0x002AEF7C File Offset: 0x002AD17C
[Token(Token = "0x17001D3A")]
public virtual BigInteger G
{
[Token(Token = "0x600BCB0")]
[Address(RVA = "0x3F6400", Offset = "0x3F5200", VA = "0x1803F6400", Slot = "6")]
get
{
return this.g;
}
}
// Token: 0x04007831 RID: 30769
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007831")]
private readonly BigInteger p;
// Token: 0x04007832 RID: 30770
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007832")]
private readonly BigInteger q;
// Token: 0x04007833 RID: 30771
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007833")]
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: 0x02001D1B RID: 7451
[Token(Token = "0x2001D1B")]
public class JPakePrimeOrderGroups
{
// Token: 0x0600BCB1 RID: 48305 RVA: 0x002AEF90 File Offset: 0x002AD190
[Token(Token = "0x600BCB1")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public JPakePrimeOrderGroups()
{
}
// Token: 0x0600BCB2 RID: 48306 RVA: 0x002AEFA4 File Offset: 0x002AD1A4
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BCB2")]
[Address(RVA = "0x200C490", Offset = "0x200B290", VA = "0x18200C490")]
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: 0x04007834 RID: 30772
[Token(Token = "0x4007834")]
public static readonly JPakePrimeOrderGroup SUN_JCE_1024;
// Token: 0x04007835 RID: 30773
[Token(Token = "0x4007835")]
public static readonly JPakePrimeOrderGroup NIST_2048;
// Token: 0x04007836 RID: 30774
[Token(Token = "0x4007836")]
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: 0x02001D1C RID: 7452
[Token(Token = "0x2001D1C")]
public class JPakeRound1Payload
{
// Token: 0x0600BCB3 RID: 48307 RVA: 0x002AF060 File Offset: 0x002AD260
[Token(Token = "0x600BCB3")]
[Address(RVA = "0x200C6E0", Offset = "0x200B4E0", VA = "0x18200C6E0")]
public JPakeRound1Payload(string participantId, BigInteger gx1, BigInteger gx2, BigInteger[] knowledgeProofForX1, BigInteger[] knowledgeProofForX2)
{
/*
An exception occurred when decompiling this method (0600BCB3)
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: 0x17001D3B RID: 7483
// (get) Token: 0x0600BCB4 RID: 48308 RVA: 0x002AF0D8 File Offset: 0x002AD2D8
[Token(Token = "0x17001D3B")]
public virtual string ParticipantId
{
[Token(Token = "0x600BCB4")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20", Slot = "4")]
get
{
return this.participantId;
}
}
// Token: 0x17001D3C RID: 7484
// (get) Token: 0x0600BCB5 RID: 48309 RVA: 0x002AF0EC File Offset: 0x002AD2EC
[Token(Token = "0x17001D3C")]
public virtual BigInteger Gx1
{
[Token(Token = "0x600BCB5")]
[Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40", Slot = "5")]
get
{
return this.gx1;
}
}
// Token: 0x17001D3D RID: 7485
// (get) Token: 0x0600BCB6 RID: 48310 RVA: 0x002AF100 File Offset: 0x002AD300
[Token(Token = "0x17001D3D")]
public virtual BigInteger Gx2
{
[Token(Token = "0x600BCB6")]
[Address(RVA = "0x3F6400", Offset = "0x3F5200", VA = "0x1803F6400", Slot = "6")]
get
{
return this.gx2;
}
}
// Token: 0x17001D3E RID: 7486
// (get) Token: 0x0600BCB7 RID: 48311 RVA: 0x002AF114 File Offset: 0x002AD314
[Token(Token = "0x17001D3E")]
public virtual BigInteger[] KnowledgeProofForX1
{
[Token(Token = "0x600BCB7")]
[Address(RVA = "0x200C980", Offset = "0x200B780", VA = "0x18200C980", 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: 0x17001D3F RID: 7487
// (get) Token: 0x0600BCB8 RID: 48312 RVA: 0x002AF150 File Offset: 0x002AD350
[Token(Token = "0x17001D3F")]
public virtual BigInteger[] KnowledgeProofForX2
{
[Token(Token = "0x600BCB8")]
[Address(RVA = "0x200C9F0", Offset = "0x200B7F0", VA = "0x18200C9F0", 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: 0x04007837 RID: 30775
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007837")]
private readonly string participantId;
// Token: 0x04007838 RID: 30776
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007838")]
private readonly BigInteger gx1;
// Token: 0x04007839 RID: 30777
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007839")]
private readonly BigInteger gx2;
// Token: 0x0400783A RID: 30778
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400783A")]
private readonly BigInteger[] knowledgeProofForX1;
// Token: 0x0400783B RID: 30779
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400783B")]
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: 0x02001D1D RID: 7453
[Token(Token = "0x2001D1D")]
public class JPakeRound2Payload
{
// Token: 0x0600BCB9 RID: 48313 RVA: 0x002AF18C File Offset: 0x002AD38C
[Token(Token = "0x600BCB9")]
[Address(RVA = "0x200CA60", Offset = "0x200B860", VA = "0x18200CA60")]
public JPakeRound2Payload(string participantId, BigInteger a, BigInteger[] knowledgeProofForX2s)
{
/*
An exception occurred when decompiling this method (0600BCB9)
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: 0x17001D40 RID: 7488
// (get) Token: 0x0600BCBA RID: 48314 RVA: 0x002AF1F0 File Offset: 0x002AD3F0
[Token(Token = "0x17001D40")]
public virtual string ParticipantId
{
[Token(Token = "0x600BCBA")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20", Slot = "4")]
get
{
return this.participantId;
}
}
// Token: 0x17001D41 RID: 7489
// (get) Token: 0x0600BCBB RID: 48315 RVA: 0x002AF204 File Offset: 0x002AD404
[Token(Token = "0x17001D41")]
public virtual BigInteger A
{
[Token(Token = "0x600BCBB")]
[Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40", Slot = "5")]
get
{
return this.a;
}
}
// Token: 0x17001D42 RID: 7490
// (get) Token: 0x0600BCBC RID: 48316 RVA: 0x002AF218 File Offset: 0x002AD418
[Token(Token = "0x17001D42")]
public virtual BigInteger[] KnowledgeProofForX2s
{
[Token(Token = "0x600BCBC")]
[Address(RVA = "0x200CC10", Offset = "0x200BA10", VA = "0x18200CC10", 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: 0x0400783C RID: 30780
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400783C")]
private readonly string participantId;
// Token: 0x0400783D RID: 30781
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400783D")]
private readonly BigInteger a;
// Token: 0x0400783E RID: 30782
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400783E")]
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: 0x02001D1E RID: 7454
[Token(Token = "0x2001D1E")]
public class JPakeRound3Payload
{
// Token: 0x0600BCBD RID: 48317 RVA: 0x002AF254 File Offset: 0x002AD454
[Token(Token = "0x600BCBD")]
[Address(RVA = "0x4089A0", Offset = "0x4077A0", VA = "0x1804089A0")]
public JPakeRound3Payload(string participantId, BigInteger magTag)
{
this.participantId = participantId;
this.macTag = magTag;
}
// Token: 0x17001D43 RID: 7491
// (get) Token: 0x0600BCBE RID: 48318 RVA: 0x002AF278 File Offset: 0x002AD478
[Token(Token = "0x17001D43")]
public virtual string ParticipantId
{
[Token(Token = "0x600BCBE")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20", Slot = "4")]
get
{
return this.participantId;
}
}
// Token: 0x17001D44 RID: 7492
// (get) Token: 0x0600BCBF RID: 48319 RVA: 0x002AF28C File Offset: 0x002AD48C
[Token(Token = "0x17001D44")]
public virtual BigInteger MacTag
{
[Token(Token = "0x600BCBF")]
[Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40", Slot = "5")]
get
{
return this.macTag;
}
}
// Token: 0x0400783F RID: 30783
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400783F")]
private readonly string participantId;
// Token: 0x04007840 RID: 30784
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007840")]
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: 0x02001D1F RID: 7455
[Token(Token = "0x2001D1F")]
public abstract class JPakeUtilities
{
// Token: 0x0600BCC0 RID: 48320 RVA: 0x002AF2A0 File Offset: 0x002AD4A0
[Token(Token = "0x600BCC0")]
[Address(RVA = "0x200D890", Offset = "0x200C690", VA = "0x18200D890")]
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: 0x0600BCC1 RID: 48321 RVA: 0x002AF2D0 File Offset: 0x002AD4D0
[Token(Token = "0x600BCC1")]
[Address(RVA = "0x200D930", Offset = "0x200C730", VA = "0x18200D930")]
public static BigInteger GenerateX2(BigInteger q, SecureRandom random)
{
BigInteger one = JPakeUtilities.One;
BigInteger bigInteger = q.Subtract(one);
return BigIntegers.CreateRandomInRange(one, bigInteger, random);
}
// Token: 0x0600BCC2 RID: 48322 RVA: 0x002AF2FC File Offset: 0x002AD4FC
[Token(Token = "0x600BCC2")]
[Address(RVA = "0x200D5D0", Offset = "0x200C3D0", VA = "0x18200D5D0")]
public static BigInteger CalculateS(char[] password)
{
Encoding utf = Encoding.UTF8;
BigInteger bigInteger;
return bigInteger;
}
// Token: 0x0600BCC3 RID: 48323 RVA: 0x002AF318 File Offset: 0x002AD518
[Token(Token = "0x600BCC3")]
[Address(RVA = "0x1A2ACD0", Offset = "0x1A29AD0", VA = "0x181A2ACD0")]
public static BigInteger CalculateGx(BigInteger p, BigInteger g, BigInteger x)
{
return g.ModPow(x, p);
}
// Token: 0x0600BCC4 RID: 48324 RVA: 0x002AF334 File Offset: 0x002AD534
[Token(Token = "0x600BCC4")]
[Address(RVA = "0x200CCB0", Offset = "0x200BAB0", VA = "0x18200CCB0")]
public static BigInteger CalculateGA(BigInteger p, BigInteger gx1, BigInteger gx3, BigInteger gx4)
{
return gx1.Multiply(gx3).Multiply(gx4).Mod(p);
}
// Token: 0x0600BCC5 RID: 48325 RVA: 0x002AF35C File Offset: 0x002AD55C
[Token(Token = "0x600BCC5")]
[Address(RVA = "0x200D650", Offset = "0x200C450", VA = "0x18200D650")]
public static BigInteger CalculateX2s(BigInteger q, BigInteger x2, BigInteger s)
{
return x2.Multiply(s).Mod(q);
}
// Token: 0x0600BCC6 RID: 48326 RVA: 0x002AF37C File Offset: 0x002AD57C
[Token(Token = "0x600BCC6")]
[Address(RVA = "0x200CC80", Offset = "0x200BA80", VA = "0x18200CC80")]
public static BigInteger CalculateA(BigInteger p, BigInteger q, BigInteger gA, BigInteger x2s)
{
return gA.ModPow(x2s, p);
}
// Token: 0x0600BCC7 RID: 48327 RVA: 0x002AF398 File Offset: 0x002AD598
[Token(Token = "0x600BCC7")]
[Address(RVA = "0x200D690", Offset = "0x200C490", VA = "0x18200D690")]
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: 0x0600BCC8 RID: 48328 RVA: 0x002AF404 File Offset: 0x002AD604
[Token(Token = "0x600BCC8")]
[Address(RVA = "0x200CD10", Offset = "0x200BB10", VA = "0x18200CD10")]
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: 0x0600BCC9 RID: 48329 RVA: 0x002AF43C File Offset: 0x002AD63C
[Token(Token = "0x600BCC9")]
[Address(RVA = "0x200DFC0", Offset = "0x200CDC0", VA = "0x18200DFC0")]
public static void ValidateGx4(BigInteger gx4)
{
}
// Token: 0x0600BCCA RID: 48330 RVA: 0x002AF454 File Offset: 0x002AD654
[Token(Token = "0x600BCCA")]
[Address(RVA = "0x200DF10", Offset = "0x200CD10", VA = "0x18200DF10")]
public static void ValidateGa(BigInteger ga)
{
}
// Token: 0x0600BCCB RID: 48331 RVA: 0x002AF46C File Offset: 0x002AD66C
[Token(Token = "0x600BCCB")]
[Address(RVA = "0x200E420", Offset = "0x200D220", VA = "0x18200E420")]
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 (0600BCCB)
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: 0x0600BCCC RID: 48332 RVA: 0x002AF4F0 File Offset: 0x002AD6F0
[Token(Token = "0x600BCCC")]
[Address(RVA = "0x200CF70", Offset = "0x200BD70", VA = "0x18200CF70")]
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: 0x0600BCCD RID: 48333 RVA: 0x002AF524 File Offset: 0x002AD724
[Token(Token = "0x600BCCD")]
[Address(RVA = "0x200E200", Offset = "0x200D000", VA = "0x18200E200")]
public static void ValidateParticipantIdsDiffer(string participantId1, string participantId2)
{
/*
An exception occurred when decompiling this method (0600BCCD)
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: 0x0600BCCE RID: 48334 RVA: 0x002AF554 File Offset: 0x002AD754
[Token(Token = "0x600BCCE")]
[Address(RVA = "0x200E2A0", Offset = "0x200D0A0", VA = "0x18200E2A0")]
public static void ValidateParticipantIdsEqual(string expectedParticipantId, string actualParticipantId)
{
if (expectedParticipantId.Equals(actualParticipantId))
{
return;
}
string[] array = new string[5];
throw new NullReferenceException();
}
// Token: 0x0600BCCF RID: 48335 RVA: 0x002AF5E0 File Offset: 0x002AD7E0
[Token(Token = "0x600BCCF")]
[Address(RVA = "0x200E190", Offset = "0x200CF90", VA = "0x18200E190")]
public static void ValidateNotNull(object obj, string description)
{
/*
An exception occurred when decompiling this method (0600BCCF)
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: 0x0600BCD0 RID: 48336 RVA: 0x002AF5F8 File Offset: 0x002AD7F8
[Token(Token = "0x600BCD0")]
[Address(RVA = "0x200D1A0", Offset = "0x200BFA0", VA = "0x18200D1A0")]
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: 0x0600BCD1 RID: 48337 RVA: 0x002AF690 File Offset: 0x002AD890
[Token(Token = "0x600BCD1")]
[Address(RVA = "0x200D030", Offset = "0x200BE30", VA = "0x18200D030")]
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: 0x0600BCD2 RID: 48338 RVA: 0x002AF6C0 File Offset: 0x002AD8C0
[Token(Token = "0x600BCD2")]
[Address(RVA = "0x200E070", Offset = "0x200CE70", VA = "0x18200E070")]
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 (0600BCD2)
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: 0x0600BCD3 RID: 48339 RVA: 0x002AF6DC File Offset: 0x002AD8DC
[Token(Token = "0x600BCD3")]
[Address(RVA = "0x200DBD0", Offset = "0x200C9D0", VA = "0x18200DBD0")]
private static void UpdateDigest(IDigest digest, BigInteger bigInteger)
{
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
JPakeUtilities.UpdateDigest(digest, array);
}
// Token: 0x0600BCD4 RID: 48340 RVA: 0x002AF6F8 File Offset: 0x002AD8F8
[Token(Token = "0x600BCD4")]
[Address(RVA = "0x200DCE0", Offset = "0x200CAE0", VA = "0x18200DCE0")]
private static void UpdateDigest(IDigest digest, string str)
{
Encoding utf = Encoding.UTF8;
}
// Token: 0x0600BCD5 RID: 48341 RVA: 0x002AF714 File Offset: 0x002AD914
[Token(Token = "0x600BCD5")]
[Address(RVA = "0x200DC40", Offset = "0x200CA40", VA = "0x18200DC40")]
private static void UpdateDigest(IDigest digest, byte[] bytes)
{
int length = bytes.Length;
int num = 0;
Arrays.Fill(bytes, (byte)num);
}
// Token: 0x0600BCD6 RID: 48342 RVA: 0x002AF738 File Offset: 0x002AD938
[Token(Token = "0x600BCD6")]
[Address(RVA = "0x200D9E0", Offset = "0x200C7E0", VA = "0x18200D9E0")]
private static void UpdateDigestIncludingSize(IDigest digest, BigInteger bigInteger)
{
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
JPakeUtilities.UpdateDigestIncludingSize(digest, array);
}
// Token: 0x0600BCD7 RID: 48343 RVA: 0x002AF754 File Offset: 0x002AD954
[Token(Token = "0x600BCD7")]
[Address(RVA = "0x200DB40", Offset = "0x200C940", VA = "0x18200DB40")]
private static void UpdateDigestIncludingSize(IDigest digest, string str)
{
Encoding utf = Encoding.UTF8;
}
// Token: 0x0600BCD8 RID: 48344 RVA: 0x002AF770 File Offset: 0x002AD970
[Token(Token = "0x600BCD8")]
[Address(RVA = "0x200DA50", Offset = "0x200C850", VA = "0x18200DA50")]
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: 0x0600BCD9 RID: 48345 RVA: 0x002AF7A4 File Offset: 0x002AD9A4
[Token(Token = "0x600BCD9")]
[Address(RVA = "0x200DD70", Offset = "0x200CB70", VA = "0x18200DD70")]
private static void UpdateMac(IMac mac, BigInteger bigInteger)
{
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
JPakeUtilities.UpdateMac(mac, array);
}
// Token: 0x0600BCDA RID: 48346 RVA: 0x002AF7C0 File Offset: 0x002AD9C0
[Token(Token = "0x600BCDA")]
[Address(RVA = "0x200DE80", Offset = "0x200CC80", VA = "0x18200DE80")]
private static void UpdateMac(IMac mac, string str)
{
Encoding utf = Encoding.UTF8;
}
// Token: 0x0600BCDB RID: 48347 RVA: 0x002AF7DC File Offset: 0x002AD9DC
[Token(Token = "0x600BCDB")]
[Address(RVA = "0x200DDE0", Offset = "0x200CBE0", VA = "0x18200DDE0")]
private static void UpdateMac(IMac mac, byte[] bytes)
{
int length = bytes.Length;
int num = 0;
Arrays.Fill(bytes, (byte)num);
}
// Token: 0x0600BCDC RID: 48348 RVA: 0x002AF800 File Offset: 0x002ADA00
[Token(Token = "0x600BCDC")]
[Address(RVA = "0x200D9D0", Offset = "0x200C7D0", VA = "0x18200D9D0")]
private static byte[] IntToByteArray(int value)
{
return Pack.UInt32_To_BE((uint)value);
}
// Token: 0x0600BCDD RID: 48349 RVA: 0x002AF814 File Offset: 0x002ADA14
[Token(Token = "0x600BCDD")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
protected JPakeUtilities()
{
}
// Token: 0x04007841 RID: 30785
[Token(Token = "0x4007841")]
public static readonly BigInteger Zero = BigInteger.Zero;
// Token: 0x04007842 RID: 30786
[Token(Token = "0x4007842")]
public static readonly BigInteger One = BigInteger.One;
}
}