This commit is contained in:
niko
2026-04-08 23:40:05 +02:00
parent d6894bcbc7
commit 18dc73f922
7750 changed files with 1795369 additions and 0 deletions
@@ -0,0 +1,438 @@
using System;
using System.Runtime.InteropServices;
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: 0x0200173C RID: 5948
[Token(Token = "0x200173C")]
[StructLayout(3)]
public class JPakeParticipant
{
// Token: 0x0600A0C6 RID: 41158 RVA: 0x00256144 File Offset: 0x00254344
[Token(Token = "0x600A0C6")]
[Address(RVA = "0x65AF50", Offset = "0x659950", VA = "0x18065AF50")]
public JPakeParticipant(string participantId, char[] password)
{
JPakePrimeOrderGroup nist_ = JPakePrimeOrderGroups.NIST_3072;
Sha256Digest sha256Digest = new Sha256Digest();
SecureRandom secureRandom = new SecureRandom();
}
// Token: 0x0600A0C7 RID: 41159 RVA: 0x00256164 File Offset: 0x00254364
[Token(Token = "0x600A0C7")]
[Address(RVA = "0x65B050", Offset = "0x659A50", VA = "0x18065B050")]
public JPakeParticipant(string participantId, char[] password, JPakePrimeOrderGroup group)
{
Sha256Digest sha256Digest = new Sha256Digest();
SecureRandom secureRandom = new SecureRandom();
}
// Token: 0x0600A0C8 RID: 41160 RVA: 0x00256180 File Offset: 0x00254380
[Token(Token = "0x600A0C8")]
[Address(RVA = "0x65B100", Offset = "0x659B00", VA = "0x18065B100")]
public JPakeParticipant(string participantId, char[] password, JPakePrimeOrderGroup group, IDigest digest, SecureRandom random)
{
/*
An exception occurred when decompiling this method (0600A0C8)
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: 0x17001936 RID: 6454
// (get) Token: 0x0600A0C9 RID: 41161 RVA: 0x00256244 File Offset: 0x00254444
[Token(Token = "0x17001936")]
public virtual int State
{
[Token(Token = "0x600A0C9")]
[Address(RVA = "0x54D7F0", Offset = "0x54C1F0", VA = "0x18054D7F0", Slot = "4")]
get
{
return this.state;
}
}
// Token: 0x0600A0CA RID: 41162 RVA: 0x00256258 File Offset: 0x00254458
[Token(Token = "0x600A0CA")]
[Address(RVA = "0x659A80", Offset = "0x658480", VA = "0x180659A80", 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: 0x0600A0CB RID: 41163 RVA: 0x00256420 File Offset: 0x00254620
[Token(Token = "0x600A0CB")]
[Address(RVA = "0x65A460", Offset = "0x658E60", VA = "0x18065A460", 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: 0x0600A0CC RID: 41164 RVA: 0x00256510 File Offset: 0x00254710
[Token(Token = "0x600A0CC")]
[Address(RVA = "0x659DE0", Offset = "0x6587E0", VA = "0x180659DE0", 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: 0x0600A0CD RID: 41165 RVA: 0x00256654 File Offset: 0x00254854
[Token(Token = "0x600A0CD")]
[Address(RVA = "0x65A7A0", Offset = "0x6591A0", VA = "0x18065A7A0", 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: 0x0600A0CE RID: 41166 RVA: 0x0025672C File Offset: 0x0025492C
[Token(Token = "0x600A0CE")]
[Address(RVA = "0x6597C0", Offset = "0x6581C0", VA = "0x1806597C0", 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: 0x0600A0CF RID: 41167 RVA: 0x00256808 File Offset: 0x00254A08
[Token(Token = "0x600A0CF")]
[Address(RVA = "0x65A210", Offset = "0x658C10", VA = "0x18065A210", 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: 0x0600A0D0 RID: 41168 RVA: 0x002568A4 File Offset: 0x00254AA4
[Token(Token = "0x600A0D0")]
[Address(RVA = "0x65AB30", Offset = "0x659530", VA = "0x18065AB30", Slot = "11")]
public virtual void ValidateRound3PayloadReceived(JPakeRound3Payload round3PayloadReceived, BigInteger keyingMaterial)
{
/*
An exception occurred when decompiling this method (0600A0D0)
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: 0x040069D6 RID: 27094
[Token(Token = "0x40069D6")]
public static readonly int STATE_INITIALIZED;
// Token: 0x040069D7 RID: 27095
[Token(Token = "0x40069D7")]
public static readonly int STATE_ROUND_1_CREATED;
// Token: 0x040069D8 RID: 27096
[Token(Token = "0x40069D8")]
public static readonly int STATE_ROUND_1_VALIDATED;
// Token: 0x040069D9 RID: 27097
[Token(Token = "0x40069D9")]
public static readonly int STATE_ROUND_2_CREATED;
// Token: 0x040069DA RID: 27098
[Token(Token = "0x40069DA")]
public static readonly int STATE_ROUND_2_VALIDATED;
// Token: 0x040069DB RID: 27099
[Token(Token = "0x40069DB")]
public static readonly int STATE_KEY_CALCULATED;
// Token: 0x040069DC RID: 27100
[Token(Token = "0x40069DC")]
public static readonly int STATE_ROUND_3_CREATED;
// Token: 0x040069DD RID: 27101
[Token(Token = "0x40069DD")]
public static readonly int STATE_ROUND_3_VALIDATED;
// Token: 0x040069DE RID: 27102
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x40069DE")]
private string participantId;
// Token: 0x040069DF RID: 27103
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x40069DF")]
private char[] password;
// Token: 0x040069E0 RID: 27104
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x40069E0")]
private IDigest digest;
// Token: 0x040069E1 RID: 27105
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x40069E1")]
private readonly SecureRandom random;
// Token: 0x040069E2 RID: 27106
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x40069E2")]
private readonly BigInteger p;
// Token: 0x040069E3 RID: 27107
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x40069E3")]
private readonly BigInteger q;
// Token: 0x040069E4 RID: 27108
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x40069E4")]
private readonly BigInteger g;
// Token: 0x040069E5 RID: 27109
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x40069E5")]
private string partnerParticipantId;
// Token: 0x040069E6 RID: 27110
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x40069E6")]
private BigInteger x1;
// Token: 0x040069E7 RID: 27111
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x40069E7")]
private BigInteger x2;
// Token: 0x040069E8 RID: 27112
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x40069E8")]
private BigInteger gx1;
// Token: 0x040069E9 RID: 27113
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
[Token(Token = "0x40069E9")]
private BigInteger gx2;
// Token: 0x040069EA RID: 27114
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
[Token(Token = "0x40069EA")]
private BigInteger gx3;
// Token: 0x040069EB RID: 27115
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
[Token(Token = "0x40069EB")]
private BigInteger gx4;
// Token: 0x040069EC RID: 27116
[global::Cpp2IlInjected.FieldOffset(Offset = "0x80")]
[Token(Token = "0x40069EC")]
private BigInteger b;
// Token: 0x040069ED RID: 27117
[global::Cpp2IlInjected.FieldOffset(Offset = "0x88")]
[Token(Token = "0x40069ED")]
private int state;
}
}
@@ -0,0 +1,100 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x0200173D RID: 5949
[Token(Token = "0x200173D")]
[StructLayout(3)]
public class JPakePrimeOrderGroup
{
// Token: 0x0600A0D2 RID: 41170 RVA: 0x0025699C File Offset: 0x00254B9C
[Token(Token = "0x600A0D2")]
[Address(RVA = "0x65B8A0", Offset = "0x65A2A0", VA = "0x18065B8A0")]
public JPakePrimeOrderGroup(BigInteger p, BigInteger q, BigInteger g)
{
}
// Token: 0x0600A0D3 RID: 41171 RVA: 0x002569AC File Offset: 0x00254BAC
[Token(Token = "0x600A0D3")]
[Address(RVA = "0x65B430", Offset = "0x659E30", VA = "0x18065B430")]
public JPakePrimeOrderGroup(BigInteger p, BigInteger q, BigInteger g, bool skipChecks)
{
/*
An exception occurred when decompiling this method (0600A0D3)
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: 0x17001937 RID: 6455
// (get) Token: 0x0600A0D4 RID: 41172 RVA: 0x00256A68 File Offset: 0x00254C68
[Token(Token = "0x17001937")]
public virtual BigInteger P
{
[Token(Token = "0x600A0D4")]
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0", Slot = "4")]
get
{
return this.p;
}
}
// Token: 0x17001938 RID: 6456
// (get) Token: 0x0600A0D5 RID: 41173 RVA: 0x00256A7C File Offset: 0x00254C7C
[Token(Token = "0x17001938")]
public virtual BigInteger Q
{
[Token(Token = "0x600A0D5")]
[Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240", Slot = "5")]
get
{
return this.q;
}
}
// Token: 0x17001939 RID: 6457
// (get) Token: 0x0600A0D6 RID: 41174 RVA: 0x00256A90 File Offset: 0x00254C90
[Token(Token = "0x17001939")]
public virtual BigInteger G
{
[Token(Token = "0x600A0D6")]
[Address(RVA = "0x3C1220", Offset = "0x3BFC20", VA = "0x1803C1220", Slot = "6")]
get
{
return this.g;
}
}
// Token: 0x040069EE RID: 27118
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x40069EE")]
private readonly BigInteger p;
// Token: 0x040069EF RID: 27119
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x40069EF")]
private readonly BigInteger q;
// Token: 0x040069F0 RID: 27120
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x40069F0")]
private readonly BigInteger g;
}
}
@@ -0,0 +1,55 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x0200173E RID: 5950
[Token(Token = "0x200173E")]
[StructLayout(3)]
public class JPakePrimeOrderGroups
{
// Token: 0x0600A0D7 RID: 41175 RVA: 0x00256AA4 File Offset: 0x00254CA4
[Token(Token = "0x600A0D7")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public JPakePrimeOrderGroups()
{
}
// Token: 0x0600A0D8 RID: 41176 RVA: 0x00256AB8 File Offset: 0x00254CB8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A0D8")]
[Address(RVA = "0x65B8C0", Offset = "0x65A2C0", VA = "0x18065B8C0")]
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: 0x040069F1 RID: 27121
[Token(Token = "0x40069F1")]
public static readonly JPakePrimeOrderGroup SUN_JCE_1024;
// Token: 0x040069F2 RID: 27122
[Token(Token = "0x40069F2")]
public static readonly JPakePrimeOrderGroup NIST_2048;
// Token: 0x040069F3 RID: 27123
[Token(Token = "0x40069F3")]
public static readonly JPakePrimeOrderGroup NIST_3072;
}
}
@@ -0,0 +1,137 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x0200173F RID: 5951
[Token(Token = "0x200173F")]
[StructLayout(3)]
public class JPakeRound1Payload
{
// Token: 0x0600A0D9 RID: 41177 RVA: 0x00256B74 File Offset: 0x00254D74
[Token(Token = "0x600A0D9")]
[Address(RVA = "0x65BB10", Offset = "0x65A510", VA = "0x18065BB10")]
public JPakeRound1Payload(string participantId, BigInteger gx1, BigInteger gx2, BigInteger[] knowledgeProofForX1, BigInteger[] knowledgeProofForX2)
{
/*
An exception occurred when decompiling this method (0600A0D9)
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: 0x1700193A RID: 6458
// (get) Token: 0x0600A0DA RID: 41178 RVA: 0x00256BEC File Offset: 0x00254DEC
[Token(Token = "0x1700193A")]
public virtual string ParticipantId
{
[Token(Token = "0x600A0DA")]
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0", Slot = "4")]
get
{
return this.participantId;
}
}
// Token: 0x1700193B RID: 6459
// (get) Token: 0x0600A0DB RID: 41179 RVA: 0x00256C00 File Offset: 0x00254E00
[Token(Token = "0x1700193B")]
public virtual BigInteger Gx1
{
[Token(Token = "0x600A0DB")]
[Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240", Slot = "5")]
get
{
return this.gx1;
}
}
// Token: 0x1700193C RID: 6460
// (get) Token: 0x0600A0DC RID: 41180 RVA: 0x00256C14 File Offset: 0x00254E14
[Token(Token = "0x1700193C")]
public virtual BigInteger Gx2
{
[Token(Token = "0x600A0DC")]
[Address(RVA = "0x3C1220", Offset = "0x3BFC20", VA = "0x1803C1220", Slot = "6")]
get
{
return this.gx2;
}
}
// Token: 0x1700193D RID: 6461
// (get) Token: 0x0600A0DD RID: 41181 RVA: 0x00256C28 File Offset: 0x00254E28
[Token(Token = "0x1700193D")]
public virtual BigInteger[] KnowledgeProofForX1
{
[Token(Token = "0x600A0DD")]
[Address(RVA = "0x65BDB0", Offset = "0x65A7B0", VA = "0x18065BDB0", 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: 0x1700193E RID: 6462
// (get) Token: 0x0600A0DE RID: 41182 RVA: 0x00256C64 File Offset: 0x00254E64
[Token(Token = "0x1700193E")]
public virtual BigInteger[] KnowledgeProofForX2
{
[Token(Token = "0x600A0DE")]
[Address(RVA = "0x65BE20", Offset = "0x65A820", VA = "0x18065BE20", 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: 0x040069F4 RID: 27124
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x40069F4")]
private readonly string participantId;
// Token: 0x040069F5 RID: 27125
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x40069F5")]
private readonly BigInteger gx1;
// Token: 0x040069F6 RID: 27126
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x40069F6")]
private readonly BigInteger gx2;
// Token: 0x040069F7 RID: 27127
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x40069F7")]
private readonly BigInteger[] knowledgeProofForX1;
// Token: 0x040069F8 RID: 27128
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x40069F8")]
private readonly BigInteger[] knowledgeProofForX2;
}
}
@@ -0,0 +1,97 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001740 RID: 5952
[Token(Token = "0x2001740")]
[StructLayout(3)]
public class JPakeRound2Payload
{
// Token: 0x0600A0DF RID: 41183 RVA: 0x00256CA0 File Offset: 0x00254EA0
[Token(Token = "0x600A0DF")]
[Address(RVA = "0x65BE90", Offset = "0x65A890", VA = "0x18065BE90")]
public JPakeRound2Payload(string participantId, BigInteger a, BigInteger[] knowledgeProofForX2s)
{
/*
An exception occurred when decompiling this method (0600A0DF)
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: 0x1700193F RID: 6463
// (get) Token: 0x0600A0E0 RID: 41184 RVA: 0x00256D04 File Offset: 0x00254F04
[Token(Token = "0x1700193F")]
public virtual string ParticipantId
{
[Token(Token = "0x600A0E0")]
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0", Slot = "4")]
get
{
return this.participantId;
}
}
// Token: 0x17001940 RID: 6464
// (get) Token: 0x0600A0E1 RID: 41185 RVA: 0x00256D18 File Offset: 0x00254F18
[Token(Token = "0x17001940")]
public virtual BigInteger A
{
[Token(Token = "0x600A0E1")]
[Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240", Slot = "5")]
get
{
return this.a;
}
}
// Token: 0x17001941 RID: 6465
// (get) Token: 0x0600A0E2 RID: 41186 RVA: 0x00256D2C File Offset: 0x00254F2C
[Token(Token = "0x17001941")]
public virtual BigInteger[] KnowledgeProofForX2s
{
[Token(Token = "0x600A0E2")]
[Address(RVA = "0x65C040", Offset = "0x65AA40", VA = "0x18065C040", 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: 0x040069F9 RID: 27129
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x40069F9")]
private readonly string participantId;
// Token: 0x040069FA RID: 27130
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x40069FA")]
private readonly BigInteger a;
// Token: 0x040069FB RID: 27131
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x40069FB")]
private readonly BigInteger[] knowledgeProofForX2s;
}
}
@@ -0,0 +1,58 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001741 RID: 5953
[Token(Token = "0x2001741")]
[StructLayout(3)]
public class JPakeRound3Payload
{
// Token: 0x0600A0E3 RID: 41187 RVA: 0x00256D68 File Offset: 0x00254F68
[Token(Token = "0x600A0E3")]
[Address(RVA = "0x3C39C0", Offset = "0x3C23C0", VA = "0x1803C39C0")]
public JPakeRound3Payload(string participantId, BigInteger magTag)
{
this.participantId = participantId;
this.macTag = magTag;
}
// Token: 0x17001942 RID: 6466
// (get) Token: 0x0600A0E4 RID: 41188 RVA: 0x00256D8C File Offset: 0x00254F8C
[Token(Token = "0x17001942")]
public virtual string ParticipantId
{
[Token(Token = "0x600A0E4")]
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0", Slot = "4")]
get
{
return this.participantId;
}
}
// Token: 0x17001943 RID: 6467
// (get) Token: 0x0600A0E5 RID: 41189 RVA: 0x00256DA0 File Offset: 0x00254FA0
[Token(Token = "0x17001943")]
public virtual BigInteger MacTag
{
[Token(Token = "0x600A0E5")]
[Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240", Slot = "5")]
get
{
return this.macTag;
}
}
// Token: 0x040069FC RID: 27132
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x40069FC")]
private readonly string participantId;
// Token: 0x040069FD RID: 27133
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x40069FD")]
private readonly BigInteger macTag;
}
}
@@ -0,0 +1,413 @@
using System;
using System.Runtime.InteropServices;
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: 0x02001742 RID: 5954
[Token(Token = "0x2001742")]
[StructLayout(3)]
public abstract class JPakeUtilities
{
// Token: 0x0600A0E6 RID: 41190 RVA: 0x00256DB4 File Offset: 0x00254FB4
[Token(Token = "0x600A0E6")]
[Address(RVA = "0x65CCF0", Offset = "0x65B6F0", VA = "0x18065CCF0")]
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: 0x0600A0E7 RID: 41191 RVA: 0x00256DE4 File Offset: 0x00254FE4
[Token(Token = "0x600A0E7")]
[Address(RVA = "0x65CD90", Offset = "0x65B790", VA = "0x18065CD90")]
public static BigInteger GenerateX2(BigInteger q, SecureRandom random)
{
BigInteger one = JPakeUtilities.One;
BigInteger bigInteger = q.Subtract(one);
return BigIntegers.CreateRandomInRange(one, bigInteger, random);
}
// Token: 0x0600A0E8 RID: 41192 RVA: 0x00256E10 File Offset: 0x00255010
[Token(Token = "0x600A0E8")]
[Address(RVA = "0x65CA30", Offset = "0x65B430", VA = "0x18065CA30")]
public static BigInteger CalculateS(char[] password)
{
Encoding utf = Encoding.UTF8;
BigInteger bigInteger;
return bigInteger;
}
// Token: 0x0600A0E9 RID: 41193 RVA: 0x00256E2C File Offset: 0x0025502C
[Token(Token = "0x600A0E9")]
[Address(RVA = "0x65C140", Offset = "0x65AB40", VA = "0x18065C140")]
public static BigInteger CalculateGx(BigInteger p, BigInteger g, BigInteger x)
{
return g.ModPow(x, p);
}
// Token: 0x0600A0EA RID: 41194 RVA: 0x00256E48 File Offset: 0x00255048
[Token(Token = "0x600A0EA")]
[Address(RVA = "0x65C0E0", Offset = "0x65AAE0", VA = "0x18065C0E0")]
public static BigInteger CalculateGA(BigInteger p, BigInteger gx1, BigInteger gx3, BigInteger gx4)
{
return gx1.Multiply(gx3).Multiply(gx4).Mod(p);
}
// Token: 0x0600A0EB RID: 41195 RVA: 0x00256E70 File Offset: 0x00255070
[Token(Token = "0x600A0EB")]
[Address(RVA = "0x65CAB0", Offset = "0x65B4B0", VA = "0x18065CAB0")]
public static BigInteger CalculateX2s(BigInteger q, BigInteger x2, BigInteger s)
{
return x2.Multiply(s).Mod(q);
}
// Token: 0x0600A0EC RID: 41196 RVA: 0x00256E90 File Offset: 0x00255090
[Token(Token = "0x600A0EC")]
[Address(RVA = "0x65C0B0", Offset = "0x65AAB0", VA = "0x18065C0B0")]
public static BigInteger CalculateA(BigInteger p, BigInteger q, BigInteger gA, BigInteger x2s)
{
return gA.ModPow(x2s, p);
}
// Token: 0x0600A0ED RID: 41197 RVA: 0x00256EAC File Offset: 0x002550AC
[Token(Token = "0x600A0ED")]
[Address(RVA = "0x65CAF0", Offset = "0x65B4F0", VA = "0x18065CAF0")]
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: 0x0600A0EE RID: 41198 RVA: 0x00256F18 File Offset: 0x00255118
[Token(Token = "0x600A0EE")]
[Address(RVA = "0x65C170", Offset = "0x65AB70", VA = "0x18065C170")]
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: 0x0600A0EF RID: 41199 RVA: 0x00256F50 File Offset: 0x00255150
[Token(Token = "0x600A0EF")]
[Address(RVA = "0x65D420", Offset = "0x65BE20", VA = "0x18065D420")]
public static void ValidateGx4(BigInteger gx4)
{
}
// Token: 0x0600A0F0 RID: 41200 RVA: 0x00256F68 File Offset: 0x00255168
[Token(Token = "0x600A0F0")]
[Address(RVA = "0x65D370", Offset = "0x65BD70", VA = "0x18065D370")]
public static void ValidateGa(BigInteger ga)
{
}
// Token: 0x0600A0F1 RID: 41201 RVA: 0x00256F80 File Offset: 0x00255180
[Token(Token = "0x600A0F1")]
[Address(RVA = "0x65D880", Offset = "0x65C280", VA = "0x18065D880")]
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 (0600A0F1)
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: 0x0600A0F2 RID: 41202 RVA: 0x00257004 File Offset: 0x00255204
[Token(Token = "0x600A0F2")]
[Address(RVA = "0x65C3D0", Offset = "0x65ADD0", VA = "0x18065C3D0")]
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: 0x0600A0F3 RID: 41203 RVA: 0x00257038 File Offset: 0x00255238
[Token(Token = "0x600A0F3")]
[Address(RVA = "0x65D660", Offset = "0x65C060", VA = "0x18065D660")]
public static void ValidateParticipantIdsDiffer(string participantId1, string participantId2)
{
/*
An exception occurred when decompiling this method (0600A0F3)
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: 0x0600A0F4 RID: 41204 RVA: 0x00257068 File Offset: 0x00255268
[Token(Token = "0x600A0F4")]
[Address(RVA = "0x65D700", Offset = "0x65C100", VA = "0x18065D700")]
public static void ValidateParticipantIdsEqual(string expectedParticipantId, string actualParticipantId)
{
if (expectedParticipantId.Equals(actualParticipantId))
{
return;
}
string[] array = new string[5];
throw new NullReferenceException();
}
// Token: 0x0600A0F5 RID: 41205 RVA: 0x002570F4 File Offset: 0x002552F4
[Token(Token = "0x600A0F5")]
[Address(RVA = "0x65D5F0", Offset = "0x65BFF0", VA = "0x18065D5F0")]
public static void ValidateNotNull(object obj, string description)
{
/*
An exception occurred when decompiling this method (0600A0F5)
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: 0x0600A0F6 RID: 41206 RVA: 0x0025710C File Offset: 0x0025530C
[Token(Token = "0x600A0F6")]
[Address(RVA = "0x65C600", Offset = "0x65B000", VA = "0x18065C600")]
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: 0x0600A0F7 RID: 41207 RVA: 0x002571A4 File Offset: 0x002553A4
[Token(Token = "0x600A0F7")]
[Address(RVA = "0x65C490", Offset = "0x65AE90", VA = "0x18065C490")]
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: 0x0600A0F8 RID: 41208 RVA: 0x002571D4 File Offset: 0x002553D4
[Token(Token = "0x600A0F8")]
[Address(RVA = "0x65D4D0", Offset = "0x65BED0", VA = "0x18065D4D0")]
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 (0600A0F8)
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: 0x0600A0F9 RID: 41209 RVA: 0x002571F0 File Offset: 0x002553F0
[Token(Token = "0x600A0F9")]
[Address(RVA = "0x65D030", Offset = "0x65BA30", VA = "0x18065D030")]
private static void UpdateDigest(IDigest digest, BigInteger bigInteger)
{
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
JPakeUtilities.UpdateDigest(digest, array);
}
// Token: 0x0600A0FA RID: 41210 RVA: 0x0025720C File Offset: 0x0025540C
[Token(Token = "0x600A0FA")]
[Address(RVA = "0x65D140", Offset = "0x65BB40", VA = "0x18065D140")]
private static void UpdateDigest(IDigest digest, string str)
{
Encoding utf = Encoding.UTF8;
}
// Token: 0x0600A0FB RID: 41211 RVA: 0x00257228 File Offset: 0x00255428
[Token(Token = "0x600A0FB")]
[Address(RVA = "0x65D0A0", Offset = "0x65BAA0", VA = "0x18065D0A0")]
private static void UpdateDigest(IDigest digest, byte[] bytes)
{
int length = bytes.Length;
int num = 0;
Arrays.Fill(bytes, (byte)num);
}
// Token: 0x0600A0FC RID: 41212 RVA: 0x0025724C File Offset: 0x0025544C
[Token(Token = "0x600A0FC")]
[Address(RVA = "0x65CE40", Offset = "0x65B840", VA = "0x18065CE40")]
private static void UpdateDigestIncludingSize(IDigest digest, BigInteger bigInteger)
{
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
JPakeUtilities.UpdateDigestIncludingSize(digest, array);
}
// Token: 0x0600A0FD RID: 41213 RVA: 0x00257268 File Offset: 0x00255468
[Token(Token = "0x600A0FD")]
[Address(RVA = "0x65CFA0", Offset = "0x65B9A0", VA = "0x18065CFA0")]
private static void UpdateDigestIncludingSize(IDigest digest, string str)
{
Encoding utf = Encoding.UTF8;
}
// Token: 0x0600A0FE RID: 41214 RVA: 0x00257284 File Offset: 0x00255484
[Token(Token = "0x600A0FE")]
[Address(RVA = "0x65CEB0", Offset = "0x65B8B0", VA = "0x18065CEB0")]
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: 0x0600A0FF RID: 41215 RVA: 0x002572B8 File Offset: 0x002554B8
[Token(Token = "0x600A0FF")]
[Address(RVA = "0x65D1D0", Offset = "0x65BBD0", VA = "0x18065D1D0")]
private static void UpdateMac(IMac mac, BigInteger bigInteger)
{
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
JPakeUtilities.UpdateMac(mac, array);
}
// Token: 0x0600A100 RID: 41216 RVA: 0x002572D4 File Offset: 0x002554D4
[Token(Token = "0x600A100")]
[Address(RVA = "0x65D2E0", Offset = "0x65BCE0", VA = "0x18065D2E0")]
private static void UpdateMac(IMac mac, string str)
{
Encoding utf = Encoding.UTF8;
}
// Token: 0x0600A101 RID: 41217 RVA: 0x002572F0 File Offset: 0x002554F0
[Token(Token = "0x600A101")]
[Address(RVA = "0x65D240", Offset = "0x65BC40", VA = "0x18065D240")]
private static void UpdateMac(IMac mac, byte[] bytes)
{
int length = bytes.Length;
int num = 0;
Arrays.Fill(bytes, (byte)num);
}
// Token: 0x0600A102 RID: 41218 RVA: 0x00257314 File Offset: 0x00255514
[Token(Token = "0x600A102")]
[Address(RVA = "0x65CE30", Offset = "0x65B830", VA = "0x18065CE30")]
private static byte[] IntToByteArray(int value)
{
return Pack.UInt32_To_BE((uint)value);
}
// Token: 0x0600A103 RID: 41219 RVA: 0x00257328 File Offset: 0x00255528
[Token(Token = "0x600A103")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
protected JPakeUtilities()
{
}
// Token: 0x040069FE RID: 27134
[Token(Token = "0x40069FE")]
public static readonly BigInteger Zero = BigInteger.Zero;
// Token: 0x040069FF RID: 27135
[Token(Token = "0x40069FF")]
public static readonly BigInteger One = BigInteger.One;
}
}