This commit is contained in:
niko
2026-04-12 16:51:38 +02:00
parent 1b6f6d81d0
commit c12fbe3fc6
17828 changed files with 2994770 additions and 0 deletions
@@ -0,0 +1,125 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001DE5 RID: 7653
[Token(Token = "0x2001DE5")]
public class DHAgreement
{
// Token: 0x0600BFFD RID: 49149 RVA: 0x002B49E4 File Offset: 0x002B2BE4
[Token(Token = "0x600BFFD")]
[Address(RVA = "0x29293A0", Offset = "0x29283A0", VA = "0x1829293A0")]
public void Init(ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BFFD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.DHAgreement::Init(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_57:
stloc:ArgumentException(var_8_61, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("DHEngine expects DHPrivateKeyParameters")))
}
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: 0x0600BFFE RID: 49150 RVA: 0x002B4A54 File Offset: 0x002B2C54
[Token(Token = "0x600BFFE")]
[Address(RVA = "0x2929190", Offset = "0x2928190", VA = "0x182929190")]
public BigInteger CalculateMessage()
{
DHKeyPairGenerator dhkeyPairGenerator;
for (;;)
{
dhkeyPairGenerator = new DHKeyPairGenerator();
SecureRandom secureRandom = this.random;
DHParameters dhparameters = this.dhParams;
DHKeyGenerationParameters dhkeyGenerationParameters = new DHKeyGenerationParameters(secureRandom, dhparameters);
AsymmetricCipherKeyPair asymmetricCipherKeyPair = dhkeyPairGenerator.GenerateKeyPair();
if (dhkeyPairGenerator != 0 && dhkeyPairGenerator != 0)
{
this.privateValue = dhkeyPairGenerator;
if (dhkeyPairGenerator != 0 && dhkeyPairGenerator != 0)
{
break;
}
}
}
AsymmetricCipherKeyPair asymmetricCipherKeyPair2 = ((IAsymmetricCipherKeyPairGenerator)dhkeyPairGenerator).GenerateKeyPair();
throw new NullReferenceException();
}
// Token: 0x0600BFFF RID: 49151 RVA: 0x002B4AB8 File Offset: 0x002B2CB8
[Token(Token = "0x600BFFF")]
[Address(RVA = "0x2928E80", Offset = "0x2927E80", VA = "0x182928E80")]
public BigInteger CalculateAgreement(DHPublicKeyParameters pub, BigInteger message)
{
/*
An exception occurred when decompiling this method (0600BFFF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.DHAgreement::CalculateAgreement(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters.DHPublicKeyParameters,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_77:
stloc:ArgumentException(var_11_81, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Diffie-Hellman public key is weak")))
}
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.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: 0x0600C000 RID: 49152 RVA: 0x002B4B48 File Offset: 0x002B2D48
[Token(Token = "0x600C000")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public DHAgreement()
{
}
// Token: 0x04007945 RID: 31045
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007945")]
private DHPrivateKeyParameters key;
// Token: 0x04007946 RID: 31046
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007946")]
private DHParameters dhParams;
// Token: 0x04007947 RID: 31047
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007947")]
private BigInteger privateValue;
// Token: 0x04007948 RID: 31048
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007948")]
private SecureRandom random;
}
}
@@ -0,0 +1,102 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001DE6 RID: 7654
[Token(Token = "0x2001DE6")]
public class DHBasicAgreement : IBasicAgreement
{
// Token: 0x0600C001 RID: 49153 RVA: 0x002B4B5C File Offset: 0x002B2D5C
[Token(Token = "0x600C001")]
[Address(RVA = "0x2929930", Offset = "0x2928930", VA = "0x182929930", Slot = "7")]
public virtual void Init(ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600C001)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.DHBasicAgreement::Init(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_37:
stloc:ArgumentException(var_5_41, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("DHEngine expects DHPrivateKeyParameters")))
}
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: 0x0600C002 RID: 49154 RVA: 0x002B4BAC File Offset: 0x002B2DAC
[Token(Token = "0x600C002")]
[Address(RVA = "0x29298F0", Offset = "0x29288F0", VA = "0x1829298F0", Slot = "8")]
public virtual int GetFieldSize()
{
BigInteger p = this.key.parameters.p;
int num = 0;
int num2 = p.BitLength;
num2 += 7;
return num2 + num;
}
// Token: 0x0600C003 RID: 49155 RVA: 0x002B4BE4 File Offset: 0x002B2DE4
[Token(Token = "0x600C003")]
[Address(RVA = "0x2929610", Offset = "0x2928610", VA = "0x182929610", Slot = "9")]
public virtual BigInteger CalculateAgreement(ICipherParameters pubKey)
{
/*
An exception occurred when decompiling this method (0600C003)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.DHBasicAgreement::CalculateAgreement(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_58:
stloc:ArgumentException(var_10_62, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Diffie-Hellman public key is weak")))
}
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.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.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: 0x0600C004 RID: 49156 RVA: 0x002B4C54 File Offset: 0x002B2E54
[Token(Token = "0x600C004")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public DHBasicAgreement()
{
}
// Token: 0x04007949 RID: 31049
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007949")]
private DHPrivateKeyParameters key;
// Token: 0x0400794A RID: 31050
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400794A")]
private DHParameters dhParams;
}
}
@@ -0,0 +1,345 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001DE7 RID: 7655
[Token(Token = "0x2001DE7")]
public class DHStandardGroups
{
// Token: 0x0600C005 RID: 49157 RVA: 0x002B4C68 File Offset: 0x002B2E68
[Token(Token = "0x600C005")]
[Address(RVA = "0x2929B10", Offset = "0x2928B10", VA = "0x182929B10")]
private static BigInteger FromHex(string hex)
{
byte[] array = Hex.Decode(hex);
return new BigInteger(1, array);
}
// Token: 0x0600C006 RID: 49158 RVA: 0x002B4C84 File Offset: 0x002B2E84
[Token(Token = "0x600C006")]
[Address(RVA = "0x2929C60", Offset = "0x2928C60", VA = "0x182929C60")]
private static DHParameters FromPG(string hexP, string hexG)
{
BigInteger bigInteger = DHStandardGroups.FromHex(hexP);
BigInteger bigInteger2 = DHStandardGroups.FromHex(hexG);
return new DHParameters(bigInteger, bigInteger2);
}
// Token: 0x0600C007 RID: 49159 RVA: 0x002B4CA8 File Offset: 0x002B2EA8
[Token(Token = "0x600C007")]
[Address(RVA = "0x2929BA0", Offset = "0x2928BA0", VA = "0x182929BA0")]
private static DHParameters FromPGQ(string hexP, string hexG, string hexQ)
{
BigInteger bigInteger = DHStandardGroups.FromHex(hexP);
BigInteger bigInteger2 = DHStandardGroups.FromHex(hexG);
BigInteger bigInteger3 = DHStandardGroups.FromHex(hexQ);
return new DHParameters(bigInteger, bigInteger2, bigInteger3);
}
// Token: 0x0600C008 RID: 49160 RVA: 0x002B4CD4 File Offset: 0x002B2ED4
[Token(Token = "0x600C008")]
[Address(RVA = "0x2929D00", Offset = "0x2928D00", VA = "0x182929D00")]
private static DHParameters Rfc7919Parameters(string hexP, int l)
{
BigInteger bigInteger = DHStandardGroups.FromHex(hexP);
BigInteger two = BigInteger.Two;
BigInteger bigInteger2 = bigInteger.ShiftRight(1);
return new DHParameters(bigInteger, two, bigInteger2, l);
}
// Token: 0x0600C009 RID: 49161 RVA: 0x002B4D08 File Offset: 0x002B2F08
[Token(Token = "0x600C009")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public DHStandardGroups()
{
}
// Token: 0x0600C00A RID: 49162 RVA: 0x002B4D1C File Offset: 0x002B2F1C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600C00A")]
[Address(RVA = "0x2929E00", Offset = "0x2928E00", VA = "0x182929E00")]
static DHStandardGroups()
{
string text = DHStandardGroups.rfc2409_768_p;
string text2 = DHStandardGroups.rfc2409_768_g;
DHStandardGroups.rfc2409_768 = DHStandardGroups.FromPG(text, text2);
DHStandardGroups.rfc2409_1024_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc2409_1024_g = "02";
string text3 = DHStandardGroups.rfc2409_1024_p;
string text4 = DHStandardGroups.rfc2409_1024_g;
DHStandardGroups.rfc2409_1024 = DHStandardGroups.FromPG(text3, text4);
DHStandardGroups.rfc3526_1536_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc3526_1536_g = "02";
string text5 = DHStandardGroups.rfc3526_1536_p;
string text6 = DHStandardGroups.rfc3526_1536_g;
DHStandardGroups.rfc3526_1536 = DHStandardGroups.FromPG(text5, text6);
DHStandardGroups.rfc3526_2048_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc3526_2048_g = "02";
string text7 = DHStandardGroups.rfc3526_2048_p;
string text8 = DHStandardGroups.rfc3526_2048_g;
DHStandardGroups.rfc3526_2048 = DHStandardGroups.FromPG(text7, text8);
DHStandardGroups.rfc3526_3072_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF";
DHStandardGroups.rfc3526_3072_g = "02";
string text9 = DHStandardGroups.rfc3526_3072_p;
string text10 = DHStandardGroups.rfc3526_3072_g;
DHStandardGroups.rfc3526_3072 = DHStandardGroups.FromPG(text9, text10);
DHStandardGroups.rfc3526_4096_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc3526_4096_g = "02";
string text11 = DHStandardGroups.rfc3526_4096_p;
string text12 = DHStandardGroups.rfc3526_4096_g;
DHStandardGroups.rfc3526_4096 = DHStandardGroups.FromPG(text11, text12);
DHStandardGroups.rfc3526_6144_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DCC4024FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc3526_6144_g = "02";
string text13 = DHStandardGroups.rfc3526_6144_p;
string text14 = DHStandardGroups.rfc3526_6144_g;
DHStandardGroups.rfc3526_6144 = DHStandardGroups.FromPG(text13, text14);
DHStandardGroups.rfc3526_8192_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DBE115974A3926F12FEE5E438777CB6A932DF8CD8BEC4D073B931BA3BC832B68D9DD300741FA7BF8AFC47ED2576F6936BA424663AAB639C5AE4F5683423B4742BF1C978238F16CBE39D652DE3FDB8BEFC848AD922222E04A4037C0713EB57A81A23F0C73473FC646CEA306B4BCBC8862F8385DDFA9D4B7FA2C087E879683303ED5BDD3A062B3CF5B3A278A66D2A13F83F44F82DDF310EE074AB6A364597E899A0255DC164F31CC50846851DF9AB48195DED7EA1B1D510BD7EE74D73FAF36BC31ECFA268359046F4EB879F924009438B481C6CD7889A002ED5EE382BC9190DA6FC026E479558E4475677E9AA9E3050E2765694DFC81F56E880B96E7160C980DD98EDD3DFFFFFFFFFFFFFFFFF";
DHStandardGroups.rfc3526_8192_g = "02";
string text15 = DHStandardGroups.rfc3526_8192_p;
string text16 = DHStandardGroups.rfc3526_8192_g;
DHStandardGroups.rfc3526_8192 = DHStandardGroups.FromPG(text15, text16);
DHStandardGroups.rfc4306_768 = DHStandardGroups.rfc2409_768;
DHStandardGroups.rfc4306_1024 = DHStandardGroups.rfc2409_1024;
DHStandardGroups.rfc5114_1024_160_p = "B10B8F96A080E01DDE92DE5EAE5D54EC52C99FBCFB06A3C69A6A9DCA52D23B616073E28675A23D189838EF1E2EE652C013ECB4AEA906112324975C3CD49B83BFACCBDD7D90C4BD7098488E9C219A73724EFFD6FAE5644738FAA31A4FF55BCCC0A151AF5F0DC8B4BD45BF37DF365C1A65E68CFDA76D4DA708DF1FB2BC2E4A4371";
DHStandardGroups.rfc5114_1024_160_g = "A4D1CBD5C3FD34126765A442EFB99905F8104DD258AC507FD6406CFF14266D31266FEA1E5C41564B777E690F5504F213160217B4B01B886A5E91547F9E2749F4D7FBD7D3B9A92EE1909D0D2263F80A76A6A24C087A091F531DBF0A0169B6A28AD662A4D18E73AFA32D779D5918D08BC8858F4DCEF97C2A24855E6EEB22B3B2E5";
DHStandardGroups.rfc5114_1024_160_q = "F518AA8781A8DF278ABA4E7D64B7CB9D49462353";
string text17 = DHStandardGroups.rfc5114_1024_160_p;
string text18 = DHStandardGroups.rfc5114_1024_160_g;
string text19 = DHStandardGroups.rfc5114_1024_160_q;
DHStandardGroups.rfc5114_1024_160 = DHStandardGroups.FromPGQ(text17, text18, text19);
DHStandardGroups.rfc5114_2048_224_p = "AD107E1E9123A9D0D660FAA79559C51FA20D64E5683B9FD1B54B1597B61D0A75E6FA141DF95A56DBAF9A3C407BA1DF15EB3D688A309C180E1DE6B85A1274A0A66D3F8152AD6AC2129037C9EDEFDA4DF8D91E8FEF55B7394B7AD5B7D0B6C12207C9F98D11ED34DBF6C6BA0B2C8BBC27BE6A00E0A0B9C49708B3BF8A317091883681286130BC8985DB1602E714415D9330278273C7DE31EFDC7310F7121FD5A07415987D9ADC0A486DCDF93ACC44328387315D75E198C641A480CD86A1B9E587E8BE60E69CC928B2B9C52172E413042E9B23F10B0E16E79763C9B53DCF4BA80A29E3FB73C16B8E75B97EF363E2FFA31F71CF9DE5384E71B81C0AC4DFFE0C10E64F";
DHStandardGroups.rfc5114_2048_224_g = "AC4032EF4F2D9AE39DF30B5C8FFDAC506CDEBE7B89998CAF74866A08CFE4FFE3A6824A4E10B9A6F0DD921F01A70C4AFAAB739D7700C29F52C57DB17C620A8652BE5E9001A8D66AD7C17669101999024AF4D027275AC1348BB8A762D0521BC98AE247150422EA1ED409939D54DA7460CDB5F6C6B250717CBEF180EB34118E98D119529A45D6F834566E3025E316A330EFBB77A86F0C1AB15B051AE3D428C8F8ACB70A8137150B8EEB10E183EDD19963DDD9E263E4770589EF6AA21E7F5F2FF381B539CCE3409D13CD566AFBB48D6C019181E1BCFE94B30269EDFE72FE9B6AA4BD7B5A0F1C71CFFF4C19C418E1F6EC017981BC087F2A7065B384B890D3191F2BFA";
DHStandardGroups.rfc5114_2048_224_q = "801C0D34C58D93FE997177101F80535A4738CEBCBF389A99B36371EB";
string text20 = DHStandardGroups.rfc5114_2048_224_p;
string text21 = DHStandardGroups.rfc5114_2048_224_g;
string text22 = DHStandardGroups.rfc5114_2048_224_q;
DHStandardGroups.rfc5114_2048_224 = DHStandardGroups.FromPGQ(text20, text21, text22);
DHStandardGroups.rfc5114_2048_256_p = "87A8E61DB4B6663CFFBBD19C651959998CEEF608660DD0F25D2CEED4435E3B00E00DF8F1D61957D4FAF7DF4561B2AA3016C3D91134096FAA3BF4296D830E9A7C209E0C6497517ABD5A8A9D306BCF67ED91F9E6725B4758C022E0B1EF4275BF7B6C5BFC11D45F9088B941F54EB1E59BB8BC39A0BF12307F5C4FDB70C581B23F76B63ACAE1CAA6B7902D52526735488A0EF13C6D9A51BFA4AB3AD8347796524D8EF6A167B5A41825D967E144E5140564251CCACB83E6B486F6B3CA3F7971506026C0B857F689962856DED4010ABD0BE621C3A3960A54E710C375F26375D7014103A4B54330C198AF126116D2276E11715F693877FAD7EF09CADB094AE91E1A1597";
DHStandardGroups.rfc5114_2048_256_g = "3FB32C9B73134D0B2E77506660EDBD484CA7B18F21EF205407F4793A1A0BA12510DBC15077BE463FFF4FED4AAC0BB555BE3A6C1B0C6B47B1BC3773BF7E8C6F62901228F8C28CBB18A55AE31341000A650196F931C77A57F2DDF463E5E9EC144B777DE62AAAB8A8628AC376D282D6ED3864E67982428EBC831D14348F6F2F9193B5045AF2767164E1DFC967C1FB3F2E55A4BD1BFFE83B9C80D052B985D182EA0ADB2A3B7313D3FE14C8484B1E052588B9B7D2BBD2DF016199ECD06E1557CD0915B3353BBB64E0EC377FD028370DF92B52C7891428CDC67EB6184B523D1DB246C32F63078490F00EF8D647D148D47954515E2327CFEF98C582664B4C0F6CC41659";
DHStandardGroups.rfc5114_2048_256_q = "8CF83642A709A097B447997640129DA299B1A47D1EB3750BA308B0FE64F5FBD3";
string text23 = DHStandardGroups.rfc5114_2048_256_p;
string text24 = DHStandardGroups.rfc5114_2048_256_g;
string text25 = DHStandardGroups.rfc5114_2048_256_q;
DHStandardGroups.rfc5114_2048_256 = DHStandardGroups.FromPGQ(text23, text24, text25);
DHStandardGroups.rfc5996_768 = DHStandardGroups.rfc4306_768;
DHStandardGroups.rfc5996_1024 = DHStandardGroups.rfc4306_1024;
DHStandardGroups.rfc7919_ffdhe2048_p = "FFFFFFFFFFFFFFFFADF85458A2BB4A9AAFDC5620273D3CF1D8B9C583CE2D3695A9E13641146433FBCC939DCE249B3EF97D2FE363630C75D8F681B202AEC4617AD3DF1ED5D5FD65612433F51F5F066ED0856365553DED1AF3B557135E7F57C935984F0C70E0E68B77E2A689DAF3EFE8721DF158A136ADE73530ACCA4F483A797ABC0AB182B324FB61D108A94BB2C8E3FBB96ADAB760D7F4681D4F42A3DE394DF4AE56EDE76372BB190B07A7C8EE0A6D709E02FCE1CDF7E2ECC03404CD28342F619172FE9CE98583FF8E4F1232EEF28183C3FE3B1B4C6FAD733BB5FCBC2EC22005C58EF1837D1683B2C6F34A26C1B2EFFA886B423861285C97FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc7919_ffdhe2048 = DHStandardGroups.Rfc7919Parameters(DHStandardGroups.rfc7919_ffdhe2048_p, 225);
DHStandardGroups.rfc7919_ffdhe3072_p = "FFFFFFFFFFFFFFFFADF85458A2BB4A9AAFDC5620273D3CF1D8B9C583CE2D3695A9E13641146433FBCC939DCE249B3EF97D2FE363630C75D8F681B202AEC4617AD3DF1ED5D5FD65612433F51F5F066ED0856365553DED1AF3B557135E7F57C935984F0C70E0E68B77E2A689DAF3EFE8721DF158A136ADE73530ACCA4F483A797ABC0AB182B324FB61D108A94BB2C8E3FBB96ADAB760D7F4681D4F42A3DE394DF4AE56EDE76372BB190B07A7C8EE0A6D709E02FCE1CDF7E2ECC03404CD28342F619172FE9CE98583FF8E4F1232EEF28183C3FE3B1B4C6FAD733BB5FCBC2EC22005C58EF1837D1683B2C6F34A26C1B2EFFA886B4238611FCFDCDE355B3B6519035BBC34F4DEF99C023861B46FC9D6E6C9077AD91D2691F7F7EE598CB0FAC186D91CAEFE130985139270B4130C93BC437944F4FD4452E2D74DD364F2E21E71F54BFF5CAE82AB9C9DF69EE86D2BC522363A0DABC521979B0DEADA1DBF9A42D5C4484E0ABCD06BFA53DDEF3C1B20EE3FD59D7C25E41D2B66C62E37FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc7919_ffdhe3072 = DHStandardGroups.Rfc7919Parameters(DHStandardGroups.rfc7919_ffdhe3072_p, 275);
DHStandardGroups.rfc7919_ffdhe4096_p = "FFFFFFFFFFFFFFFFADF85458A2BB4A9AAFDC5620273D3CF1D8B9C583CE2D3695A9E13641146433FBCC939DCE249B3EF97D2FE363630C75D8F681B202AEC4617AD3DF1ED5D5FD65612433F51F5F066ED0856365553DED1AF3B557135E7F57C935984F0C70E0E68B77E2A689DAF3EFE8721DF158A136ADE73530ACCA4F483A797ABC0AB182B324FB61D108A94BB2C8E3FBB96ADAB760D7F4681D4F42A3DE394DF4AE56EDE76372BB190B07A7C8EE0A6D709E02FCE1CDF7E2ECC03404CD28342F619172FE9CE98583FF8E4F1232EEF28183C3FE3B1B4C6FAD733BB5FCBC2EC22005C58EF1837D1683B2C6F34A26C1B2EFFA886B4238611FCFDCDE355B3B6519035BBC34F4DEF99C023861B46FC9D6E6C9077AD91D2691F7F7EE598CB0FAC186D91CAEFE130985139270B4130C93BC437944F4FD4452E2D74DD364F2E21E71F54BFF5CAE82AB9C9DF69EE86D2BC522363A0DABC521979B0DEADA1DBF9A42D5C4484E0ABCD06BFA53DDEF3C1B20EE3FD59D7C25E41D2B669E1EF16E6F52C3164DF4FB7930E9E4E58857B6AC7D5F42D69F6D187763CF1D5503400487F55BA57E31CC7A7135C886EFB4318AED6A1E012D9E6832A907600A918130C46DC778F971AD0038092999A333CB8B7A1A1DB93D7140003C2A4ECEA9F98D0ACC0A8291CDCEC97DCF8EC9B55A7F88A46B4DB5A851F44182E1C68A007E5E655F6AFFFFFFFFFFFFFFFF";
DHStandardGroups.rfc7919_ffdhe4096 = DHStandardGroups.Rfc7919Parameters(DHStandardGroups.rfc7919_ffdhe4096_p, 325);
DHStandardGroups.rfc7919_ffdhe6144_p = "FFFFFFFFFFFFFFFFADF85458A2BB4A9AAFDC5620273D3CF1D8B9C583CE2D3695A9E13641146433FBCC939DCE249B3EF97D2FE363630C75D8F681B202AEC4617AD3DF1ED5D5FD65612433F51F5F066ED0856365553DED1AF3B557135E7F57C935984F0C70E0E68B77E2A689DAF3EFE8721DF158A136ADE73530ACCA4F483A797ABC0AB182B324FB61D108A94BB2C8E3FBB96ADAB760D7F4681D4F42A3DE394DF4AE56EDE76372BB190B07A7C8EE0A6D709E02FCE1CDF7E2ECC03404CD28342F619172FE9CE98583FF8E4F1232EEF28183C3FE3B1B4C6FAD733BB5FCBC2EC22005C58EF1837D1683B2C6F34A26C1B2EFFA886B4238611FCFDCDE355B3B6519035BBC34F4DEF99C023861B46FC9D6E6C9077AD91D2691F7F7EE598CB0FAC186D91CAEFE130985139270B4130C93BC437944F4FD4452E2D74DD364F2E21E71F54BFF5CAE82AB9C9DF69EE86D2BC522363A0DABC521979B0DEADA1DBF9A42D5C4484E0ABCD06BFA53DDEF3C1B20EE3FD59D7C25E41D2B669E1EF16E6F52C3164DF4FB7930E9E4E58857B6AC7D5F42D69F6D187763CF1D5503400487F55BA57E31CC7A7135C886EFB4318AED6A1E012D9E6832A907600A918130C46DC778F971AD0038092999A333CB8B7A1A1DB93D7140003C2A4ECEA9F98D0ACC0A8291CDCEC97DCF8EC9B55A7F88A46B4DB5A851F44182E1C68A007E5E0DD9020BFD64B645036C7A4E677D2C38532A3A23BA4442CAF53EA63BB454329B7624C8917BDD64B1C0FD4CB38E8C334C701C3ACDAD0657FCCFEC719B1F5C3E4E46041F388147FB4CFDB477A52471F7A9A96910B855322EDB6340D8A00EF092350511E30ABEC1FFF9E3A26E7FB29F8C183023C3587E38DA0077D9B4763E4E4B94B2BBC194C6651E77CAF992EEAAC0232A281BF6B3A739C1226116820AE8DB5847A67CBEF9C9091B462D538CD72B03746AE77F5E62292C311562A846505DC82DB854338AE49F5235C95B91178CCF2DD5CACEF403EC9D1810C6272B045B3B71F9DC6B80D63FDD4A8E9ADB1E6962A69526D43161C1A41D570D7938DAD4A40E329CD0E40E65FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc7919_ffdhe6144 = DHStandardGroups.Rfc7919Parameters(DHStandardGroups.rfc7919_ffdhe6144_p, 375);
DHStandardGroups.rfc7919_ffdhe8192_p = "FFFFFFFFFFFFFFFFADF85458A2BB4A9AAFDC5620273D3CF1D8B9C583CE2D3695A9E13641146433FBCC939DCE249B3EF97D2FE363630C75D8F681B202AEC4617AD3DF1ED5D5FD65612433F51F5F066ED0856365553DED1AF3B557135E7F57C935984F0C70E0E68B77E2A689DAF3EFE8721DF158A136ADE73530ACCA4F483A797ABC0AB182B324FB61D108A94BB2C8E3FBB96ADAB760D7F4681D4F42A3DE394DF4AE56EDE76372BB190B07A7C8EE0A6D709E02FCE1CDF7E2ECC03404CD28342F619172FE9CE98583FF8E4F1232EEF28183C3FE3B1B4C6FAD733BB5FCBC2EC22005C58EF1837D1683B2C6F34A26C1B2EFFA886B4238611FCFDCDE355B3B6519035BBC34F4DEF99C023861B46FC9D6E6C9077AD91D2691F7F7EE598CB0FAC186D91CAEFE130985139270B4130C93BC437944F4FD4452E2D74DD364F2E21E71F54BFF5CAE82AB9C9DF69EE86D2BC522363A0DABC521979B0DEADA1DBF9A42D5C4484E0ABCD06BFA53DDEF3C1B20EE3FD59D7C25E41D2B669E1EF16E6F52C3164DF4FB7930E9E4E58857B6AC7D5F42D69F6D187763CF1D5503400487F55BA57E31CC7A7135C886EFB4318AED6A1E012D9E6832A907600A918130C46DC778F971AD0038092999A333CB8B7A1A1DB93D7140003C2A4ECEA9F98D0ACC0A8291CDCEC97DCF8EC9B55A7F88A46B4DB5A851F44182E1C68A007E5E0DD9020BFD64B645036C7A4E677D2C38532A3A23BA4442CAF53EA63BB454329B7624C8917BDD64B1C0FD4CB38E8C334C701C3ACDAD0657FCCFEC719B1F5C3E4E46041F388147FB4CFDB477A52471F7A9A96910B855322EDB6340D8A00EF092350511E30ABEC1FFF9E3A26E7FB29F8C183023C3587E38DA0077D9B4763E4E4B94B2BBC194C6651E77CAF992EEAAC0232A281BF6B3A739C1226116820AE8DB5847A67CBEF9C9091B462D538CD72B03746AE77F5E62292C311562A846505DC82DB854338AE49F5235C95B91178CCF2DD5CACEF403EC9D1810C6272B045B3B71F9DC6B80D63FDD4A8E9ADB1E6962A69526D43161C1A41D570D7938DAD4A40E329CCFF46AAA36AD004CF600C8381E425A31D951AE64FDB23FCEC9509D43687FEB69EDD1CC5E0B8CC3BDF64B10EF86B63142A3AB8829555B2F747C932665CB2C0F1CC01BD70229388839D2AF05E454504AC78B7582822846C0BA35C35F5C59160CC046FD8251541FC68C9C86B022BB7099876A460E7451A8A93109703FEE1C217E6C3826E52C51AA691E0E423CFC99E9E31650C1217B624816CDAD9A95F9D5B8019488D9C0A0A1FE3075A577E23183F81D4A3F2FA4571EFC8CE0BA8A4FE8B6855DFE72B0A66EDED2FBABFBE58A30FAFABE1C5D71A87E2F741EF8C1FE86FEA6BBFDE530677F0D97D11D49F7A8443D0822E506A9F4614E011E2A94838FF88CD68C8BB7C5C6424CFFFFFFFFFFFFFFFF";
DHStandardGroups.rfc7919_ffdhe8192 = DHStandardGroups.Rfc7919Parameters(DHStandardGroups.rfc7919_ffdhe8192_p, 400);
}
// Token: 0x0400794B RID: 31051
[Token(Token = "0x400794B")]
private static readonly string rfc2409_768_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A63A3620FFFFFFFFFFFFFFFF";
// Token: 0x0400794C RID: 31052
[Token(Token = "0x400794C")]
private static readonly string rfc2409_768_g = "02";
// Token: 0x0400794D RID: 31053
[Token(Token = "0x400794D")]
public static readonly DHParameters rfc2409_768;
// Token: 0x0400794E RID: 31054
[Token(Token = "0x400794E")]
private static readonly string rfc2409_1024_p;
// Token: 0x0400794F RID: 31055
[Token(Token = "0x400794F")]
private static readonly string rfc2409_1024_g;
// Token: 0x04007950 RID: 31056
[Token(Token = "0x4007950")]
public static readonly DHParameters rfc2409_1024;
// Token: 0x04007951 RID: 31057
[Token(Token = "0x4007951")]
private static readonly string rfc3526_1536_p;
// Token: 0x04007952 RID: 31058
[Token(Token = "0x4007952")]
private static readonly string rfc3526_1536_g;
// Token: 0x04007953 RID: 31059
[Token(Token = "0x4007953")]
public static readonly DHParameters rfc3526_1536;
// Token: 0x04007954 RID: 31060
[Token(Token = "0x4007954")]
private static readonly string rfc3526_2048_p;
// Token: 0x04007955 RID: 31061
[Token(Token = "0x4007955")]
private static readonly string rfc3526_2048_g;
// Token: 0x04007956 RID: 31062
[Token(Token = "0x4007956")]
public static readonly DHParameters rfc3526_2048;
// Token: 0x04007957 RID: 31063
[Token(Token = "0x4007957")]
private static readonly string rfc3526_3072_p;
// Token: 0x04007958 RID: 31064
[Token(Token = "0x4007958")]
private static readonly string rfc3526_3072_g;
// Token: 0x04007959 RID: 31065
[Token(Token = "0x4007959")]
public static readonly DHParameters rfc3526_3072;
// Token: 0x0400795A RID: 31066
[Token(Token = "0x400795A")]
private static readonly string rfc3526_4096_p;
// Token: 0x0400795B RID: 31067
[Token(Token = "0x400795B")]
private static readonly string rfc3526_4096_g;
// Token: 0x0400795C RID: 31068
[Token(Token = "0x400795C")]
public static readonly DHParameters rfc3526_4096;
// Token: 0x0400795D RID: 31069
[Token(Token = "0x400795D")]
private static readonly string rfc3526_6144_p;
// Token: 0x0400795E RID: 31070
[Token(Token = "0x400795E")]
private static readonly string rfc3526_6144_g;
// Token: 0x0400795F RID: 31071
[Token(Token = "0x400795F")]
public static readonly DHParameters rfc3526_6144;
// Token: 0x04007960 RID: 31072
[Token(Token = "0x4007960")]
private static readonly string rfc3526_8192_p;
// Token: 0x04007961 RID: 31073
[Token(Token = "0x4007961")]
private static readonly string rfc3526_8192_g;
// Token: 0x04007962 RID: 31074
[Token(Token = "0x4007962")]
public static readonly DHParameters rfc3526_8192;
// Token: 0x04007963 RID: 31075
[Token(Token = "0x4007963")]
public static readonly DHParameters rfc4306_768;
// Token: 0x04007964 RID: 31076
[Token(Token = "0x4007964")]
public static readonly DHParameters rfc4306_1024;
// Token: 0x04007965 RID: 31077
[Token(Token = "0x4007965")]
private static readonly string rfc5114_1024_160_p;
// Token: 0x04007966 RID: 31078
[Token(Token = "0x4007966")]
private static readonly string rfc5114_1024_160_g;
// Token: 0x04007967 RID: 31079
[Token(Token = "0x4007967")]
private static readonly string rfc5114_1024_160_q;
// Token: 0x04007968 RID: 31080
[Token(Token = "0x4007968")]
[Obsolete]
public static readonly DHParameters rfc5114_1024_160;
// Token: 0x04007969 RID: 31081
[Token(Token = "0x4007969")]
private static readonly string rfc5114_2048_224_p;
// Token: 0x0400796A RID: 31082
[Token(Token = "0x400796A")]
private static readonly string rfc5114_2048_224_g;
// Token: 0x0400796B RID: 31083
[Token(Token = "0x400796B")]
private static readonly string rfc5114_2048_224_q;
// Token: 0x0400796C RID: 31084
[Token(Token = "0x400796C")]
[Obsolete]
public static readonly DHParameters rfc5114_2048_224;
// Token: 0x0400796D RID: 31085
[Token(Token = "0x400796D")]
private static readonly string rfc5114_2048_256_p;
// Token: 0x0400796E RID: 31086
[Token(Token = "0x400796E")]
private static readonly string rfc5114_2048_256_g;
// Token: 0x0400796F RID: 31087
[Token(Token = "0x400796F")]
private static readonly string rfc5114_2048_256_q;
// Token: 0x04007970 RID: 31088
[Token(Token = "0x4007970")]
[Obsolete]
public static readonly DHParameters rfc5114_2048_256;
// Token: 0x04007971 RID: 31089
[Token(Token = "0x4007971")]
public static readonly DHParameters rfc5996_768;
// Token: 0x04007972 RID: 31090
[Token(Token = "0x4007972")]
public static readonly DHParameters rfc5996_1024;
// Token: 0x04007973 RID: 31091
[Token(Token = "0x4007973")]
private static readonly string rfc7919_ffdhe2048_p;
// Token: 0x04007974 RID: 31092
[Token(Token = "0x4007974")]
public static readonly DHParameters rfc7919_ffdhe2048;
// Token: 0x04007975 RID: 31093
[Token(Token = "0x4007975")]
private static readonly string rfc7919_ffdhe3072_p;
// Token: 0x04007976 RID: 31094
[Token(Token = "0x4007976")]
public static readonly DHParameters rfc7919_ffdhe3072;
// Token: 0x04007977 RID: 31095
[Token(Token = "0x4007977")]
private static readonly string rfc7919_ffdhe4096_p;
// Token: 0x04007978 RID: 31096
[Token(Token = "0x4007978")]
public static readonly DHParameters rfc7919_ffdhe4096;
// Token: 0x04007979 RID: 31097
[Token(Token = "0x4007979")]
private static readonly string rfc7919_ffdhe6144_p;
// Token: 0x0400797A RID: 31098
[Token(Token = "0x400797A")]
public static readonly DHParameters rfc7919_ffdhe6144;
// Token: 0x0400797B RID: 31099
[Token(Token = "0x400797B")]
private static readonly string rfc7919_ffdhe8192_p;
// Token: 0x0400797C RID: 31100
[Token(Token = "0x400797C")]
public static readonly DHParameters rfc7919_ffdhe8192;
}
}
@@ -0,0 +1,74 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001DE8 RID: 7656
[Token(Token = "0x2001DE8")]
public class ECDHBasicAgreement : IBasicAgreement
{
// Token: 0x0600C00B RID: 49163 RVA: 0x002B5028 File Offset: 0x002B3228
[Token(Token = "0x600C00B")]
[Address(RVA = "0x292C8B0", Offset = "0x292B8B0", VA = "0x18292C8B0", Slot = "7")]
public virtual void Init(ICipherParameters parameters)
{
int num;
do
{
num = 0;
}
while (parameters != 0 && ((parameters != 0 && (parameters == 0 || parameters == 0)) || (parameters != 0 && parameters == 0)));
this.privKey = num;
}
// Token: 0x0600C00C RID: 49164 RVA: 0x002B5060 File Offset: 0x002B3260
[Token(Token = "0x600C00C")]
[Address(RVA = "0x292C860", Offset = "0x292B860", VA = "0x18292C860", Slot = "8")]
public virtual int GetFieldSize()
{
string text = this.privKey.parameters.curve.ToString();
text += 0;
throw new NullReferenceException();
}
// Token: 0x0600C00D RID: 49165 RVA: 0x002B508C File Offset: 0x002B328C
[Token(Token = "0x600C00D")]
[Address(RVA = "0x292C570", Offset = "0x292B570", VA = "0x18292C570", Slot = "9")]
public virtual BigInteger CalculateAgreement(ICipherParameters pubKey)
{
/*
An exception occurred when decompiling this method (0600C00D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.ECDHBasicAgreement::CalculateAgreement(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_83:
stloc:InvalidOperationException(var_14_8D, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Infinity is not a valid public key for ECDH")))
}
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: 0x0600C00E RID: 49166 RVA: 0x002B5128 File Offset: 0x002B3328
[Token(Token = "0x600C00E")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public ECDHBasicAgreement()
{
}
// Token: 0x0400797D RID: 31101
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400797D")]
protected internal ECPrivateKeyParameters privKey;
}
}
@@ -0,0 +1,74 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001DE9 RID: 7657
[Token(Token = "0x2001DE9")]
public class ECDHCBasicAgreement : IBasicAgreement
{
// Token: 0x0600C00F RID: 49167 RVA: 0x002B513C File Offset: 0x002B333C
[Token(Token = "0x600C00F")]
[Address(RVA = "0x292CC70", Offset = "0x292BC70", VA = "0x18292CC70", Slot = "7")]
public virtual void Init(ICipherParameters parameters)
{
int num;
do
{
num = 0;
}
while (parameters != 0 && ((parameters != 0 && (parameters == 0 || parameters == 0)) || (parameters != 0 && parameters == 0)));
this.privKey = num;
}
// Token: 0x0600C010 RID: 49168 RVA: 0x002B5174 File Offset: 0x002B3374
[Token(Token = "0x600C010")]
[Address(RVA = "0x292C860", Offset = "0x292B860", VA = "0x18292C860", Slot = "8")]
public virtual int GetFieldSize()
{
string text = this.privKey.parameters.curve.ToString();
text += 0;
throw new NullReferenceException();
}
// Token: 0x0600C011 RID: 49169 RVA: 0x002B51A0 File Offset: 0x002B33A0
[Token(Token = "0x600C011")]
[Address(RVA = "0x292CA10", Offset = "0x292BA10", VA = "0x18292CA10", Slot = "9")]
public virtual BigInteger CalculateAgreement(ICipherParameters pubKey)
{
/*
An exception occurred when decompiling this method (0600C011)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.ECDHCBasicAgreement::CalculateAgreement(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_77:
stloc:InvalidOperationException(var_14_81, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Infinity is not a valid public key for ECDHC")))
}
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: 0x0600C012 RID: 49170 RVA: 0x002B5230 File Offset: 0x002B3430
[Token(Token = "0x600C012")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public ECDHCBasicAgreement()
{
}
// Token: 0x0400797E RID: 31102
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400797E")]
private ECPrivateKeyParameters privKey;
}
}
@@ -0,0 +1,78 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X9;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001DEA RID: 7658
[Token(Token = "0x2001DEA")]
public class ECDHWithKdfBasicAgreement : ECDHBasicAgreement
{
// Token: 0x0600C013 RID: 49171 RVA: 0x002B5244 File Offset: 0x002B3444
[Token(Token = "0x600C013")]
[Address(RVA = "0x292CFC0", Offset = "0x292BFC0", VA = "0x18292CFC0")]
public ECDHWithKdfBasicAgreement(string algorithm, IDerivationFunction kdf)
{
/*
An exception occurred when decompiling this method (0600C013)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.ECDHWithKdfBasicAgreement::.ctor(System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDerivationFunction)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_28:
stloc:ArgumentNullException(var_1_32, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("kdf")))
}
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: 0x0600C014 RID: 49172 RVA: 0x002B5284 File Offset: 0x002B3484
[Token(Token = "0x600C014")]
[Address(RVA = "0x292CE10", Offset = "0x292BE10", VA = "0x18292CE10", Slot = "9")]
public override BigInteger CalculateAgreement(ICipherParameters pubKey)
{
BigInteger bigInteger = base.CalculateAgreement(pubKey);
int defaultKeySize = GeneratorUtilities.GetDefaultKeySize(this.algorithm);
DerObjectIdentifier derObjectIdentifier = new DerObjectIdentifier(this.algorithm);
int byteLength = X9IntegerConverter.GetByteLength(this.privKey.parameters.curve);
byte[] array = X9IntegerConverter.IntegerToBytes(bigInteger, byteLength);
DHKdfParameters dhkdfParameters = new DHKdfParameters(derObjectIdentifier, defaultKeySize, array);
IDerivationFunction derivationFunction = this.kdf;
byte[] array2 = new byte[0];
IDerivationFunction derivationFunction2 = this.kdf;
int length = array2.Length;
return new BigInteger(1, array2);
}
// Token: 0x0600C015 RID: 49173 RVA: 0x002B530C File Offset: 0x002B350C
[Token(Token = "0x600C015")]
[Address(RVA = "0x292CDD0", Offset = "0x292BDD0", VA = "0x18292CDD0")]
private byte[] BigIntToBytes(BigInteger r)
{
int byteLength = X9IntegerConverter.GetByteLength(this.privKey.parameters.curve);
return X9IntegerConverter.IntegerToBytes(r, byteLength);
}
// Token: 0x0400797F RID: 31103
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400797F")]
private readonly string algorithm;
// Token: 0x04007980 RID: 31104
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007980")]
private readonly IDerivationFunction kdf;
}
}
@@ -0,0 +1,104 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001DEB RID: 7659
[Token(Token = "0x2001DEB")]
public class ECMqvBasicAgreement : IBasicAgreement
{
// Token: 0x0600C016 RID: 49174 RVA: 0x002B533C File Offset: 0x002B353C
[Token(Token = "0x600C016")]
[Address(RVA = "0x292D690", Offset = "0x292C690", VA = "0x18292D690", Slot = "7")]
public virtual void Init(ICipherParameters parameters)
{
int num;
do
{
num = 0;
}
while (parameters != 0 && ((parameters != 0 && (parameters == 0 || parameters == 0)) || (parameters != 0 && parameters == 0)));
this.privParams = num;
}
// Token: 0x0600C017 RID: 49175 RVA: 0x002B5374 File Offset: 0x002B3574
[Token(Token = "0x600C017")]
[Address(RVA = "0x292D630", Offset = "0x292C630", VA = "0x18292D630", Slot = "8")]
public virtual int GetFieldSize()
{
string text = this.privParams.ToString().m_stringLength.ToString();
text += 0;
throw new NullReferenceException();
}
// Token: 0x0600C018 RID: 49176 RVA: 0x002B53A0 File Offset: 0x002B35A0
[Token(Token = "0x600C018")]
[Address(RVA = "0x292D090", Offset = "0x292C090", VA = "0x18292D090", Slot = "9")]
public virtual BigInteger CalculateAgreement(ICipherParameters pubKey)
{
/*
An exception occurred when decompiling this method (0600C018)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.ECMqvBasicAgreement::CalculateAgreement(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_47:
stloc:InvalidOperationException(var_9_51, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("ECMQV public key components have wrong domain parameters")))
}
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: 0x0600C019 RID: 49177 RVA: 0x002B5400 File Offset: 0x002B3600
[Token(Token = "0x600C019")]
[Address(RVA = "0x292D320", Offset = "0x292C320", VA = "0x18292D320")]
private static ECPoint CalculateMqvAgreement(ECDomainParameters parameters, ECPrivateKeyParameters d1U, ECPrivateKeyParameters d2U, ECPublicKeyParameters Q2U, ECPublicKeyParameters Q1V, ECPublicKeyParameters Q2V)
{
BigInteger n = parameters.n;
int num = 0;
int num2 = n.BitLength;
num2++;
num2 -= num;
BigInteger bigInteger = BigInteger.One.ShiftLeft(num2);
ECCurve curve = parameters.curve;
ECPoint q = Q2U.q;
string text = ECAlgorithms.CleanPoint(curve, q).CurveCoordinateSystem.ToString();
BigInteger bigInteger3;
BigInteger bigInteger2 = bigInteger3.SetBit(num2);
BigInteger bigInteger4 = d1U.d.Multiply(bigInteger2);
BigInteger bigInteger6;
BigInteger bigInteger5 = bigInteger6.Mod(n);
ECPoint ecpoint;
string text2 = ecpoint.CurveCoordinateSystem.ToString();
BigInteger bigInteger8;
BigInteger bigInteger7 = bigInteger8.SetBit(num2);
BigInteger bigInteger9 = parameters.h.Multiply(bigInteger5).Mod(n);
BigInteger bigInteger10 = bigInteger7.Multiply(bigInteger9).Mod(n);
ECPoint ecpoint2;
return ECAlgorithms.SumOfTwoMultiplies(ecpoint2, bigInteger10, ecpoint, bigInteger9);
}
// Token: 0x0600C01A RID: 49178 RVA: 0x002B54CC File Offset: 0x002B36CC
[Token(Token = "0x600C01A")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public ECMqvBasicAgreement()
{
}
// Token: 0x04007981 RID: 31105
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007981")]
protected internal MqvPrivateParameters privParams;
}
}
@@ -0,0 +1,85 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X9;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001DEC RID: 7660
[Token(Token = "0x2001DEC")]
public class ECMqvWithKdfBasicAgreement : ECMqvBasicAgreement
{
// Token: 0x0600C01B RID: 49179 RVA: 0x002B54E0 File Offset: 0x002B36E0
[Token(Token = "0x600C01B")]
[Address(RVA = "0x292DA20", Offset = "0x292CA20", VA = "0x18292DA20")]
public ECMqvWithKdfBasicAgreement(string algorithm, IDerivationFunction kdf)
{
/*
An exception occurred when decompiling this method (0600C01B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.ECMqvWithKdfBasicAgreement::.ctor(System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDerivationFunction)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_28:
stloc:ArgumentNullException(var_1_32, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("kdf")))
}
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: 0x0600C01C RID: 49180 RVA: 0x002B5520 File Offset: 0x002B3720
[Token(Token = "0x600C01C")]
[Address(RVA = "0x292D850", Offset = "0x292C850", VA = "0x18292D850", Slot = "9")]
public override BigInteger CalculateAgreement(ICipherParameters pubKey)
{
BigInteger bigInteger = base.CalculateAgreement(pubKey);
int defaultKeySize = GeneratorUtilities.GetDefaultKeySize(this.algorithm);
DerObjectIdentifier derObjectIdentifier = new DerObjectIdentifier(this.algorithm);
MqvPrivateParameters privParams = this.privParams;
string text = privParams.ToString();
ECPrivateKeyParameters staticPrivateKey = privParams.staticPrivateKey;
int num;
byte[] array = X9IntegerConverter.IntegerToBytes(bigInteger, num);
DHKdfParameters dhkdfParameters = new DHKdfParameters(derObjectIdentifier, defaultKeySize, array);
IDerivationFunction derivationFunction = this.kdf;
byte[] array2 = new byte[0];
IDerivationFunction derivationFunction2 = this.kdf;
int length = array2.Length;
return new BigInteger(1, array2);
}
// Token: 0x0600C01D RID: 49181 RVA: 0x002B55A8 File Offset: 0x002B37A8
[Token(Token = "0x600C01D")]
[Address(RVA = "0x292D7F0", Offset = "0x292C7F0", VA = "0x18292D7F0")]
private byte[] BigIntToBytes(BigInteger r)
{
MqvPrivateParameters privParams = this.privParams;
string text = privParams.ToString();
ECPrivateKeyParameters staticPrivateKey = privParams.staticPrivateKey;
int num;
return X9IntegerConverter.IntegerToBytes(r, num);
}
// Token: 0x04007982 RID: 31106
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007982")]
private readonly string algorithm;
// Token: 0x04007983 RID: 31107
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007983")]
private readonly IDerivationFunction kdf;
}
}
@@ -0,0 +1,416 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001DF9 RID: 7673
[Token(Token = "0x2001DF9")]
public class JPakeParticipant
{
// Token: 0x0600C06E RID: 49262 RVA: 0x002B6EE8 File Offset: 0x002B50E8
[Token(Token = "0x600C06E")]
[Address(RVA = "0x292ED50", Offset = "0x292DD50", VA = "0x18292ED50")]
public JPakeParticipant(string participantId, char[] password)
{
JPakePrimeOrderGroup nist_ = JPakePrimeOrderGroups.NIST_3072;
}
// Token: 0x0600C06F RID: 49263 RVA: 0x002B6EFC File Offset: 0x002B50FC
[Token(Token = "0x600C06F")]
[Address(RVA = "0x292EDE0", Offset = "0x292DDE0", VA = "0x18292EDE0")]
public JPakeParticipant(string participantId, char[] password, JPakePrimeOrderGroup group)
{
/*
An exception occurred when decompiling this method (0600C06F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeParticipant::.ctor(System.String,System.Char[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakePrimeOrderGroup)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_CF:
stloc:ArgumentException(var_8_D9, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Password must not be empty.")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600C070 RID: 49264 RVA: 0x002B6FE4 File Offset: 0x002B51E4
[Token(Token = "0x600C070")]
[Address(RVA = "0x292F010", Offset = "0x292E010", VA = "0x18292F010")]
public JPakeParticipant(string participantId, char[] password, JPakePrimeOrderGroup group, IDigest digest, SecureRandom random)
{
/*
An exception occurred when decompiling this method (0600C070)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeParticipant::.ctor(System.String,System.Char[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakePrimeOrderGroup,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,BestHTTP.SecureProtocol.Org.BouncyCastle.Security.SecureRandom)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A9:
stloc:ArgumentException(var_6_B3, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Password must not be empty.")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x17001DD4 RID: 7636
// (get) Token: 0x0600C071 RID: 49265 RVA: 0x002B70A8 File Offset: 0x002B52A8
[Token(Token = "0x17001DD4")]
public virtual int State
{
[Token(Token = "0x600C071")]
[Address(RVA = "0x4F3F50", Offset = "0x4F2F50", VA = "0x1804F3F50", Slot = "4")]
get
{
return this.state;
}
}
// Token: 0x0600C072 RID: 49266 RVA: 0x002B70BC File Offset: 0x002B52BC
[Token(Token = "0x600C072")]
[Address(RVA = "0x292DD20", Offset = "0x292CD20", VA = "0x18292DD20", Slot = "5")]
public virtual JPakeRound1Payload CreateRound1PayloadToSend()
{
int num = this.state;
BigInteger bigInteger = this.q;
SecureRandom secureRandom = this.random;
BigInteger bigInteger2 = JPakeUtilities.GenerateX1(bigInteger, secureRandom);
SecureRandom secureRandom2 = this.random;
BigInteger bigInteger3 = this.q;
this.x1 = bigInteger2;
BigInteger bigInteger4 = JPakeUtilities.GenerateX2(bigInteger3, secureRandom2);
BigInteger bigInteger5 = this.x1;
BigInteger bigInteger6 = this.g;
BigInteger bigInteger7 = this.p;
this.x2 = bigInteger4;
BigInteger bigInteger8 = DsaKeyPairGenerator.CalculatePublicKey(bigInteger7, bigInteger6, bigInteger5);
BigInteger bigInteger9 = this.x2;
BigInteger bigInteger10 = this.g;
BigInteger bigInteger11 = this.p;
this.gx1 = bigInteger8;
BigInteger bigInteger12 = DsaKeyPairGenerator.CalculatePublicKey(bigInteger11, bigInteger10, bigInteger9);
IDigest digest = this.digest;
string text = this.participantId;
BigInteger bigInteger13 = this.x1;
BigInteger bigInteger14 = this.gx1;
BigInteger bigInteger15 = this.g;
BigInteger bigInteger16 = this.q;
BigInteger bigInteger17 = this.p;
this.gx2 = bigInteger12;
SecureRandom secureRandom3 = this.random;
BigInteger[] array = JPakeUtilities.CalculateZeroKnowledgeProof(bigInteger17, bigInteger16, bigInteger15, bigInteger14, bigInteger13, text, digest, secureRandom3);
SecureRandom secureRandom4 = this.random;
IDigest digest2 = this.digest;
string text2 = this.participantId;
BigInteger bigInteger18 = this.x2;
BigInteger bigInteger19 = this.gx2;
BigInteger bigInteger20 = this.g;
BigInteger bigInteger21 = this.q;
BigInteger[] array2 = JPakeUtilities.CalculateZeroKnowledgeProof(this.p, bigInteger21, bigInteger20, bigInteger19, bigInteger18, text2, digest2, secureRandom4);
string text3 = this.participantId;
BigInteger bigInteger22 = this.gx1;
BigInteger bigInteger23 = this.gx2;
int state_ROUND_1_CREATED = JPakeParticipant.STATE_ROUND_1_CREATED;
this.state = state_ROUND_1_CREATED;
return new JPakeRound1Payload(text3, bigInteger22, bigInteger23, array, array2);
}
// Token: 0x0600C073 RID: 49267 RVA: 0x002B7254 File Offset: 0x002B5454
[Token(Token = "0x600C073")]
[Address(RVA = "0x292E450", Offset = "0x292D450", VA = "0x18292E450", Slot = "6")]
public virtual void ValidateRound1PayloadReceived(JPakeRound1Payload round1PayloadReceived)
{
int num = this.state;
string text = round1PayloadReceived.ToString();
this.partnerParticipantId = text;
string text2 = round1PayloadReceived.ParticipantId;
this.gx3 = text2;
BigInteger bigInteger = round1PayloadReceived.Gx1;
this.gx4 = bigInteger;
BigInteger bigInteger2 = round1PayloadReceived.Gx2;
BigInteger[] knowledgeProofForX = round1PayloadReceived.KnowledgeProofForX1;
string text3 = this.participantId;
string text4 = round1PayloadReceived.ToString();
JPakeUtilities.ValidateParticipantIdsDiffer(text3, text4);
JPakeUtilities.ValidateGx4(this.gx4);
BigInteger bigInteger3 = this.p;
string text5 = round1PayloadReceived.ToString();
IDigest digest = this.digest;
BigInteger bigInteger4 = this.p;
BigInteger bigInteger5 = this.q;
BigInteger bigInteger6 = this.g;
BigInteger bigInteger7 = this.gx4;
string text6 = round1PayloadReceived.ToString();
IDigest digest2 = this.digest;
JPakeUtilities.ValidateZeroKnowledgeProof(bigInteger4, bigInteger5, bigInteger6, bigInteger7, knowledgeProofForX, text6, digest2);
int state_ROUND_1_VALIDATED = JPakeParticipant.STATE_ROUND_1_VALIDATED;
this.state = state_ROUND_1_VALIDATED;
}
// Token: 0x0600C074 RID: 49268 RVA: 0x002B733C File Offset: 0x002B553C
[Token(Token = "0x600C074")]
[Address(RVA = "0x292DF80", Offset = "0x292CF80", VA = "0x18292DF80", Slot = "7")]
public virtual JPakeRound2Payload CreateRound2PayloadToSend()
{
int num = this.state;
int num2 = this.state;
BigInteger bigInteger = this.p;
BigInteger bigInteger2 = this.gx1;
BigInteger bigInteger3 = this.gx3;
BigInteger bigInteger4 = this.gx4;
BigInteger bigInteger5 = JPakeUtilities.CalculateGA(bigInteger, bigInteger2, bigInteger3, bigInteger4);
BigInteger bigInteger6 = JPakeUtilities.CalculateS(this.password);
BigInteger bigInteger7 = this.x2;
BigInteger bigInteger8 = JPakeUtilities.CalculateX2s(this.q, bigInteger7, bigInteger6);
BigInteger bigInteger9 = this.q;
BigInteger bigInteger10 = JPakeUtilities.CalculateA(this.p, bigInteger9, bigInteger5, bigInteger8);
SecureRandom secureRandom = this.random;
IDigest digest = this.digest;
string text = this.participantId;
BigInteger bigInteger11 = this.q;
BigInteger[] array = JPakeUtilities.CalculateZeroKnowledgeProof(this.p, bigInteger11, bigInteger5, bigInteger10, bigInteger8, text, digest, secureRandom);
string text2 = this.participantId;
int state_ROUND_2_CREATED = JPakeParticipant.STATE_ROUND_2_CREATED;
this.state = state_ROUND_2_CREATED;
return new JPakeRound2Payload(text2, bigInteger10, array);
}
// Token: 0x0600C075 RID: 49269 RVA: 0x002B742C File Offset: 0x002B562C
[Token(Token = "0x600C075")]
[Address(RVA = "0x292E700", Offset = "0x292D700", VA = "0x18292E700", Slot = "8")]
public virtual void ValidateRound2PayloadReceived(JPakeRound2Payload round2PayloadReceived)
{
int num = this.state;
int num2 = this.state;
BigInteger bigInteger = this.p;
BigInteger bigInteger2 = this.gx3;
BigInteger bigInteger3 = this.gx1;
BigInteger bigInteger4 = this.gx2;
BigInteger bigInteger5 = JPakeUtilities.CalculateGA(bigInteger, bigInteger2, bigInteger3, bigInteger4);
string text = round2PayloadReceived.ParticipantId;
this.b = text;
BigInteger a = round2PayloadReceived.A;
string text2 = this.participantId;
string text3 = round2PayloadReceived.ToString();
JPakeUtilities.ValidateParticipantIdsDiffer(text2, text3);
string text4 = this.partnerParticipantId;
string text5 = round2PayloadReceived.ToString();
JPakeUtilities.ValidateParticipantIdsEqual(text4, text5);
JPakeUtilities.ValidateGa(bigInteger5);
BigInteger bigInteger6 = this.p;
string text6 = round2PayloadReceived.ToString();
IDigest digest = this.digest;
int state_ROUND_2_VALIDATED = JPakeParticipant.STATE_ROUND_2_VALIDATED;
this.state = state_ROUND_2_VALIDATED;
}
// Token: 0x0600C076 RID: 49270 RVA: 0x002B74F4 File Offset: 0x002B56F4
[Token(Token = "0x600C076")]
[Address(RVA = "0x292DB10", Offset = "0x292CB10", VA = "0x18292DB10", Slot = "9")]
public virtual BigInteger CalculateKeyingMaterial()
{
int num = this.state;
int num2 = this.state;
BigInteger bigInteger = JPakeUtilities.CalculateS(this.password);
char[] array = this.password;
int length = array.Length;
int num3 = 0;
Array.Clear(array, num3, length);
BigInteger bigInteger2 = this.b;
int num4 = 0;
BigInteger bigInteger3 = this.x2;
BigInteger bigInteger4 = this.gx4;
BigInteger bigInteger5 = this.q;
BigInteger bigInteger6 = this.p;
this.password = num4;
BigInteger bigInteger7 = JPakeUtilities.CalculateKeyingMaterial(bigInteger6, bigInteger5, bigInteger4, bigInteger3, bigInteger, bigInteger2);
this.x1 = num4;
this.x2 = num4;
this.b = num4;
int state_KEY_CALCULATED = JPakeParticipant.STATE_KEY_CALCULATED;
this.state = state_KEY_CALCULATED;
return bigInteger7;
}
// Token: 0x0600C077 RID: 49271 RVA: 0x002B75B0 File Offset: 0x002B57B0
[Token(Token = "0x600C077")]
[Address(RVA = "0x292E200", Offset = "0x292D200", VA = "0x18292E200", Slot = "10")]
public virtual JPakeRound3Payload CreateRound3PayloadToSend(BigInteger keyingMaterial)
{
int num = this.state;
int num2 = this.state;
IDigest digest = this.digest;
string text = this.participantId;
string text2 = this.partnerParticipantId;
BigInteger bigInteger = this.gx1;
BigInteger bigInteger2 = this.gx2;
BigInteger bigInteger3 = this.gx3;
BigInteger bigInteger4 = this.gx4;
BigInteger bigInteger5 = JPakeUtilities.CalculateMacTag(text, text2, bigInteger, bigInteger2, bigInteger3, bigInteger4, keyingMaterial, digest);
int state_ROUND_3_CREATED = JPakeParticipant.STATE_ROUND_3_CREATED;
this.state = state_ROUND_3_CREATED;
return new JPakeRound3Payload(this.participantId, bigInteger5);
}
// Token: 0x0600C078 RID: 49272 RVA: 0x002B763C File Offset: 0x002B583C
[Token(Token = "0x600C078")]
[Address(RVA = "0x292E9D0", Offset = "0x292D9D0", VA = "0x18292E9D0", Slot = "11")]
public virtual void ValidateRound3PayloadReceived(JPakeRound3Payload round3PayloadReceived, BigInteger keyingMaterial)
{
int num = this.state;
int num2 = this.state;
string text = this.participantId;
string text2 = round3PayloadReceived.ToString();
JPakeUtilities.ValidateParticipantIdsDiffer(text, text2);
string text3 = this.partnerParticipantId;
string text4 = round3PayloadReceived.ToString();
JPakeUtilities.ValidateParticipantIdsEqual(text3, text4);
string text5 = this.participantId;
BigInteger bigInteger = this.gx3;
BigInteger bigInteger2 = this.gx4;
IDigest digest = this.digest;
int num3 = 0;
this.gx1 = num3;
this.gx2 = num3;
this.gx3 = num3;
this.gx4 = num3;
int state_ROUND_3_VALIDATED = JPakeParticipant.STATE_ROUND_3_VALIDATED;
this.state = state_ROUND_3_VALIDATED;
}
// Token: 0x040079D2 RID: 31186
[Token(Token = "0x40079D2")]
public static readonly int STATE_INITIALIZED;
// Token: 0x040079D3 RID: 31187
[Token(Token = "0x40079D3")]
public static readonly int STATE_ROUND_1_CREATED;
// Token: 0x040079D4 RID: 31188
[Token(Token = "0x40079D4")]
public static readonly int STATE_ROUND_1_VALIDATED;
// Token: 0x040079D5 RID: 31189
[Token(Token = "0x40079D5")]
public static readonly int STATE_ROUND_2_CREATED;
// Token: 0x040079D6 RID: 31190
[Token(Token = "0x40079D6")]
public static readonly int STATE_ROUND_2_VALIDATED;
// Token: 0x040079D7 RID: 31191
[Token(Token = "0x40079D7")]
public static readonly int STATE_KEY_CALCULATED;
// Token: 0x040079D8 RID: 31192
[Token(Token = "0x40079D8")]
public static readonly int STATE_ROUND_3_CREATED;
// Token: 0x040079D9 RID: 31193
[Token(Token = "0x40079D9")]
public static readonly int STATE_ROUND_3_VALIDATED;
// Token: 0x040079DA RID: 31194
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40079DA")]
private string participantId;
// Token: 0x040079DB RID: 31195
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40079DB")]
private char[] password;
// Token: 0x040079DC RID: 31196
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40079DC")]
private IDigest digest;
// Token: 0x040079DD RID: 31197
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40079DD")]
private readonly SecureRandom random;
// Token: 0x040079DE RID: 31198
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40079DE")]
private readonly BigInteger p;
// Token: 0x040079DF RID: 31199
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40079DF")]
private readonly BigInteger q;
// Token: 0x040079E0 RID: 31200
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40079E0")]
private readonly BigInteger g;
// Token: 0x040079E1 RID: 31201
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40079E1")]
private string partnerParticipantId;
// Token: 0x040079E2 RID: 31202
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40079E2")]
private BigInteger x1;
// Token: 0x040079E3 RID: 31203
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40079E3")]
private BigInteger x2;
// Token: 0x040079E4 RID: 31204
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x40079E4")]
private BigInteger gx1;
// Token: 0x040079E5 RID: 31205
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x40079E5")]
private BigInteger gx2;
// Token: 0x040079E6 RID: 31206
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x40079E6")]
private BigInteger gx3;
// Token: 0x040079E7 RID: 31207
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x40079E7")]
private BigInteger gx4;
// Token: 0x040079E8 RID: 31208
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x40079E8")]
private BigInteger b;
// Token: 0x040079E9 RID: 31209
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x40079E9")]
private int state;
}
}
@@ -0,0 +1,98 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001DFA RID: 7674
[Token(Token = "0x2001DFA")]
public class JPakePrimeOrderGroup
{
// Token: 0x0600C07A RID: 49274 RVA: 0x002B76F0 File Offset: 0x002B58F0
[Token(Token = "0x600C07A")]
[Address(RVA = "0x25A7360", Offset = "0x25A6360", VA = "0x1825A7360")]
public JPakePrimeOrderGroup(BigInteger p, BigInteger q, BigInteger g)
{
}
// Token: 0x0600C07B RID: 49275 RVA: 0x002B7700 File Offset: 0x002B5900
[Token(Token = "0x600C07B")]
[Address(RVA = "0x25A6EF0", Offset = "0x25A5EF0", VA = "0x1825A6EF0")]
public JPakePrimeOrderGroup(BigInteger p, BigInteger q, BigInteger g, bool skipChecks)
{
/*
An exception occurred when decompiling this method (0600C07B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakePrimeOrderGroup::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A1:
stloc:ArgumentException(var_6_AB, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("p must be prime")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x17001DD5 RID: 7637
// (get) Token: 0x0600C07C RID: 49276 RVA: 0x002B77BC File Offset: 0x002B59BC
[Token(Token = "0x17001DD5")]
public virtual BigInteger P
{
[Token(Token = "0x600C07C")]
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "4")]
get
{
return this.p;
}
}
// Token: 0x17001DD6 RID: 7638
// (get) Token: 0x0600C07D RID: 49277 RVA: 0x002B77D0 File Offset: 0x002B59D0
[Token(Token = "0x17001DD6")]
public virtual BigInteger Q
{
[Token(Token = "0x600C07D")]
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0", Slot = "5")]
get
{
return this.q;
}
}
// Token: 0x17001DD7 RID: 7639
// (get) Token: 0x0600C07E RID: 49278 RVA: 0x002B77E4 File Offset: 0x002B59E4
[Token(Token = "0x17001DD7")]
public virtual BigInteger G
{
[Token(Token = "0x600C07E")]
[Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0", Slot = "6")]
get
{
return this.g;
}
}
// Token: 0x040079EA RID: 31210
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40079EA")]
private readonly BigInteger p;
// Token: 0x040079EB RID: 31211
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40079EB")]
private readonly BigInteger q;
// Token: 0x040079EC RID: 31212
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40079EC")]
private readonly BigInteger g;
}
}
@@ -0,0 +1,53 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001DFB RID: 7675
[Token(Token = "0x2001DFB")]
public class JPakePrimeOrderGroups
{
// Token: 0x0600C07F RID: 49279 RVA: 0x002B77F8 File Offset: 0x002B59F8
[Token(Token = "0x600C07F")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public JPakePrimeOrderGroups()
{
}
// Token: 0x0600C080 RID: 49280 RVA: 0x002B780C File Offset: 0x002B5A0C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600C080")]
[Address(RVA = "0x25A7380", Offset = "0x25A6380", VA = "0x1825A7380")]
static JPakePrimeOrderGroups()
{
BigInteger bigInteger = new BigInteger("fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b6512669455d402251fb593d8d58fabfc5f5ba30f6cb9b556cd7813b801d346ff26660b76b9950a5a49f9fe8047b1022c24fbba9d7feb7c61bf83b57e7c6a8a6150f04fb83f6d3c51ec3023554135a169132f675f3ae2b61d72aeff22203199dd14801c7", 16);
BigInteger bigInteger2 = new BigInteger("9760508f15230bccb292b982a2eb840bf0581cf5", 16);
BigInteger bigInteger3 = new BigInteger("f7e1a085d69b3ddecbbcab5c36b857b97994afbbfa3aea82f9574c0b3d0782675159578ebad4594fe67107108180b449167123e84c281613b7cf09328cc8a6e13c167a8b547c8d28e0a3ae1e2bb3a675916ea37f0bfa213562f1fb627a01243bcca4f1bea8519089a883dfe15ae59f06928b665e807b552564014c3bfecf492a", 16);
ulong num;
JPakePrimeOrderGroups.SUN_JCE_1024 = new JPakePrimeOrderGroup(bigInteger, bigInteger2, bigInteger3, num != 0UL);
BigInteger bigInteger4 = new BigInteger("C196BA05AC29E1F9C3C72D56DFFC6154A033F1477AC88EC37F09BE6C5BB95F51C296DD20D1A28A067CCC4D4316A4BD1DCA55ED1066D438C35AEBAABF57E7DAE428782A95ECA1C143DB701FD48533A3C18F0FE23557EA7AE619ECACC7E0B51652A8776D02A425567DED36EABD90CA33A1E8D988F0BBB92D02D1D20290113BB562CE1FC856EEB7CDD92D33EEA6F410859B179E7E789A8F75F645FAE2E136D252BFFAFF89528945C1ABE705A38DBC2D364AADE99BE0D0AAD82E5320121496DC65B3930E38047294FF877831A16D5228418DE8AB275D7D75651CEFED65F78AFC3EA7FE4D79B35F62A0402A1117599ADAC7B269A59F353CF450E6982D3B1702D9CA83", 16);
BigInteger bigInteger5 = new BigInteger("90EAF4D1AF0708B1B612FF35E0A2997EB9E9D263C9CE659528945C0D", 16);
BigInteger bigInteger6 = new BigInteger("A59A749A11242C58C894E9E5A91804E8FA0AC64B56288F8D47D51B1EDC4D65444FECA0111D78F35FC9FDD4CB1F1B79A3BA9CBEE83A3F811012503C8117F98E5048B089E387AF6949BF8784EBD9EF45876F2E6A5A495BE64B6E770409494B7FEE1DBB1E4B2BC2A53D4F893D418B7159592E4FFFDF6969E91D770DAEBD0B5CB14C00AD68EC7DC1E5745EA55C706C4A1C5C88964E34D09DEB753AD418C1AD0F4FDFD049A955E5D78491C0B7A2F1575A008CCD727AB376DB6E695515B05BD412F5B8C2F4C77EE10DA48ABD53F5DD498927EE7B692BBBCDA2FB23A516C5B4533D73980B2A3B60E384ED200AE21B40D273651AD6060C13D97FD69AA13C5611A51B9085", 16);
ulong num2;
JPakePrimeOrderGroups.NIST_2048 = new JPakePrimeOrderGroup(bigInteger4, bigInteger5, bigInteger6, num2 != 0UL);
BigInteger bigInteger7 = new BigInteger("90066455B5CFC38F9CAA4A48B4281F292C260FEEF01FD61037E56258A7795A1C7AD46076982CE6BB956936C6AB4DCFE05E6784586940CA544B9B2140E1EB523F009D20A7E7880E4E5BFA690F1B9004A27811CD9904AF70420EEFD6EA11EF7DA129F58835FF56B89FAA637BC9AC2EFAAB903402229F491D8D3485261CD068699B6BA58A1DDBBEF6DB51E8FE34E8A78E542D7BA351C21EA8D8F1D29F5D5D15939487E27F4416B0CA632C59EFD1B1EB66511A5A0FBF615B766C5862D0BD8A3FE7A0E0DA0FB2FE1FCB19E8F9996A8EA0FCCDE538175238FC8B0EE6F29AF7F642773EBE8CD5402415A01451A840476B2FCEB0E388D30D4B376C37FE401C2A2C2F941DAD179C540C1C8CE030D460C4D983BE9AB0B20F69144C1AE13F9383EA1C08504FB0BF321503EFE43488310DD8DC77EC5B8349B8BFE97C2C560EA878DE87C11E3D597F1FEA742D73EEC7F37BE43949EF1A0D15C3F3E3FC0A8335617055AC91328EC22B50FC15B941D3D1624CD88BC25F3E941FDDC6200689581BFEC416B4B2CB73", 16);
BigInteger bigInteger8 = new BigInteger("CFA0478A54717B08CE64805B76E5B14249A77A4838469DF7F7DC987EFCCFB11D", 16);
BigInteger bigInteger9 = new BigInteger("5E5CBA992E0A680D885EB903AEA78E4A45A469103D448EDE3B7ACCC54D521E37F84A4BDD5B06B0970CC2D2BBB715F7B82846F9A0C393914C792E6A923E2117AB805276A975AADB5261D91673EA9AAFFEECBFA6183DFCB5D3B7332AA19275AFA1F8EC0B60FB6F66CC23AE4870791D5982AAD1AA9485FD8F4A60126FEB2CF05DB8A7F0F09B3397F3937F2E90B9E5B9C9B6EFEF642BC48351C46FB171B9BFA9EF17A961CE96C7E7A7CC3D3D03DFAD1078BA21DA425198F07D2481622BCE45969D9C4D6063D72AB7A0F08B2F49A7CC6AF335E08C4720E31476B67299E231F8BD90B39AC3AE3BE0C6B6CACEF8289A2E2873D58E51E029CAFBD55E6841489AB66B5B4B9BA6E2F784660896AFF387D92844CCB8B69475496DE19DA2E58259B090489AC8E62363CDF82CFD8EF2A427ABCD65750B506F56DDE3B988567A88126B914D7828E2B63A6D7ED0747EC59E0E0A23CE7D8A74C1D2C2A7AFB6A29799620F00E11C33787F7DED3B30E1A22D09F1FBDA1ABBBFBF25CAE05A13F812E34563F99410E73B", 16);
ulong num3;
JPakePrimeOrderGroups.NIST_3072 = new JPakePrimeOrderGroup(bigInteger7, bigInteger8, bigInteger9, num3 != 0UL);
}
// Token: 0x040079ED RID: 31213
[Token(Token = "0x40079ED")]
public static readonly JPakePrimeOrderGroup SUN_JCE_1024;
// Token: 0x040079EE RID: 31214
[Token(Token = "0x40079EE")]
public static readonly JPakePrimeOrderGroup NIST_2048;
// Token: 0x040079EF RID: 31215
[Token(Token = "0x40079EF")]
public static readonly JPakePrimeOrderGroup NIST_3072;
}
}
@@ -0,0 +1,135 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001DFC RID: 7676
[Token(Token = "0x2001DFC")]
public class JPakeRound1Payload
{
// Token: 0x0600C081 RID: 49281 RVA: 0x002B78C8 File Offset: 0x002B5AC8
[Token(Token = "0x600C081")]
[Address(RVA = "0x25A75D0", Offset = "0x25A65D0", VA = "0x1825A75D0")]
public JPakeRound1Payload(string participantId, BigInteger gx1, BigInteger gx2, BigInteger[] knowledgeProofForX1, BigInteger[] knowledgeProofForX2)
{
/*
An exception occurred when decompiling this method (0600C081)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeRound1Payload::.ctor(System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[],BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5E:
stloc:ArgumentNullException(var_3_68, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("participantId")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x17001DD8 RID: 7640
// (get) Token: 0x0600C082 RID: 49282 RVA: 0x002B7940 File Offset: 0x002B5B40
[Token(Token = "0x17001DD8")]
public virtual string ParticipantId
{
[Token(Token = "0x600C082")]
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "4")]
get
{
return this.participantId;
}
}
// Token: 0x17001DD9 RID: 7641
// (get) Token: 0x0600C083 RID: 49283 RVA: 0x002B7954 File Offset: 0x002B5B54
[Token(Token = "0x17001DD9")]
public virtual BigInteger Gx1
{
[Token(Token = "0x600C083")]
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0", Slot = "5")]
get
{
return this.gx1;
}
}
// Token: 0x17001DDA RID: 7642
// (get) Token: 0x0600C084 RID: 49284 RVA: 0x002B7968 File Offset: 0x002B5B68
[Token(Token = "0x17001DDA")]
public virtual BigInteger Gx2
{
[Token(Token = "0x600C084")]
[Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0", Slot = "6")]
get
{
return this.gx2;
}
}
// Token: 0x17001DDB RID: 7643
// (get) Token: 0x0600C085 RID: 49285 RVA: 0x002B797C File Offset: 0x002B5B7C
[Token(Token = "0x17001DDB")]
public virtual BigInteger[] KnowledgeProofForX1
{
[Token(Token = "0x600C085")]
[Address(RVA = "0x25A7870", Offset = "0x25A6870", VA = "0x1825A7870", Slot = "7")]
get
{
BigInteger[] array = new BigInteger[this.knowledgeProofForX1.Length];
BigInteger[] array2 = this.knowledgeProofForX1;
int length = array2.Length;
Array.Copy(array2, array, length);
return array;
}
}
// Token: 0x17001DDC RID: 7644
// (get) Token: 0x0600C086 RID: 49286 RVA: 0x002B79B8 File Offset: 0x002B5BB8
[Token(Token = "0x17001DDC")]
public virtual BigInteger[] KnowledgeProofForX2
{
[Token(Token = "0x600C086")]
[Address(RVA = "0x25A78E0", Offset = "0x25A68E0", VA = "0x1825A78E0", Slot = "8")]
get
{
BigInteger[] array = new BigInteger[this.knowledgeProofForX2.Length];
BigInteger[] array2 = this.knowledgeProofForX2;
int length = array2.Length;
Array.Copy(array2, array, length);
return array;
}
}
// Token: 0x040079F0 RID: 31216
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40079F0")]
private readonly string participantId;
// Token: 0x040079F1 RID: 31217
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40079F1")]
private readonly BigInteger gx1;
// Token: 0x040079F2 RID: 31218
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40079F2")]
private readonly BigInteger gx2;
// Token: 0x040079F3 RID: 31219
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40079F3")]
private readonly BigInteger[] knowledgeProofForX1;
// Token: 0x040079F4 RID: 31220
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40079F4")]
private readonly BigInteger[] knowledgeProofForX2;
}
}
@@ -0,0 +1,95 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001DFD RID: 7677
[Token(Token = "0x2001DFD")]
public class JPakeRound2Payload
{
// Token: 0x0600C087 RID: 49287 RVA: 0x002B79F4 File Offset: 0x002B5BF4
[Token(Token = "0x600C087")]
[Address(RVA = "0x25A7950", Offset = "0x25A6950", VA = "0x1825A7950")]
public JPakeRound2Payload(string participantId, BigInteger a, BigInteger[] knowledgeProofForX2s)
{
/*
An exception occurred when decompiling this method (0600C087)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeRound2Payload::.ctor(System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4D:
stloc:ArgumentNullException(var_3_57, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("participantId")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x17001DDD RID: 7645
// (get) Token: 0x0600C088 RID: 49288 RVA: 0x002B7A58 File Offset: 0x002B5C58
[Token(Token = "0x17001DDD")]
public virtual string ParticipantId
{
[Token(Token = "0x600C088")]
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "4")]
get
{
return this.participantId;
}
}
// Token: 0x17001DDE RID: 7646
// (get) Token: 0x0600C089 RID: 49289 RVA: 0x002B7A6C File Offset: 0x002B5C6C
[Token(Token = "0x17001DDE")]
public virtual BigInteger A
{
[Token(Token = "0x600C089")]
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0", Slot = "5")]
get
{
return this.a;
}
}
// Token: 0x17001DDF RID: 7647
// (get) Token: 0x0600C08A RID: 49290 RVA: 0x002B7A80 File Offset: 0x002B5C80
[Token(Token = "0x17001DDF")]
public virtual BigInteger[] KnowledgeProofForX2s
{
[Token(Token = "0x600C08A")]
[Address(RVA = "0x25A7B00", Offset = "0x25A6B00", VA = "0x1825A7B00", Slot = "6")]
get
{
BigInteger[] array = new BigInteger[this.knowledgeProofForX2s.Length];
BigInteger[] array2 = this.knowledgeProofForX2s;
int length = array2.Length;
Array.Copy(array2, array, length);
return array;
}
}
// Token: 0x040079F5 RID: 31221
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40079F5")]
private readonly string participantId;
// Token: 0x040079F6 RID: 31222
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40079F6")]
private readonly BigInteger a;
// Token: 0x040079F7 RID: 31223
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40079F7")]
private readonly BigInteger[] knowledgeProofForX2s;
}
}
@@ -0,0 +1,56 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001DFE RID: 7678
[Token(Token = "0x2001DFE")]
public class JPakeRound3Payload
{
// Token: 0x0600C08B RID: 49291 RVA: 0x002B7ABC File Offset: 0x002B5CBC
[Token(Token = "0x600C08B")]
[Address(RVA = "0x417DD0", Offset = "0x416DD0", VA = "0x180417DD0")]
public JPakeRound3Payload(string participantId, BigInteger magTag)
{
this.participantId = participantId;
this.macTag = magTag;
}
// Token: 0x17001DE0 RID: 7648
// (get) Token: 0x0600C08C RID: 49292 RVA: 0x002B7AE0 File Offset: 0x002B5CE0
[Token(Token = "0x17001DE0")]
public virtual string ParticipantId
{
[Token(Token = "0x600C08C")]
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "4")]
get
{
return this.participantId;
}
}
// Token: 0x17001DE1 RID: 7649
// (get) Token: 0x0600C08D RID: 49293 RVA: 0x002B7AF4 File Offset: 0x002B5CF4
[Token(Token = "0x17001DE1")]
public virtual BigInteger MacTag
{
[Token(Token = "0x600C08D")]
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0", Slot = "5")]
get
{
return this.macTag;
}
}
// Token: 0x040079F8 RID: 31224
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40079F8")]
private readonly string participantId;
// Token: 0x040079F9 RID: 31225
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40079F9")]
private readonly BigInteger macTag;
}
}
@@ -0,0 +1,411 @@
using System;
using System.Text;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001DFF RID: 7679
[Token(Token = "0x2001DFF")]
public abstract class JPakeUtilities
{
// Token: 0x0600C08E RID: 49294 RVA: 0x002B7B08 File Offset: 0x002B5D08
[Token(Token = "0x600C08E")]
[Address(RVA = "0x25A8780", Offset = "0x25A7780", VA = "0x1825A8780")]
public static BigInteger GenerateX1(BigInteger q, SecureRandom random)
{
BigInteger zero = JPakeUtilities.Zero;
BigInteger one = JPakeUtilities.One;
BigInteger bigInteger = q.Subtract(one);
return BigIntegers.CreateRandomInRange(zero, bigInteger, random);
}
// Token: 0x0600C08F RID: 49295 RVA: 0x002B7B38 File Offset: 0x002B5D38
[Token(Token = "0x600C08F")]
[Address(RVA = "0x25A8820", Offset = "0x25A7820", VA = "0x1825A8820")]
public static BigInteger GenerateX2(BigInteger q, SecureRandom random)
{
BigInteger one = JPakeUtilities.One;
BigInteger bigInteger = q.Subtract(one);
return BigIntegers.CreateRandomInRange(one, bigInteger, random);
}
// Token: 0x0600C090 RID: 49296 RVA: 0x002B7B64 File Offset: 0x002B5D64
[Token(Token = "0x600C090")]
[Address(RVA = "0x25A84C0", Offset = "0x25A74C0", VA = "0x1825A84C0")]
public static BigInteger CalculateS(char[] password)
{
Encoding utf = Encoding.UTF8;
BigInteger bigInteger;
return bigInteger;
}
// Token: 0x0600C091 RID: 49297 RVA: 0x002B7B80 File Offset: 0x002B5D80
[Token(Token = "0x600C091")]
[Address(RVA = "0x257E6F0", Offset = "0x257D6F0", VA = "0x18257E6F0")]
public static BigInteger CalculateGx(BigInteger p, BigInteger g, BigInteger x)
{
return g.ModPow(x, p);
}
// Token: 0x0600C092 RID: 49298 RVA: 0x002B7B9C File Offset: 0x002B5D9C
[Token(Token = "0x600C092")]
[Address(RVA = "0x25A7BA0", Offset = "0x25A6BA0", VA = "0x1825A7BA0")]
public static BigInteger CalculateGA(BigInteger p, BigInteger gx1, BigInteger gx3, BigInteger gx4)
{
return gx1.Multiply(gx3).Multiply(gx4).Mod(p);
}
// Token: 0x0600C093 RID: 49299 RVA: 0x002B7BC4 File Offset: 0x002B5DC4
[Token(Token = "0x600C093")]
[Address(RVA = "0x25A8540", Offset = "0x25A7540", VA = "0x1825A8540")]
public static BigInteger CalculateX2s(BigInteger q, BigInteger x2, BigInteger s)
{
return x2.Multiply(s).Mod(q);
}
// Token: 0x0600C094 RID: 49300 RVA: 0x002B7BE4 File Offset: 0x002B5DE4
[Token(Token = "0x600C094")]
[Address(RVA = "0x25A7B70", Offset = "0x25A6B70", VA = "0x1825A7B70")]
public static BigInteger CalculateA(BigInteger p, BigInteger q, BigInteger gA, BigInteger x2s)
{
return gA.ModPow(x2s, p);
}
// Token: 0x0600C095 RID: 49301 RVA: 0x002B7C00 File Offset: 0x002B5E00
[Token(Token = "0x600C095")]
[Address(RVA = "0x25A8580", Offset = "0x25A7580", VA = "0x1825A8580")]
public static BigInteger[] CalculateZeroKnowledgeProof(BigInteger p, BigInteger q, BigInteger g, BigInteger gx, BigInteger x, string participantId, IDigest digest, SecureRandom random)
{
BigInteger zero = JPakeUtilities.Zero;
BigInteger one = JPakeUtilities.One;
BigInteger bigInteger = q.Subtract(one);
BigInteger bigInteger3;
BigInteger bigInteger2 = g.ModPow(bigInteger3, p);
BigInteger[] array = new BigInteger[2];
if (bigInteger2 != 0)
{
}
array[0] = bigInteger2;
BigInteger bigInteger5;
BigInteger bigInteger4 = bigInteger3.Subtract(bigInteger5).Mod(q);
if (bigInteger4 != 0)
{
}
array[1] = bigInteger4;
return array;
}
// Token: 0x0600C096 RID: 49302 RVA: 0x002B7C6C File Offset: 0x002B5E6C
[Token(Token = "0x600C096")]
[Address(RVA = "0x25A7C00", Offset = "0x25A6C00", VA = "0x1825A7C00")]
private static BigInteger CalculateHashForZeroKnowledgeProof(BigInteger g, BigInteger gr, BigInteger gx, string participantId, IDigest digest)
{
byte[] array = BigIntegers.AsUnsignedByteArray(g);
byte[] array2 = BigIntegers.AsUnsignedByteArray(gr);
byte[] array3 = BigIntegers.AsUnsignedByteArray(gx);
Encoding utf = Encoding.UTF8;
byte[] array4;
return new BigInteger(array4);
}
// Token: 0x0600C097 RID: 49303 RVA: 0x002B7CA4 File Offset: 0x002B5EA4
[Token(Token = "0x600C097")]
[Address(RVA = "0x25A8EB0", Offset = "0x25A7EB0", VA = "0x1825A8EB0")]
public static void ValidateGx4(BigInteger gx4)
{
}
// Token: 0x0600C098 RID: 49304 RVA: 0x002B7CBC File Offset: 0x002B5EBC
[Token(Token = "0x600C098")]
[Address(RVA = "0x25A8E00", Offset = "0x25A7E00", VA = "0x1825A8E00")]
public static void ValidateGa(BigInteger ga)
{
}
// Token: 0x0600C099 RID: 49305 RVA: 0x002B7CD4 File Offset: 0x002B5ED4
[Token(Token = "0x600C099")]
[Address(RVA = "0x25A9310", Offset = "0x25A8310", VA = "0x1825A9310")]
public static void ValidateZeroKnowledgeProof(BigInteger p, BigInteger q, BigInteger g, BigInteger gx, BigInteger[] zeroKnowledgeProof, string participantId, IDigest digest)
{
/*
An exception occurred when decompiling this method (0600C099)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateZeroKnowledgeProof(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[],System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_69:
stloc:CryptoException(var_7_73, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Zero-knowledge proof validation failed")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600C09A RID: 49306 RVA: 0x002B7D58 File Offset: 0x002B5F58
[Token(Token = "0x600C09A")]
[Address(RVA = "0x25A7E60", Offset = "0x25A6E60", VA = "0x1825A7E60")]
public static BigInteger CalculateKeyingMaterial(BigInteger p, BigInteger q, BigInteger gx4, BigInteger x2, BigInteger s, BigInteger B)
{
BigInteger bigInteger2;
BigInteger bigInteger = bigInteger2.Negate().Mod(q);
BigInteger bigInteger3 = gx4.ModPow(bigInteger, p);
BigInteger bigInteger4;
return bigInteger4.ModPow(x2, p);
}
// Token: 0x0600C09B RID: 49307 RVA: 0x002B7D8C File Offset: 0x002B5F8C
[Token(Token = "0x600C09B")]
[Address(RVA = "0x25A90F0", Offset = "0x25A80F0", VA = "0x1825A90F0")]
public static void ValidateParticipantIdsDiffer(string participantId1, string participantId2)
{
/*
An exception occurred when decompiling this method (0600C09B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateParticipantIdsDiffer(System.String,System.String)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_0B:
stloc:CryptoException(var_0_20, newobj:CryptoException(CryptoException::.ctor, call:string(string::Concat, ldstr:string("Both participants are using the same participantId ("), ldloc:string(participantId1), ldstr:string("). This is not allowed. Each participant must use a unique participantId."))))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600C09C RID: 49308 RVA: 0x002B7DBC File Offset: 0x002B5FBC
[Token(Token = "0x600C09C")]
[Address(RVA = "0x25A9190", Offset = "0x25A8190", VA = "0x1825A9190")]
public static void ValidateParticipantIdsEqual(string expectedParticipantId, string actualParticipantId)
{
if (expectedParticipantId.Equals(actualParticipantId))
{
return;
}
string[] array = new string[5];
throw new NullReferenceException();
}
// Token: 0x0600C09D RID: 49309 RVA: 0x002B7E48 File Offset: 0x002B6048
[Token(Token = "0x600C09D")]
[Address(RVA = "0x25A9080", Offset = "0x25A8080", VA = "0x1825A9080")]
public static void ValidateNotNull(object obj, string description)
{
/*
An exception occurred when decompiling this method (0600C09D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateNotNull(System.Object,System.String)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_05:
stloc:ArgumentNullException(var_0_0B, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldloc:string(description)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600C09E RID: 49310 RVA: 0x002B7E60 File Offset: 0x002B6060
[Token(Token = "0x600C09E")]
[Address(RVA = "0x25A8090", Offset = "0x25A7090", VA = "0x1825A8090")]
public static BigInteger CalculateMacTag(string participantId, string partnerParticipantId, BigInteger gx1, BigInteger gx2, BigInteger gx3, BigInteger gx4, BigInteger keyingMaterial, IDigest digest)
{
Encoding utf = Encoding.UTF8;
byte[] array;
KeyParameter keyParameter = new KeyParameter(array);
HMac hmac;
IDigest underlyingDigest = hmac.GetUnderlyingDigest();
int num = 0;
Arrays.Fill(array, (byte)num);
JPakeUtilities.UpdateMac(hmac, "KC_1_U");
JPakeUtilities.UpdateMac(hmac, participantId);
JPakeUtilities.UpdateMac(hmac, partnerParticipantId);
byte[] array2 = BigIntegers.AsUnsignedByteArray(gx1);
JPakeUtilities.UpdateMac(hmac, array2);
byte[] array3 = BigIntegers.AsUnsignedByteArray(gx2);
JPakeUtilities.UpdateMac(hmac, array3);
byte[] array4;
JPakeUtilities.UpdateMac(hmac, array4);
byte[] array5;
JPakeUtilities.UpdateMac(hmac, array5);
return new BigInteger(MacUtilities.DoFinal(hmac));
}
// Token: 0x0600C09F RID: 49311 RVA: 0x002B7EF8 File Offset: 0x002B60F8
[Token(Token = "0x600C09F")]
[Address(RVA = "0x25A7F20", Offset = "0x25A6F20", VA = "0x1825A7F20")]
private static byte[] CalculateMacKey(BigInteger keyingMaterial, IDigest digest)
{
byte[] array = BigIntegers.AsUnsignedByteArray(keyingMaterial);
JPakeUtilities.UpdateDigest(digest, array);
Encoding utf = Encoding.UTF8;
return DigestUtilities.DoFinal(digest);
}
// Token: 0x0600C0A0 RID: 49312 RVA: 0x002B7F28 File Offset: 0x002B6128
[Token(Token = "0x600C0A0")]
[Address(RVA = "0x25A8F60", Offset = "0x25A7F60", VA = "0x1825A8F60")]
public static void ValidateMacTag(string participantId, string partnerParticipantId, BigInteger gx1, BigInteger gx2, BigInteger gx3, BigInteger gx4, BigInteger keyingMaterial, IDigest digest, BigInteger partnerMacTag)
{
/*
An exception occurred when decompiling this method (0600C0A0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateMacTag(System.String,System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_05:
stloc:CryptoException(var_2_0F, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Partner MacTag validation failed. Therefore, the password, MAC, or digest algorithm of each participant does not match.")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600C0A1 RID: 49313 RVA: 0x002B7F44 File Offset: 0x002B6144
[Token(Token = "0x600C0A1")]
[Address(RVA = "0x25A8AC0", Offset = "0x25A7AC0", VA = "0x1825A8AC0")]
private static void UpdateDigest(IDigest digest, BigInteger bigInteger)
{
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
JPakeUtilities.UpdateDigest(digest, array);
}
// Token: 0x0600C0A2 RID: 49314 RVA: 0x002B7F60 File Offset: 0x002B6160
[Token(Token = "0x600C0A2")]
[Address(RVA = "0x25A8BD0", Offset = "0x25A7BD0", VA = "0x1825A8BD0")]
private static void UpdateDigest(IDigest digest, string str)
{
Encoding utf = Encoding.UTF8;
}
// Token: 0x0600C0A3 RID: 49315 RVA: 0x002B7F7C File Offset: 0x002B617C
[Token(Token = "0x600C0A3")]
[Address(RVA = "0x25A8B30", Offset = "0x25A7B30", VA = "0x1825A8B30")]
private static void UpdateDigest(IDigest digest, byte[] bytes)
{
int length = bytes.Length;
int num = 0;
Arrays.Fill(bytes, (byte)num);
}
// Token: 0x0600C0A4 RID: 49316 RVA: 0x002B7FA0 File Offset: 0x002B61A0
[Token(Token = "0x600C0A4")]
[Address(RVA = "0x25A88D0", Offset = "0x25A78D0", VA = "0x1825A88D0")]
private static void UpdateDigestIncludingSize(IDigest digest, BigInteger bigInteger)
{
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
JPakeUtilities.UpdateDigestIncludingSize(digest, array);
}
// Token: 0x0600C0A5 RID: 49317 RVA: 0x002B7FBC File Offset: 0x002B61BC
[Token(Token = "0x600C0A5")]
[Address(RVA = "0x25A8A30", Offset = "0x25A7A30", VA = "0x1825A8A30")]
private static void UpdateDigestIncludingSize(IDigest digest, string str)
{
Encoding utf = Encoding.UTF8;
}
// Token: 0x0600C0A6 RID: 49318 RVA: 0x002B7FD8 File Offset: 0x002B61D8
[Token(Token = "0x600C0A6")]
[Address(RVA = "0x25A8940", Offset = "0x25A7940", VA = "0x1825A8940")]
private static void UpdateDigestIncludingSize(IDigest digest, byte[] bytes)
{
byte[] array = Pack.UInt32_To_BE((uint)bytes.Length);
int length = bytes.Length;
int num = 0;
Arrays.Fill(bytes, (byte)num);
}
// Token: 0x0600C0A7 RID: 49319 RVA: 0x002B800C File Offset: 0x002B620C
[Token(Token = "0x600C0A7")]
[Address(RVA = "0x25A8C60", Offset = "0x25A7C60", VA = "0x1825A8C60")]
private static void UpdateMac(IMac mac, BigInteger bigInteger)
{
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
JPakeUtilities.UpdateMac(mac, array);
}
// Token: 0x0600C0A8 RID: 49320 RVA: 0x002B8028 File Offset: 0x002B6228
[Token(Token = "0x600C0A8")]
[Address(RVA = "0x25A8D70", Offset = "0x25A7D70", VA = "0x1825A8D70")]
private static void UpdateMac(IMac mac, string str)
{
Encoding utf = Encoding.UTF8;
}
// Token: 0x0600C0A9 RID: 49321 RVA: 0x002B8044 File Offset: 0x002B6244
[Token(Token = "0x600C0A9")]
[Address(RVA = "0x25A8CD0", Offset = "0x25A7CD0", VA = "0x1825A8CD0")]
private static void UpdateMac(IMac mac, byte[] bytes)
{
int length = bytes.Length;
int num = 0;
Arrays.Fill(bytes, (byte)num);
}
// Token: 0x0600C0AA RID: 49322 RVA: 0x002B8068 File Offset: 0x002B6268
[Token(Token = "0x600C0AA")]
[Address(RVA = "0x25A88C0", Offset = "0x25A78C0", VA = "0x1825A88C0")]
private static byte[] IntToByteArray(int value)
{
return Pack.UInt32_To_BE((uint)value);
}
// Token: 0x0600C0AB RID: 49323 RVA: 0x002B807C File Offset: 0x002B627C
[Token(Token = "0x600C0AB")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected JPakeUtilities()
{
}
// Token: 0x040079FA RID: 31226
[Token(Token = "0x40079FA")]
public static readonly BigInteger Zero = BigInteger.Zero;
// Token: 0x040079FB RID: 31227
[Token(Token = "0x40079FB")]
public static readonly BigInteger One = BigInteger.One;
}
}
@@ -0,0 +1,145 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf
{
// Token: 0x02001DF5 RID: 7669
[Token(Token = "0x2001DF5")]
public class ConcatenationKdfGenerator : IDerivationFunction
{
// Token: 0x0600C05C RID: 49244 RVA: 0x002B68D4 File Offset: 0x002B4AD4
[Token(Token = "0x600C05C")]
[Address(RVA = "0x259D620", Offset = "0x259C620", VA = "0x18259D620")]
public ConcatenationKdfGenerator(IDigest digest)
{
this.mDigest = digest;
}
// Token: 0x0600C05D RID: 49245 RVA: 0x002B68F4 File Offset: 0x002B4AF4
[Token(Token = "0x600C05D")]
[Address(RVA = "0x259D520", Offset = "0x259C520", VA = "0x18259D520", Slot = "7")]
public virtual void Init(IDerivationParameters param)
{
/*
An exception occurred when decompiling this method (0600C05D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf.ConcatenationKdfGenerator::Init(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDerivationParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1F:
stloc:ArgumentException(var_2_29, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("KDF parameters required for ConcatenationKdfGenerator")))
}
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: 0x17001DCF RID: 7631
// (get) Token: 0x0600C05E RID: 49246 RVA: 0x002B692C File Offset: 0x002B4B2C
[Token(Token = "0x17001DCF")]
public virtual IDigest Digest
{
[Token(Token = "0x600C05E")]
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "8")]
get
{
return this.mDigest;
}
}
// Token: 0x0600C05F RID: 49247 RVA: 0x002B6940 File Offset: 0x002B4B40
[Token(Token = "0x600C05F")]
[Address(RVA = "0x259D030", Offset = "0x259C030", VA = "0x18259D030", Slot = "9")]
public virtual int GenerateBytes(byte[] outBytes, int outOff, int len)
{
int num = outBytes.Length;
num -= len;
byte[] array = new byte[this.mHLen];
byte[] array2 = new byte[4];
IDigest digest = this.mDigest;
int num2 = 0;
if (len > this.mHLen)
{
int num3 = 0;
Pack.UInt32_To_BE((uint)1, array2);
IDigest digest2 = this.mDigest;
int num4 = 0;
if (num4 < num3)
{
num4 += num4;
num4++;
}
int num5 = 0;
byte[] array3 = this.mShared;
IDigest digest3 = this.mDigest;
int num6 = 0;
if (num6 < num5)
{
num6 += num6;
num6++;
}
int num7 = 0;
byte[] array4 = this.mOtherInfo;
IDigest digest4 = this.mDigest;
int num8 = 0;
if (num8 < num7)
{
num8 += num8;
num8++;
}
int num9 = 0;
IDigest digest5 = this.mDigest;
int num10 = 0;
if (num10 < num9)
{
num10 += num10;
num10++;
}
int num11 = this.mHLen;
}
if (num2 < len)
{
Pack.UInt32_To_BE((uint)1, array2);
IDigest digest6 = this.mDigest;
int length = array2.Length;
byte[] array5 = this.mShared;
IDigest digest7 = this.mDigest;
int length2 = array5.Length;
byte[] array6 = this.mOtherInfo;
IDigest digest8 = this.mDigest;
int num12 = array6.Length;
IDigest digest9 = this.mDigest;
num12 = len - num2;
}
return len;
}
// Token: 0x040079C1 RID: 31169
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40079C1")]
private readonly IDigest mDigest;
// Token: 0x040079C2 RID: 31170
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40079C2")]
private byte[] mShared;
// Token: 0x040079C3 RID: 31171
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40079C3")]
private byte[] mOtherInfo;
// Token: 0x040079C4 RID: 31172
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40079C4")]
private int mHLen;
}
}
@@ -0,0 +1,95 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf
{
// Token: 0x02001DF6 RID: 7670
[Token(Token = "0x2001DF6")]
public class DHKdfParameters : IDerivationParameters
{
// Token: 0x0600C060 RID: 49248 RVA: 0x002B6AF0 File Offset: 0x002B4CF0
[Token(Token = "0x600C060")]
[Address(RVA = "0x259D7E0", Offset = "0x259C7E0", VA = "0x18259D7E0")]
public DHKdfParameters(DerObjectIdentifier algorithm, int keySize, byte[] z)
{
this.algorithm = algorithm;
this.z = z;
this.keySize = keySize;
this.extraInfo = (ulong)0L;
}
// Token: 0x0600C061 RID: 49249 RVA: 0x002B6B24 File Offset: 0x002B4D24
[Token(Token = "0x600C061")]
[Address(RVA = "0x7D04E0", Offset = "0x7CF4E0", VA = "0x1807D04E0")]
public DHKdfParameters(DerObjectIdentifier algorithm, int keySize, byte[] z, byte[] extraInfo)
{
this.algorithm = algorithm;
this.z = z;
this.extraInfo = 0;
this.keySize = keySize;
}
// Token: 0x17001DD0 RID: 7632
// (get) Token: 0x0600C062 RID: 49250 RVA: 0x002B6B54 File Offset: 0x002B4D54
[Token(Token = "0x17001DD0")]
public DerObjectIdentifier Algorithm
{
[Token(Token = "0x600C062")]
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530")]
get
{
return this.algorithm;
}
}
// Token: 0x17001DD1 RID: 7633
// (get) Token: 0x0600C063 RID: 49251 RVA: 0x002B6B68 File Offset: 0x002B4D68
[Token(Token = "0x17001DD1")]
public int KeySize
{
[Token(Token = "0x600C063")]
[Address(RVA = "0x411540", Offset = "0x410540", VA = "0x180411540")]
get
{
return this.keySize;
}
}
// Token: 0x0600C064 RID: 49252 RVA: 0x002B6B7C File Offset: 0x002B4D7C
[Token(Token = "0x600C064")]
[Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0")]
public byte[] GetZ()
{
return this.z;
}
// Token: 0x0600C065 RID: 49253 RVA: 0x002B6B90 File Offset: 0x002B4D90
[Token(Token = "0x600C065")]
[Address(RVA = "0x4157D0", Offset = "0x4147D0", VA = "0x1804157D0")]
public byte[] GetExtraInfo()
{
return this.extraInfo;
}
// Token: 0x040079C5 RID: 31173
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40079C5")]
private readonly DerObjectIdentifier algorithm;
// Token: 0x040079C6 RID: 31174
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40079C6")]
private readonly int keySize;
// Token: 0x040079C7 RID: 31175
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40079C7")]
private readonly byte[] z;
// Token: 0x040079C8 RID: 31176
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40079C8")]
private readonly byte[] extraInfo;
}
}
@@ -0,0 +1,137 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf
{
// Token: 0x02001DF7 RID: 7671
[Token(Token = "0x2001DF7")]
public class DHKekGenerator : IDerivationFunction
{
// Token: 0x0600C066 RID: 49254 RVA: 0x002B6BA4 File Offset: 0x002B4DA4
[Token(Token = "0x600C066")]
[Address(RVA = "0x493D90", Offset = "0x492D90", VA = "0x180493D90")]
public DHKekGenerator(IDigest digest)
{
this.digest = digest;
}
// Token: 0x0600C067 RID: 49255 RVA: 0x002B6BC0 File Offset: 0x002B4DC0
[Token(Token = "0x600C067")]
[Address(RVA = "0x259DE00", Offset = "0x259CE00", VA = "0x18259DE00", Slot = "7")]
public virtual void Init(IDerivationParameters param)
{
int num;
do
{
num = 0;
}
while (param == 0);
this.algorithm = num;
this.keySize = num;
this.z = num;
this.partyAInfo = num;
}
// Token: 0x17001DD2 RID: 7634
// (get) Token: 0x0600C068 RID: 49256 RVA: 0x002B6BF8 File Offset: 0x002B4DF8
[Token(Token = "0x17001DD2")]
public virtual IDigest Digest
{
[Token(Token = "0x600C068")]
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "8")]
get
{
return this.digest;
}
}
// Token: 0x0600C069 RID: 49257 RVA: 0x002B6C0C File Offset: 0x002B4E0C
[Token(Token = "0x600C069")]
[Address(RVA = "0x259D830", Offset = "0x259C830", VA = "0x18259D830", Slot = "9")]
public virtual int GenerateBytes(byte[] outBytes, int outOff, int len)
{
int num = outBytes.Length;
num -= len;
IDigest digest = this.digest;
IDigest digest2 = this.digest;
int num2 = len - 1;
num2 += num;
byte[] array = new byte[num2];
if (num2 <= 0)
{
IDigest digest3 = this.digest;
return len;
}
int num3 = 0;
byte[] array2 = this.z;
IDigest digest4 = this.digest;
if (num3 < digest2)
{
num3 += num3;
num3++;
}
Asn1Encodable[] array3 = new Asn1Encodable[2];
DerObjectIdentifier derObjectIdentifier = this.algorithm;
if (derObjectIdentifier != 0)
{
}
array3[0] = derObjectIdentifier;
uint num4;
DerOctetString derOctetString = new DerOctetString(Pack.UInt32_To_BE(num4));
if (derOctetString != 0)
{
}
array3[1] = derOctetString;
DerSequence derSequence = new DerSequence(array3);
Asn1Encodable[] array4 = new Asn1Encodable[1];
if (derSequence != 0)
{
}
array4[0] = derSequence;
Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(array4);
if (this.partyAInfo != (ulong)0L)
{
Asn1Encodable[] array5 = new Asn1Encodable[1];
DerOctetString derOctetString2 = new DerOctetString(this.partyAInfo);
ulong num5;
int num6;
DerTaggedObject derTaggedObject = new DerTaggedObject(num5 != 0UL, num6, derOctetString2);
num6 = 0;
throw new ArrayTypeMismatchException();
}
Asn1Encodable[] array6 = new Asn1Encodable[1];
DerOctetString derOctetString3 = new DerOctetString(Pack.UInt32_To_BE((uint)this.keySize));
ulong num7;
uint num8;
DerTaggedObject derTaggedObject2 = new DerTaggedObject(num7 != 0UL, (int)num8, derOctetString3);
throw new ArrayTypeMismatchException();
}
// Token: 0x040079C9 RID: 31177
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40079C9")]
private readonly IDigest digest;
// Token: 0x040079CA RID: 31178
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40079CA")]
private DerObjectIdentifier algorithm;
// Token: 0x040079CB RID: 31179
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40079CB")]
private int keySize;
// Token: 0x040079CC RID: 31180
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40079CC")]
private byte[] z;
// Token: 0x040079CD RID: 31181
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40079CD")]
private byte[] partyAInfo;
}
}
@@ -0,0 +1,111 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf
{
// Token: 0x02001DF8 RID: 7672
[Token(Token = "0x2001DF8")]
public class ECDHKekGenerator : IDerivationFunction
{
// Token: 0x0600C06A RID: 49258 RVA: 0x002B6DB0 File Offset: 0x002B4FB0
[Token(Token = "0x600C06A")]
[Address(RVA = "0x259FFA0", Offset = "0x259EFA0", VA = "0x18259FFA0")]
public ECDHKekGenerator(IDigest digest)
{
Kdf2BytesGenerator kdf2BytesGenerator = new Kdf2BytesGenerator(digest);
this.kdf = kdf2BytesGenerator;
}
// Token: 0x0600C06B RID: 49259 RVA: 0x002B6DD4 File Offset: 0x002B4FD4
[Token(Token = "0x600C06B")]
[Address(RVA = "0x259FF00", Offset = "0x259EF00", VA = "0x18259FF00", Slot = "7")]
public virtual void Init(IDerivationParameters param)
{
int num;
do
{
num = 0;
}
while (param == 0);
this.algorithm = num;
this.keySize = num;
this.z = num;
}
// Token: 0x17001DD3 RID: 7635
// (get) Token: 0x0600C06C RID: 49260 RVA: 0x002B6E04 File Offset: 0x002B5004
[Token(Token = "0x17001DD3")]
public virtual IDigest Digest
{
[Token(Token = "0x600C06C")]
[Address(RVA = "0x25A0010", Offset = "0x259F010", VA = "0x1825A0010", Slot = "8")]
get
{
IDerivationFunction derivationFunction = this.kdf;
throw new NullReferenceException();
}
}
// Token: 0x0600C06D RID: 49261 RVA: 0x002B6E20 File Offset: 0x002B5020
[Token(Token = "0x600C06D")]
[Address(RVA = "0x259FC30", Offset = "0x259EC30", VA = "0x18259FC30", Slot = "9")]
public virtual int GenerateBytes(byte[] outBytes, int outOff, int len)
{
Asn1Encodable[] array = new Asn1Encodable[2];
DerObjectIdentifier derObjectIdentifier = this.algorithm;
DerNull instance = DerNull.Instance;
AlgorithmIdentifier algorithmIdentifier = new AlgorithmIdentifier(derObjectIdentifier, instance);
if (algorithmIdentifier != 0)
{
}
array[0] = algorithmIdentifier;
DerOctetString derOctetString = new DerOctetString(Pack.UInt32_To_BE((uint)this.keySize));
ulong num;
DerTaggedObject derTaggedObject = new DerTaggedObject(num != 0UL, 2, derOctetString);
int num2 = 0;
if (derTaggedObject != 0)
{
}
array[1] = derTaggedObject;
DerSequence derSequence = new DerSequence(array);
IDerivationFunction derivationFunction = this.kdf;
byte[] array2 = this.z;
byte[] derEncoded = derSequence.GetDerEncoded();
KdfParameters kdfParameters = new KdfParameters(array2, derEncoded);
IDerivationFunction derivationFunction2 = this.kdf;
if (num2 < typeof(IDerivationFunction).TypeHandle)
{
num2 += num2;
num2++;
}
IDigest digest = derivationFunction2.Digest;
derivationFunction2 += derivationFunction2;
throw new NullReferenceException();
}
// Token: 0x040079CE RID: 31182
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40079CE")]
private readonly IDerivationFunction kdf;
// Token: 0x040079CF RID: 31183
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40079CF")]
private DerObjectIdentifier algorithm;
// Token: 0x040079D0 RID: 31184
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40079D0")]
private int keySize;
// Token: 0x040079D1 RID: 31185
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40079D1")]
private byte[] z;
}
}
@@ -0,0 +1,338 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
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.Math.EC;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Field;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001DED RID: 7661
[Token(Token = "0x2001DED")]
public class SM2KeyExchange
{
// Token: 0x0600C01E RID: 49182 RVA: 0x002B55D8 File Offset: 0x002B37D8
[Token(Token = "0x600C01E")]
[Address(RVA = "0x25AF290", Offset = "0x25AE290", VA = "0x1825AF290")]
public SM2KeyExchange()
{
SM3Digest sm3Digest = new SM3Digest();
base..ctor();
this.mDigest = sm3Digest;
}
// Token: 0x0600C01F RID: 49183 RVA: 0x002B55F8 File Offset: 0x002B37F8
[Token(Token = "0x600C01F")]
[Address(RVA = "0x493D90", Offset = "0x492D90", VA = "0x180493D90")]
public SM2KeyExchange(IDigest digest)
{
this.mDigest = digest;
}
// Token: 0x0600C020 RID: 49184 RVA: 0x002B5614 File Offset: 0x002B3814
[Token(Token = "0x600C020")]
[Address(RVA = "0x25AE8C0", Offset = "0x25AD8C0", VA = "0x1825AE8C0", Slot = "4")]
public virtual void Init(ICipherParameters privParam)
{
while (privParam != 0)
{
if ((privParam != 0 || privParam != 0) && privParam != 0 && privParam != 0)
{
if (privParam == 0)
{
}
if (privParam != 0 && privParam != 0 && privParam != 0)
{
break;
}
}
}
int num = 0;
byte[] array = new byte[0];
this.mUserID = array;
string text = num.ToString();
this.mInitiator = text != null;
int num2;
this.mStaticKey = num2;
TypeCode typeCode = num.GetTypeCode();
this.mEphemeralKey = typeCode;
ECDomainParameters parameters = this.mStaticKey.parameters;
this.mECParams = parameters;
string text2;
this.mStaticPubPoint = text2;
ECDomainParameters ecdomainParameters = this.mECParams;
bool flag;
this.mEphemeralPubPoint = flag;
string text3 = ecdomainParameters.curve.ToString();
this.mW = text3;
}
// Token: 0x0600C021 RID: 49185 RVA: 0x002B56DC File Offset: 0x002B38DC
[Token(Token = "0x600C021")]
[Address(RVA = "0x25AE100", Offset = "0x25AD100", VA = "0x1825AE100", Slot = "5")]
public virtual byte[] CalculateKey(int kLen, ICipherParameters pubParam)
{
while (pubParam != 0)
{
if ((pubParam != 0 || pubParam != 0) && pubParam != 0 && pubParam != 0)
{
if (pubParam == 0)
{
}
if (pubParam != 0 && pubParam != 0 && pubParam != 0)
{
break;
}
}
}
int num = 0;
byte[] array = new byte[0];
ECPoint ecpoint = this.mStaticPubPoint;
byte[] array2 = this.mUserID;
IDigest digest = this.mDigest;
byte[] z = this.GetZ(digest, array2, ecpoint);
IDigest digest2 = this.mDigest;
string text = num.ToString();
byte[] z2 = this.GetZ(digest2, array, ecpoint);
if (!this.mInitiator)
{
}
throw new NullReferenceException();
}
// Token: 0x0600C022 RID: 49186 RVA: 0x002B577C File Offset: 0x002B397C
[Token(Token = "0x600C022")]
[Address(RVA = "0x25ADA40", Offset = "0x25ACA40", VA = "0x1825ADA40", Slot = "6")]
public virtual byte[][] CalculateKeyWithConfirmation(int kLen, byte[] confirmationTag, ICipherParameters pubParam)
{
/*
An exception occurred when decompiling this method (0600C022)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[][] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.SM2KeyExchange::CalculateKeyWithConfirmation(System.Int32,System.Byte[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_139:
stloc:ArgumentException(var_32_143, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("if initiating, confirmationTag must be set")))
}
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: 0x0600C023 RID: 49187 RVA: 0x002B58D0 File Offset: 0x002B3AD0
[Token(Token = "0x600C023")]
[Address(RVA = "0x25AE400", Offset = "0x25AD400", VA = "0x1825AE400", Slot = "7")]
protected virtual ECPoint CalculateU(SM2KeyExchangePublicParameters otherPub)
{
ECDomainParameters parameters = this.mStaticKey.parameters;
ECCurve curve = parameters.curve;
string text = otherPub.ToString();
ECCurve curve2 = parameters.curve;
ECPoint q = otherPub.StaticPublicKey.q;
ECPoint ecpoint = ECAlgorithms.CleanPoint(curve2, q);
string text2 = this.mEphemeralPubPoint.CurveCoordinateSystem.ToString();
string text3 = ecpoint.CurveCoordinateSystem.ToString();
ECPrivateKeyParameters ecprivateKeyParameters = this.mStaticKey;
ECPrivateKeyParameters ecprivateKeyParameters2 = this.mEphemeralKey;
BigInteger d = ecprivateKeyParameters.d;
BigInteger d2 = ecprivateKeyParameters2.d;
BigInteger bigInteger2;
BigInteger bigInteger = bigInteger2.Multiply(d2);
BigInteger bigInteger3 = d.Add(bigInteger);
BigInteger bigInteger4 = this.mECParams.h.Multiply(bigInteger3);
BigInteger n = this.mECParams.n;
BigInteger bigInteger5 = bigInteger4.Mod(n);
BigInteger bigInteger7;
BigInteger bigInteger6 = bigInteger5.Multiply(bigInteger7);
BigInteger n2 = this.mECParams.n;
BigInteger bigInteger8 = bigInteger6.Mod(n2);
ECPoint ecpoint2;
bool flag = ECAlgorithms.SumOfTwoMultiplies(ecpoint2, bigInteger5, ecpoint, bigInteger8).SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600C024 RID: 49188 RVA: 0x002B59D8 File Offset: 0x002B3BD8
[Token(Token = "0x600C024")]
[Address(RVA = "0x25AEBD0", Offset = "0x25ADBD0", VA = "0x1825AEBD0", Slot = "8")]
protected virtual byte[] Kdf(ECPoint u, byte[] za, byte[] zb, int klen)
{
IDigest digest = this.mDigest;
int num;
byte[] array = new byte[num];
byte[] array2 = new byte[num];
int num2 = 0;
if (array2 != 0)
{
int curveCoordinateSystem = u.CurveCoordinateSystem;
IDigest digest2 = this.mDigest;
ECFieldElement affineXCoord = u.AffineXCoord;
this.AddFieldElement(digest2, affineXCoord);
IDigest digest3 = this.mDigest;
int length = za.Length;
IDigest digest4 = this.mDigest;
int length2 = zb.Length;
}
if (num2 < array2.Length)
{
if (array2 == 0)
{
int curveCoordinateSystem2 = u.CurveCoordinateSystem;
IDigest digest5 = this.mDigest;
ECFieldElement affineXCoord2 = u.AffineXCoord;
this.AddFieldElement(digest5, affineXCoord2);
IDigest digest6 = this.mDigest;
int length3 = za.Length;
IDigest digest7 = this.mDigest;
int length4 = zb.Length;
}
num2++;
int num3 = 0;
Pack.UInt32_To_BE((uint)num2, array, num3);
IDigest digest8 = this.mDigest;
IDigest digest9 = this.mDigest;
int num4 = array2.Length;
num4 -= num2;
int num5 = 0;
int num6;
Array.Copy(array, num5, array2, num2, num6);
num2 += num6;
}
return array2;
}
// Token: 0x0600C025 RID: 49189 RVA: 0x002B5AEC File Offset: 0x002B3CEC
[Token(Token = "0x600C025")]
[Address(RVA = "0x25AEFC0", Offset = "0x25ADFC0", VA = "0x1825AEFC0")]
private BigInteger Reduce(BigInteger x)
{
BigInteger one = BigInteger.One;
int num = this.mW;
BigInteger bigInteger = one.ShiftLeft(num);
BigInteger one2 = BigInteger.One;
BigInteger bigInteger2 = bigInteger.Subtract(one2);
BigInteger bigInteger3 = x.And(bigInteger2);
int num2 = this.mW;
return bigInteger3.SetBit(num2);
}
// Token: 0x0600C026 RID: 49190 RVA: 0x002B5B40 File Offset: 0x002B3D40
[Token(Token = "0x600C026")]
[Address(RVA = "0x25AF090", Offset = "0x25AE090", VA = "0x1825AF090")]
private byte[] S1(IDigest digest, ECPoint u, byte[] inner)
{
ECFieldElement affineXCoord = u.AffineXCoord;
this.AddFieldElement(digest, affineXCoord);
int length = inner.Length;
return DigestUtilities.DoFinal(digest);
}
// Token: 0x0600C027 RID: 49191 RVA: 0x002B5B70 File Offset: 0x002B3D70
[Token(Token = "0x600C027")]
[Address(RVA = "0x25AD880", Offset = "0x25AC880", VA = "0x1825AD880")]
private byte[] CalculateInnerHash(IDigest digest, ECPoint u, byte[] za, byte[] zb, ECPoint p1, ECPoint p2)
{
int curveCoordinateSystem = u.CurveCoordinateSystem;
int length = za.Length;
return DigestUtilities.DoFinal(digest);
}
// Token: 0x0600C028 RID: 49192 RVA: 0x002B5B9C File Offset: 0x002B3D9C
[Token(Token = "0x600C028")]
[Address(RVA = "0x25AF190", Offset = "0x25AE190", VA = "0x1825AF190")]
private byte[] S2(IDigest digest, ECPoint u, byte[] inner)
{
ECFieldElement affineXCoord = u.AffineXCoord;
this.AddFieldElement(digest, affineXCoord);
int length = inner.Length;
return DigestUtilities.DoFinal(digest);
}
// Token: 0x0600C029 RID: 49193 RVA: 0x002B5BCC File Offset: 0x002B3DCC
[Token(Token = "0x600C029")]
[Address(RVA = "0x25AE660", Offset = "0x25AD660", VA = "0x1825AE660")]
private byte[] GetZ(IDigest digest, byte[] userID, ECPoint pubPoint)
{
int length = userID.Length;
IFiniteField field = this.mECParams.curve.Field;
ECFieldElement a = this.mECParams.curve.A;
this.AddFieldElement(digest, a);
int curveCoordinateSystem = this.mECParams.g.CurveCoordinateSystem;
ECFieldElement affineXCoord = this.mECParams.g.AffineXCoord;
this.AddFieldElement(digest, affineXCoord);
int curveCoordinateSystem2 = pubPoint.CurveCoordinateSystem;
ECFieldElement affineXCoord2 = pubPoint.AffineXCoord;
this.AddFieldElement(digest, affineXCoord2);
return DigestUtilities.DoFinal(digest);
}
// Token: 0x0600C02A RID: 49194 RVA: 0x002B5C5C File Offset: 0x002B3E5C
[Token(Token = "0x600C02A")]
[Address(RVA = "0x25AD7D0", Offset = "0x25AC7D0", VA = "0x1825AD7D0")]
private void AddUserID(IDigest digest, byte[] userID)
{
int length = userID.Length;
}
// Token: 0x0600C02B RID: 49195 RVA: 0x002B5C78 File Offset: 0x002B3E78
[Token(Token = "0x600C02B")]
[Address(RVA = "0x25AD740", Offset = "0x25AC740", VA = "0x1825AD740")]
private void AddFieldElement(IDigest digest, ECFieldElement v)
{
}
// Token: 0x04007984 RID: 31108
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007984")]
private readonly IDigest mDigest;
// Token: 0x04007985 RID: 31109
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007985")]
private byte[] mUserID;
// Token: 0x04007986 RID: 31110
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007986")]
private ECPrivateKeyParameters mStaticKey;
// Token: 0x04007987 RID: 31111
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007987")]
private ECPoint mStaticPubPoint;
// Token: 0x04007988 RID: 31112
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007988")]
private ECPoint mEphemeralPubPoint;
// Token: 0x04007989 RID: 31113
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007989")]
private ECDomainParameters mECParams;
// Token: 0x0400798A RID: 31114
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x400798A")]
private int mW;
// Token: 0x0400798B RID: 31115
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400798B")]
private ECPrivateKeyParameters mEphemeralKey;
// Token: 0x0400798C RID: 31116
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x400798C")]
private bool mInitiator;
}
}
@@ -0,0 +1,275 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp
{
// Token: 0x02001DF0 RID: 7664
[Token(Token = "0x2001DF0")]
public class Srp6Client
{
// Token: 0x0600C034 RID: 49204 RVA: 0x002B5D7C File Offset: 0x002B3F7C
[Token(Token = "0x600C034")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public Srp6Client()
{
}
// Token: 0x0600C035 RID: 49205 RVA: 0x002B5D90 File Offset: 0x002B3F90
[Token(Token = "0x600C035")]
[Address(RVA = "0x25AF6C0", Offset = "0x25AE6C0", VA = "0x1825AF6C0", Slot = "4")]
public virtual void Init(BigInteger N, BigInteger g, IDigest digest, SecureRandom random)
{
this.random = 0;
this.N = N;
this.g = g;
this.digest = digest;
}
// Token: 0x0600C036 RID: 49206 RVA: 0x002B5DBC File Offset: 0x002B3FBC
[Token(Token = "0x600C036")]
[Address(RVA = "0x25AF6E0", Offset = "0x25AE6E0", VA = "0x1825AF6E0", Slot = "5")]
public virtual void Init(Srp6GroupParameters group, IDigest digest, SecureRandom random)
{
string text = this.ToString();
}
// Token: 0x0600C037 RID: 49207 RVA: 0x002B5DD8 File Offset: 0x002B3FD8
[Token(Token = "0x600C037")]
[Address(RVA = "0x25AF650", Offset = "0x25AE650", VA = "0x1825AF650", Slot = "6")]
public virtual BigInteger GenerateClientCredentials(byte[] salt, byte[] identity, byte[] password)
{
BigInteger n = this.N;
BigInteger bigInteger = Srp6Utilities.CalculateX(this.digest, n, salt, identity, password);
this.x = bigInteger;
BigInteger bigInteger2 = this.g;
BigInteger bigInteger3;
this.privA = bigInteger3;
BigInteger n2 = this.N;
BigInteger bigInteger4 = bigInteger2.ModPow(bigInteger3, n2);
this.pubA = bigInteger4;
return bigInteger4;
}
// Token: 0x0600C038 RID: 49208 RVA: 0x002B5E38 File Offset: 0x002B4038
[Token(Token = "0x600C038")]
[Address(RVA = "0x25AF490", Offset = "0x25AE490", VA = "0x1825AF490", Slot = "7")]
public virtual BigInteger CalculateSecret(BigInteger serverB)
{
BigInteger bigInteger = Srp6Utilities.ValidatePublicValue(this.N, serverB);
BigInteger bigInteger2 = this.pubA;
BigInteger n = this.N;
IDigest digest = this.digest;
this.B = bigInteger;
BigInteger bigInteger3 = Srp6Utilities.HashPaddedPair(digest, n, bigInteger2, bigInteger);
BigInteger n2 = this.N;
BigInteger bigInteger4 = this.g;
IDigest digest2 = this.digest;
this.u = bigInteger3;
BigInteger bigInteger5 = Srp6Utilities.HashPaddedPair(digest2, n2, n2, bigInteger4);
BigInteger bigInteger6 = this.u;
BigInteger bigInteger7 = this.x;
BigInteger bigInteger8 = bigInteger6.Multiply(bigInteger7);
BigInteger bigInteger9 = this.privA;
BigInteger bigInteger10 = bigInteger8.Add(bigInteger9);
BigInteger bigInteger11 = this.g;
BigInteger n3 = this.N;
BigInteger bigInteger12 = this.x;
BigInteger bigInteger13 = bigInteger11.ModPow(bigInteger12, n3).Multiply(bigInteger5);
BigInteger n4 = this.N;
BigInteger bigInteger14 = bigInteger13.Mod(n4);
BigInteger bigInteger15 = this.B.Subtract(bigInteger14);
BigInteger n5 = this.N;
BigInteger bigInteger16 = bigInteger15.Mod(n5);
BigInteger n6 = this.N;
BigInteger bigInteger17 = bigInteger16.ModPow(bigInteger10, n6);
this.S = bigInteger17;
return bigInteger17;
}
// Token: 0x0600C039 RID: 49209 RVA: 0x002B5F60 File Offset: 0x002B4160
[Token(Token = "0x600C039")]
[Address(RVA = "0x25AF720", Offset = "0x25AE720", VA = "0x1825AF720", Slot = "8")]
protected virtual BigInteger SelectPrivateValue()
{
SecureRandom secureRandom = this.random;
BigInteger bigInteger = this.g;
BigInteger n = this.N;
return Srp6Utilities.GeneratePrivateValue(this.digest, n, bigInteger, secureRandom);
}
// Token: 0x0600C03A RID: 49210 RVA: 0x002B5F90 File Offset: 0x002B4190
[Token(Token = "0x600C03A")]
[Address(RVA = "0x25AF390", Offset = "0x25AE390", VA = "0x1825AF390")]
private BigInteger CalculateS()
{
BigInteger n = this.N;
BigInteger bigInteger = this.g;
BigInteger bigInteger2 = Srp6Utilities.HashPaddedPair(this.digest, n, n, bigInteger);
BigInteger bigInteger3 = this.u;
BigInteger bigInteger4 = this.x;
BigInteger bigInteger5 = bigInteger3.Multiply(bigInteger4);
BigInteger bigInteger6 = this.privA;
BigInteger bigInteger7 = bigInteger5.Add(bigInteger6);
BigInteger bigInteger8 = this.g;
BigInteger n2 = this.N;
BigInteger bigInteger9 = this.x;
BigInteger bigInteger10 = bigInteger8.ModPow(bigInteger9, n2).Multiply(bigInteger2);
BigInteger n3 = this.N;
BigInteger bigInteger11 = bigInteger10.Mod(n3);
BigInteger bigInteger12 = this.B.Subtract(bigInteger11);
BigInteger n4 = this.N;
BigInteger bigInteger13 = bigInteger12.Mod(n4);
BigInteger n5 = this.N;
return bigInteger13.ModPow(bigInteger7, n5);
}
// Token: 0x0600C03B RID: 49211 RVA: 0x002B6064 File Offset: 0x002B4264
[Token(Token = "0x600C03B")]
[Address(RVA = "0x25AF2F0", Offset = "0x25AE2F0", VA = "0x1825AF2F0", Slot = "9")]
public virtual BigInteger CalculateClientEvidenceMessage()
{
/*
An exception occurred when decompiling this method (0600C03B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Client::CalculateClientEvidenceMessage()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_44:
stloc:CryptoException(var_6_4E, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute M1: some data are missing from the previous operations (A,B,S)")))
}
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: 0x0600C03C RID: 49212 RVA: 0x002B60C0 File Offset: 0x002B42C0
[Token(Token = "0x600C03C")]
[Address(RVA = "0x25AF750", Offset = "0x25AE750", VA = "0x1825AF750", Slot = "10")]
public virtual bool VerifyServerEvidenceMessage(BigInteger serverM2)
{
/*
An exception occurred when decompiling this method (0600C03C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Client::VerifyServerEvidenceMessage(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_43:
stloc:CryptoException(var_5_4D, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute and verify M2: some data are missing from the previous operations (A,M1,S)")))
}
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: 0x0600C03D RID: 49213 RVA: 0x002B611C File Offset: 0x002B431C
[Token(Token = "0x600C03D")]
[Address(RVA = "0x25AF5C0", Offset = "0x25AE5C0", VA = "0x1825AF5C0", Slot = "11")]
public virtual BigInteger CalculateSessionKey()
{
/*
An exception occurred when decompiling this method (0600C03D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Client::CalculateSessionKey()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_3F:
stloc:CryptoException(var_3_49, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute Key: some data are missing from the previous operations (S,M1,M2)")))
}
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: 0x0400798F RID: 31119
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400798F")]
protected BigInteger N;
// Token: 0x04007990 RID: 31120
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007990")]
protected BigInteger g;
// Token: 0x04007991 RID: 31121
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007991")]
protected BigInteger privA;
// Token: 0x04007992 RID: 31122
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007992")]
protected BigInteger pubA;
// Token: 0x04007993 RID: 31123
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007993")]
protected BigInteger B;
// Token: 0x04007994 RID: 31124
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007994")]
protected BigInteger x;
// Token: 0x04007995 RID: 31125
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007995")]
protected BigInteger u;
// Token: 0x04007996 RID: 31126
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4007996")]
protected BigInteger S;
// Token: 0x04007997 RID: 31127
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4007997")]
protected BigInteger M1;
// Token: 0x04007998 RID: 31128
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4007998")]
protected BigInteger M2;
// Token: 0x04007999 RID: 31129
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4007999")]
protected BigInteger Key;
// Token: 0x0400799A RID: 31130
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x400799A")]
protected IDigest digest;
// Token: 0x0400799B RID: 31131
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x400799B")]
protected SecureRandom random;
}
}
@@ -0,0 +1,266 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp
{
// Token: 0x02001DF1 RID: 7665
[Token(Token = "0x2001DF1")]
public class Srp6Server
{
// Token: 0x0600C03E RID: 49214 RVA: 0x002B6174 File Offset: 0x002B4374
[Token(Token = "0x600C03E")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public Srp6Server()
{
}
// Token: 0x0600C03F RID: 49215 RVA: 0x002B6188 File Offset: 0x002B4388
[Token(Token = "0x600C03F")]
[Address(RVA = "0x25AFBA0", Offset = "0x25AEBA0", VA = "0x1825AFBA0", Slot = "4")]
public virtual void Init(BigInteger N, BigInteger g, BigInteger v, IDigest digest, SecureRandom random)
{
this.random = 0;
this.digest = 0;
this.N = N;
this.g = g;
this.v = v;
}
// Token: 0x0600C040 RID: 49216 RVA: 0x002B61B8 File Offset: 0x002B43B8
[Token(Token = "0x600C040")]
[Address(RVA = "0x25AFB50", Offset = "0x25AEB50", VA = "0x1825AFB50", Slot = "5")]
public virtual void Init(Srp6GroupParameters group, BigInteger v, IDigest digest, SecureRandom random)
{
string text = this.ToString();
}
// Token: 0x0600C041 RID: 49217 RVA: 0x002B61D4 File Offset: 0x002B43D4
[Token(Token = "0x600C041")]
[Address(RVA = "0x25AFA80", Offset = "0x25AEA80", VA = "0x1825AFA80", Slot = "6")]
public virtual BigInteger GenerateServerCredentials()
{
BigInteger n = this.N;
BigInteger bigInteger = this.g;
BigInteger bigInteger2 = Srp6Utilities.HashPaddedPair(this.digest, n, n, bigInteger);
BigInteger bigInteger3;
this.privB = bigInteger3;
BigInteger bigInteger4 = this.v;
BigInteger bigInteger5 = bigInteger2.Multiply(bigInteger4);
BigInteger n2 = this.N;
BigInteger bigInteger6 = bigInteger5.Mod(n2);
BigInteger bigInteger7 = this.g;
BigInteger n3 = this.N;
BigInteger bigInteger8 = this.privB;
BigInteger bigInteger9 = bigInteger7.ModPow(bigInteger8, n3);
BigInteger bigInteger10 = bigInteger6.Add(bigInteger9);
BigInteger n4 = this.N;
BigInteger bigInteger11 = bigInteger10.Mod(n4);
this.pubB = bigInteger11;
return bigInteger11;
}
// Token: 0x0600C042 RID: 49218 RVA: 0x002B6280 File Offset: 0x002B4480
[Token(Token = "0x600C042")]
[Address(RVA = "0x25AF8A0", Offset = "0x25AE8A0", VA = "0x1825AF8A0", Slot = "7")]
public virtual BigInteger CalculateSecret(BigInteger clientA)
{
BigInteger bigInteger = Srp6Utilities.ValidatePublicValue(this.N, clientA);
BigInteger bigInteger2 = this.pubB;
BigInteger n = this.N;
IDigest digest = this.digest;
this.A = bigInteger;
BigInteger bigInteger3 = Srp6Utilities.HashPaddedPair(digest, n, bigInteger, bigInteger2);
BigInteger bigInteger4 = this.v;
this.u = bigInteger3;
BigInteger n2 = this.N;
BigInteger bigInteger5 = bigInteger4.ModPow(bigInteger3, n2);
BigInteger a = this.A;
BigInteger bigInteger6 = bigInteger5.Multiply(a);
BigInteger n3 = this.N;
BigInteger bigInteger7 = bigInteger6.Mod(n3);
BigInteger n4 = this.N;
BigInteger bigInteger8 = this.privB;
BigInteger bigInteger9 = bigInteger7.ModPow(bigInteger8, n4);
this.S = bigInteger9;
return bigInteger9;
}
// Token: 0x0600C043 RID: 49219 RVA: 0x002B633C File Offset: 0x002B453C
[Token(Token = "0x600C043")]
[Address(RVA = "0x25AFBC0", Offset = "0x25AEBC0", VA = "0x1825AFBC0", Slot = "8")]
protected virtual BigInteger SelectPrivateValue()
{
SecureRandom secureRandom = this.random;
BigInteger bigInteger = this.g;
BigInteger n = this.N;
return Srp6Utilities.GeneratePrivateValue(this.digest, n, bigInteger, secureRandom);
}
// Token: 0x0600C044 RID: 49220 RVA: 0x002B636C File Offset: 0x002B456C
[Token(Token = "0x600C044")]
[Address(RVA = "0x25AF830", Offset = "0x25AE830", VA = "0x1825AF830")]
private BigInteger CalculateS()
{
BigInteger bigInteger = this.v;
BigInteger n = this.N;
BigInteger bigInteger2 = this.u;
BigInteger bigInteger3 = bigInteger.ModPow(bigInteger2, n);
BigInteger a = this.A;
BigInteger bigInteger4 = bigInteger3.Multiply(a);
BigInteger n2 = this.N;
BigInteger bigInteger5 = bigInteger4.Mod(n2);
BigInteger n3 = this.N;
BigInteger bigInteger6 = this.privB;
return bigInteger5.ModPow(bigInteger6, n3);
}
// Token: 0x0600C045 RID: 49221 RVA: 0x002B63E0 File Offset: 0x002B45E0
[Token(Token = "0x600C045")]
[Address(RVA = "0x25AFBF0", Offset = "0x25AEBF0", VA = "0x1825AFBF0", Slot = "9")]
public virtual bool VerifyClientEvidenceMessage(BigInteger clientM1)
{
/*
An exception occurred when decompiling this method (0600C045)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Server::VerifyClientEvidenceMessage(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_43:
stloc:CryptoException(var_5_4D, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute and verify M1: some data are missing from the previous operations (A,B,S)")))
}
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: 0x0600C046 RID: 49222 RVA: 0x002B643C File Offset: 0x002B463C
[Token(Token = "0x600C046")]
[Address(RVA = "0x25AF950", Offset = "0x25AE950", VA = "0x1825AF950", Slot = "10")]
public virtual BigInteger CalculateServerEvidenceMessage()
{
/*
An exception occurred when decompiling this method (0600C046)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Server::CalculateServerEvidenceMessage()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_44:
stloc:CryptoException(var_6_4E, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute M2: some data are missing from the previous operations (A,M1,S)")))
}
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: 0x0600C047 RID: 49223 RVA: 0x002B6498 File Offset: 0x002B4698
[Token(Token = "0x600C047")]
[Address(RVA = "0x25AF9F0", Offset = "0x25AE9F0", VA = "0x1825AF9F0", Slot = "11")]
public virtual BigInteger CalculateSessionKey()
{
/*
An exception occurred when decompiling this method (0600C047)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Server::CalculateSessionKey()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_3F:
stloc:CryptoException(var_3_49, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute Key: some data are missing from the previous operations (S,M1,M2)")))
}
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: 0x0400799C RID: 31132
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400799C")]
protected BigInteger N;
// Token: 0x0400799D RID: 31133
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400799D")]
protected BigInteger g;
// Token: 0x0400799E RID: 31134
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400799E")]
protected BigInteger v;
// Token: 0x0400799F RID: 31135
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400799F")]
protected SecureRandom random;
// Token: 0x040079A0 RID: 31136
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40079A0")]
protected IDigest digest;
// Token: 0x040079A1 RID: 31137
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40079A1")]
protected BigInteger A;
// Token: 0x040079A2 RID: 31138
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40079A2")]
protected BigInteger privB;
// Token: 0x040079A3 RID: 31139
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40079A3")]
protected BigInteger pubB;
// Token: 0x040079A4 RID: 31140
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40079A4")]
protected BigInteger u;
// Token: 0x040079A5 RID: 31141
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40079A5")]
protected BigInteger S;
// Token: 0x040079A6 RID: 31142
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x40079A6")]
protected BigInteger M1;
// Token: 0x040079A7 RID: 31143
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x40079A7")]
protected BigInteger M2;
// Token: 0x040079A8 RID: 31144
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x40079A8")]
protected BigInteger Key;
}
}
@@ -0,0 +1,123 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp
{
// Token: 0x02001DF2 RID: 7666
[Token(Token = "0x2001DF2")]
public class Srp6StandardGroups
{
// Token: 0x0600C048 RID: 49224 RVA: 0x002B64F0 File Offset: 0x002B46F0
[Token(Token = "0x600C048")]
[Address(RVA = "0x25AFCD0", Offset = "0x25AECD0", VA = "0x1825AFCD0")]
private static BigInteger FromHex(string hex)
{
byte[] array = Hex.Decode(hex);
return new BigInteger(1, array);
}
// Token: 0x0600C049 RID: 49225 RVA: 0x002B650C File Offset: 0x002B470C
[Token(Token = "0x600C049")]
[Address(RVA = "0x25AFD60", Offset = "0x25AED60", VA = "0x1825AFD60")]
private static Srp6GroupParameters FromNG(string hexN, string hexG)
{
BigInteger bigInteger = Srp6StandardGroups.FromHex(hexN);
BigInteger bigInteger2 = Srp6StandardGroups.FromHex(hexG);
return new Srp6GroupParameters(bigInteger, bigInteger2);
}
// Token: 0x0600C04A RID: 49226 RVA: 0x002B6530 File Offset: 0x002B4730
[Token(Token = "0x600C04A")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public Srp6StandardGroups()
{
}
// Token: 0x040079A9 RID: 31145
[Token(Token = "0x40079A9")]
private const string rfc5054_1024_N = "EEAF0AB9ADB38DD69C33F80AFA8FC5E86072618775FF3C0B9EA2314C9C256576D674DF7496EA81D3383B4813D692C6E0E0D5D8E250B98BE48E495C1D6089DAD15DC7D7B46154D6B6CE8EF4AD69B15D4982559B297BCF1885C529F566660E57EC68EDBC3C05726CC02FD4CBF4976EAA9AFD5138FE8376435B9FC61D2FC0EB06E3";
// Token: 0x040079AA RID: 31146
[Token(Token = "0x40079AA")]
private const string rfc5054_1024_g = "02";
// Token: 0x040079AB RID: 31147
[Token(Token = "0x40079AB")]
public static readonly Srp6GroupParameters rfc5054_1024 = Srp6StandardGroups.FromNG("EEAF0AB9ADB38DD69C33F80AFA8FC5E86072618775FF3C0B9EA2314C9C256576D674DF7496EA81D3383B4813D692C6E0E0D5D8E250B98BE48E495C1D6089DAD15DC7D7B46154D6B6CE8EF4AD69B15D4982559B297BCF1885C529F566660E57EC68EDBC3C05726CC02FD4CBF4976EAA9AFD5138FE8376435B9FC61D2FC0EB06E3", "02");
// Token: 0x040079AC RID: 31148
[Token(Token = "0x40079AC")]
private const string rfc5054_1536_N = "9DEF3CAFB939277AB1F12A8617A47BBBDBA51DF499AC4C80BEEEA9614B19CC4D5F4F5F556E27CBDE51C6A94BE4607A291558903BA0D0F84380B655BB9A22E8DCDF028A7CEC67F0D08134B1C8B97989149B609E0BE3BAB63D47548381DBC5B1FC764E3F4B53DD9DA1158BFD3E2B9C8CF56EDF019539349627DB2FD53D24B7C48665772E437D6C7F8CE442734AF7CCB7AE837C264AE3A9BEB87F8A2FE9B8B5292E5A021FFF5E91479E8CE7A28C2442C6F315180F93499A234DCF76E3FED135F9BB";
// Token: 0x040079AD RID: 31149
[Token(Token = "0x40079AD")]
private const string rfc5054_1536_g = "02";
// Token: 0x040079AE RID: 31150
[Token(Token = "0x40079AE")]
public static readonly Srp6GroupParameters rfc5054_1536 = Srp6StandardGroups.FromNG("9DEF3CAFB939277AB1F12A8617A47BBBDBA51DF499AC4C80BEEEA9614B19CC4D5F4F5F556E27CBDE51C6A94BE4607A291558903BA0D0F84380B655BB9A22E8DCDF028A7CEC67F0D08134B1C8B97989149B609E0BE3BAB63D47548381DBC5B1FC764E3F4B53DD9DA1158BFD3E2B9C8CF56EDF019539349627DB2FD53D24B7C48665772E437D6C7F8CE442734AF7CCB7AE837C264AE3A9BEB87F8A2FE9B8B5292E5A021FFF5E91479E8CE7A28C2442C6F315180F93499A234DCF76E3FED135F9BB", "02");
// Token: 0x040079AF RID: 31151
[Token(Token = "0x40079AF")]
private const string rfc5054_2048_N = "AC6BDB41324A9A9BF166DE5E1389582FAF72B6651987EE07FC3192943DB56050A37329CBB4A099ED8193E0757767A13DD52312AB4B03310DCD7F48A9DA04FD50E8083969EDB767B0CF6095179A163AB3661A05FBD5FAAAE82918A9962F0B93B855F97993EC975EEAA80D740ADBF4FF747359D041D5C33EA71D281E446B14773BCA97B43A23FB801676BD207A436C6481F1D2B9078717461A5B9D32E688F87748544523B524B0D57D5EA77A2775D2ECFA032CFBDBF52FB3786160279004E57AE6AF874E7303CE53299CCC041C7BC308D82A5698F3A8D0C38271AE35F8E9DBFBB694B5C803D89F7AE435DE236D525F54759B65E372FCD68EF20FA7111F9E4AFF73";
// Token: 0x040079B0 RID: 31152
[Token(Token = "0x40079B0")]
private const string rfc5054_2048_g = "02";
// Token: 0x040079B1 RID: 31153
[Token(Token = "0x40079B1")]
public static readonly Srp6GroupParameters rfc5054_2048 = Srp6StandardGroups.FromNG("AC6BDB41324A9A9BF166DE5E1389582FAF72B6651987EE07FC3192943DB56050A37329CBB4A099ED8193E0757767A13DD52312AB4B03310DCD7F48A9DA04FD50E8083969EDB767B0CF6095179A163AB3661A05FBD5FAAAE82918A9962F0B93B855F97993EC975EEAA80D740ADBF4FF747359D041D5C33EA71D281E446B14773BCA97B43A23FB801676BD207A436C6481F1D2B9078717461A5B9D32E688F87748544523B524B0D57D5EA77A2775D2ECFA032CFBDBF52FB3786160279004E57AE6AF874E7303CE53299CCC041C7BC308D82A5698F3A8D0C38271AE35F8E9DBFBB694B5C803D89F7AE435DE236D525F54759B65E372FCD68EF20FA7111F9E4AFF73", "02");
// Token: 0x040079B2 RID: 31154
[Token(Token = "0x40079B2")]
private const string rfc5054_3072_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF";
// Token: 0x040079B3 RID: 31155
[Token(Token = "0x40079B3")]
private const string rfc5054_3072_g = "05";
// Token: 0x040079B4 RID: 31156
[Token(Token = "0x40079B4")]
public static readonly Srp6GroupParameters rfc5054_3072 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF", "05");
// Token: 0x040079B5 RID: 31157
[Token(Token = "0x40079B5")]
private const string rfc5054_4096_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF";
// Token: 0x040079B6 RID: 31158
[Token(Token = "0x40079B6")]
private const string rfc5054_4096_g = "05";
// Token: 0x040079B7 RID: 31159
[Token(Token = "0x40079B7")]
public static readonly Srp6GroupParameters rfc5054_4096 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF", "05");
// Token: 0x040079B8 RID: 31160
[Token(Token = "0x40079B8")]
private const string rfc5054_6144_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DCC4024FFFFFFFFFFFFFFFF";
// Token: 0x040079B9 RID: 31161
[Token(Token = "0x40079B9")]
private const string rfc5054_6144_g = "05";
// Token: 0x040079BA RID: 31162
[Token(Token = "0x40079BA")]
public static readonly Srp6GroupParameters rfc5054_6144 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DCC4024FFFFFFFFFFFFFFFF", "05");
// Token: 0x040079BB RID: 31163
[Token(Token = "0x40079BB")]
private const string rfc5054_8192_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DBE115974A3926F12FEE5E438777CB6A932DF8CD8BEC4D073B931BA3BC832B68D9DD300741FA7BF8AFC47ED2576F6936BA424663AAB639C5AE4F5683423B4742BF1C978238F16CBE39D652DE3FDB8BEFC848AD922222E04A4037C0713EB57A81A23F0C73473FC646CEA306B4BCBC8862F8385DDFA9D4B7FA2C087E879683303ED5BDD3A062B3CF5B3A278A66D2A13F83F44F82DDF310EE074AB6A364597E899A0255DC164F31CC50846851DF9AB48195DED7EA1B1D510BD7EE74D73FAF36BC31ECFA268359046F4EB879F924009438B481C6CD7889A002ED5EE382BC9190DA6FC026E479558E4475677E9AA9E3050E2765694DFC81F56E880B96E7160C980DD98EDD3DFFFFFFFFFFFFFFFFF";
// Token: 0x040079BC RID: 31164
[Token(Token = "0x40079BC")]
private const string rfc5054_8192_g = "13";
// Token: 0x040079BD RID: 31165
[Token(Token = "0x40079BD")]
public static readonly Srp6GroupParameters rfc5054_8192 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DBE115974A3926F12FEE5E438777CB6A932DF8CD8BEC4D073B931BA3BC832B68D9DD300741FA7BF8AFC47ED2576F6936BA424663AAB639C5AE4F5683423B4742BF1C978238F16CBE39D652DE3FDB8BEFC848AD922222E04A4037C0713EB57A81A23F0C73473FC646CEA306B4BCBC8862F8385DDFA9D4B7FA2C087E879683303ED5BDD3A062B3CF5B3A278A66D2A13F83F44F82DDF310EE074AB6A364597E899A0255DC164F31CC50846851DF9AB48195DED7EA1B1D510BD7EE74D73FAF36BC31ECFA268359046F4EB879F924009438B481C6CD7889A002ED5EE382BC9190DA6FC026E479558E4475677E9AA9E3050E2765694DFC81F56E880B96E7160C980DD98EDD3DFFFFFFFFFFFFFFFFF", "13");
}
}
@@ -0,0 +1,157 @@
using System;
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.Srp
{
// Token: 0x02001DF3 RID: 7667
[Token(Token = "0x2001DF3")]
public class Srp6Utilities
{
// Token: 0x0600C04C RID: 49228 RVA: 0x002B65E0 File Offset: 0x002B47E0
[Token(Token = "0x600C04C")]
[Address(RVA = "0x25AFF40", Offset = "0x25AEF40", VA = "0x1825AFF40")]
public static BigInteger CalculateK(IDigest digest, BigInteger N, BigInteger g)
{
return Srp6Utilities.HashPaddedPair(digest, N, N, g);
}
// Token: 0x0600C04D RID: 49229 RVA: 0x002B65F8 File Offset: 0x002B47F8
[Token(Token = "0x600C04D")]
[Address(RVA = "0x25B0080", Offset = "0x25AF080", VA = "0x1825B0080")]
public static BigInteger CalculateU(IDigest digest, BigInteger N, BigInteger A, BigInteger B)
{
return Srp6Utilities.HashPaddedPair(digest, N, A, B);
}
// Token: 0x0600C04E RID: 49230 RVA: 0x002B6610 File Offset: 0x002B4810
[Token(Token = "0x600C04E")]
[Address(RVA = "0x25B0090", Offset = "0x25AF090", VA = "0x1825B0090")]
public static BigInteger CalculateX(IDigest digest, BigInteger N, byte[] salt, byte[] identity, byte[] password)
{
byte[] array = new byte[0];
int length = identity.Length;
int length2 = salt.Length;
int length3 = array.Length;
return new BigInteger(1, array);
}
// Token: 0x0600C04F RID: 49231 RVA: 0x002B664C File Offset: 0x002B484C
[Token(Token = "0x600C04F")]
[Address(RVA = "0x25B0240", Offset = "0x25AF240", VA = "0x1825B0240")]
public static BigInteger GeneratePrivateValue(IDigest digest, BigInteger N, BigInteger g, SecureRandom random)
{
int num = 0;
int num2 = N.BitLength;
num2 -= num;
uint num3;
num2 = Math.Min((int)num3, num2);
BigInteger one = BigInteger.One;
int num4 = num2 - 1;
BigInteger bigInteger = one.ShiftLeft(num4);
BigInteger one2 = BigInteger.One;
BigInteger bigInteger2 = N.Subtract(one2);
return BigIntegers.CreateRandomInRange(bigInteger, bigInteger2, random);
}
// Token: 0x0600C050 RID: 49232 RVA: 0x002B66A4 File Offset: 0x002B48A4
[Token(Token = "0x600C050")]
[Address(RVA = "0x25B0700", Offset = "0x25AF700", VA = "0x1825B0700")]
public static BigInteger ValidatePublicValue(BigInteger N, BigInteger val)
{
return val.Mod(N);
}
// Token: 0x0600C051 RID: 49233 RVA: 0x002B66CC File Offset: 0x002B48CC
[Token(Token = "0x600C051")]
[Address(RVA = "0x25B0070", Offset = "0x25AF070", VA = "0x1825B0070")]
public static BigInteger CalculateM1(IDigest digest, BigInteger N, BigInteger A, BigInteger B, BigInteger S)
{
BigInteger bigInteger;
return bigInteger;
}
// Token: 0x0600C052 RID: 49234 RVA: 0x002B66DC File Offset: 0x002B48DC
[Token(Token = "0x600C052")]
[Address(RVA = "0x25B0070", Offset = "0x25AF070", VA = "0x1825B0070")]
public static BigInteger CalculateM2(IDigest digest, BigInteger N, BigInteger A, BigInteger M1, BigInteger S)
{
BigInteger bigInteger;
return bigInteger;
}
// Token: 0x0600C053 RID: 49235 RVA: 0x002B66EC File Offset: 0x002B48EC
[Token(Token = "0x600C053")]
[Address(RVA = "0x25AFF60", Offset = "0x25AEF60", VA = "0x1825AFF60")]
public static BigInteger CalculateKey(IDigest digest, BigInteger N, BigInteger S)
{
int num = 0;
int num2 = N.BitLength;
num2 += 7;
num += num2;
byte[] padded = Srp6Utilities.GetPadded(S, num);
int length = padded.Length;
byte[] array = new byte[padded];
return new BigInteger(1, array);
}
// Token: 0x0600C054 RID: 49236 RVA: 0x002B6734 File Offset: 0x002B4934
[Token(Token = "0x600C054")]
[Address(RVA = "0x25B0550", Offset = "0x25AF550", VA = "0x1825B0550")]
private static BigInteger HashPaddedTriplet(IDigest digest, BigInteger N, BigInteger n1, BigInteger n2, BigInteger n3)
{
int num = 0;
int num2 = N.BitLength;
num2 += 7;
num2 += num;
byte[] padded = Srp6Utilities.GetPadded(n1, num2);
byte[] padded2 = Srp6Utilities.GetPadded(n2, num2);
int length = padded.Length;
int length2 = padded2.Length;
byte[] array2;
byte[] array = new byte[array2.Length];
return new BigInteger(1, array);
}
// Token: 0x0600C055 RID: 49237 RVA: 0x002B6794 File Offset: 0x002B4994
[Token(Token = "0x600C055")]
[Address(RVA = "0x25B03F0", Offset = "0x25AF3F0", VA = "0x1825B03F0")]
private static BigInteger HashPaddedPair(IDigest digest, BigInteger N, BigInteger n1, BigInteger n2)
{
int num = 0;
int num2 = N.BitLength;
num2 += 7;
num2 += num;
byte[] padded = Srp6Utilities.GetPadded(n1, num2);
byte[] padded2 = Srp6Utilities.GetPadded(n2, num2);
int length = padded.Length;
byte[] array = new byte[padded2.Length];
return new BigInteger(1, array);
}
// Token: 0x0600C056 RID: 49238 RVA: 0x002B67E8 File Offset: 0x002B49E8
[Token(Token = "0x600C056")]
[Address(RVA = "0x25B0350", Offset = "0x25AF350", VA = "0x1825B0350")]
private static byte[] GetPadded(BigInteger n, int length)
{
byte[] array = BigIntegers.AsUnsignedByteArray(n);
if (array.Length < length)
{
byte[] array2 = new byte[length];
int length2 = array.Length;
int num = 0;
Array.Copy(array, num, array2, length, length2);
}
return array;
}
// Token: 0x0600C057 RID: 49239 RVA: 0x002B6828 File Offset: 0x002B4A28
[Token(Token = "0x600C057")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public Srp6Utilities()
{
}
}
}
@@ -0,0 +1,64 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp
{
// Token: 0x02001DF4 RID: 7668
[Token(Token = "0x2001DF4")]
public class Srp6VerifierGenerator
{
// Token: 0x0600C058 RID: 49240 RVA: 0x002B683C File Offset: 0x002B4A3C
[Token(Token = "0x600C058")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public Srp6VerifierGenerator()
{
}
// Token: 0x0600C059 RID: 49241 RVA: 0x002B6850 File Offset: 0x002B4A50
[Token(Token = "0x600C059")]
[Address(RVA = "0xF1BC30", Offset = "0xF1AC30", VA = "0x180F1BC30", Slot = "4")]
public virtual void Init(BigInteger N, BigInteger g, IDigest digest)
{
this.N = N;
this.g = g;
this.digest = digest;
}
// Token: 0x0600C05A RID: 49242 RVA: 0x002B6874 File Offset: 0x002B4A74
[Token(Token = "0x600C05A")]
[Address(RVA = "0x25B0830", Offset = "0x25AF830", VA = "0x1825B0830", Slot = "5")]
public virtual void Init(Srp6GroupParameters group, IDigest digest)
{
string text = this.ToString();
}
// Token: 0x0600C05B RID: 49243 RVA: 0x002B6890 File Offset: 0x002B4A90
[Token(Token = "0x600C05B")]
[Address(RVA = "0x25B07E0", Offset = "0x25AF7E0", VA = "0x1825B07E0", Slot = "6")]
public virtual BigInteger GenerateVerifier(byte[] salt, byte[] identity, byte[] password)
{
BigInteger n = this.N;
BigInteger bigInteger = Srp6Utilities.CalculateX(this.digest, n, salt, identity, password);
BigInteger bigInteger2 = this.g;
BigInteger n2 = this.N;
return bigInteger2.ModPow(bigInteger, n2);
}
// Token: 0x040079BE RID: 31166
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40079BE")]
protected BigInteger N;
// Token: 0x040079BF RID: 31167
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40079BF")]
protected BigInteger g;
// Token: 0x040079C0 RID: 31168
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40079C0")]
protected IDigest digest;
}
}
@@ -0,0 +1,66 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001DEE RID: 7662
[Token(Token = "0x2001DEE")]
public sealed class X25519Agreement : IRawAgreement
{
// Token: 0x0600C02C RID: 49196 RVA: 0x002B5C8C File Offset: 0x002B3E8C
[Token(Token = "0x600C02C")]
[Address(RVA = "0x25B0910", Offset = "0x25AF910", VA = "0x1825B0910", Slot = "4")]
public void Init(ICipherParameters parameters)
{
int num;
do
{
num = 0;
}
while (parameters != 0 && parameters == 0);
this.privateKey = num;
}
// Token: 0x17001DCD RID: 7629
// (get) Token: 0x0600C02D RID: 49197 RVA: 0x002B5CAC File Offset: 0x002B3EAC
[Token(Token = "0x17001DCD")]
public int AgreementSize
{
[Token(Token = "0x600C02D")]
[Address(RVA = "0x25B0970", Offset = "0x25AF970", VA = "0x1825B0970", Slot = "5")]
get
{
return X25519PrivateKeyParameters.SecretSize;
}
}
// Token: 0x0600C02E RID: 49198 RVA: 0x002B5CC0 File Offset: 0x002B3EC0
[Token(Token = "0x600C02E")]
[Address(RVA = "0x25B0870", Offset = "0x25AF870", VA = "0x1825B0870", Slot = "6")]
public void CalculateAgreement(ICipherParameters publicKey, byte[] buf, int off)
{
X25519PrivateKeyParameters x25519PrivateKeyParameters;
int num;
do
{
x25519PrivateKeyParameters = this.privateKey;
num = 0;
}
while (publicKey != 0 && publicKey == 0);
x25519PrivateKeyParameters.GenerateSecret(num, buf, off);
}
// Token: 0x0600C02F RID: 49199 RVA: 0x002B5CF0 File Offset: 0x002B3EF0
[Token(Token = "0x600C02F")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public X25519Agreement()
{
}
// Token: 0x0400798D RID: 31117
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400798D")]
private X25519PrivateKeyParameters privateKey;
}
}
@@ -0,0 +1,66 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001DEF RID: 7663
[Token(Token = "0x2001DEF")]
public sealed class X448Agreement : IRawAgreement
{
// Token: 0x0600C030 RID: 49200 RVA: 0x002B5D04 File Offset: 0x002B3F04
[Token(Token = "0x600C030")]
[Address(RVA = "0x25B0A70", Offset = "0x25AFA70", VA = "0x1825B0A70", Slot = "4")]
public void Init(ICipherParameters parameters)
{
int num;
do
{
num = 0;
}
while (parameters != 0 && parameters == 0);
this.privateKey = num;
}
// Token: 0x17001DCE RID: 7630
// (get) Token: 0x0600C031 RID: 49201 RVA: 0x002B5D24 File Offset: 0x002B3F24
[Token(Token = "0x17001DCE")]
public int AgreementSize
{
[Token(Token = "0x600C031")]
[Address(RVA = "0x25B0AD0", Offset = "0x25AFAD0", VA = "0x1825B0AD0", Slot = "5")]
get
{
return X448PrivateKeyParameters.SecretSize;
}
}
// Token: 0x0600C032 RID: 49202 RVA: 0x002B5D38 File Offset: 0x002B3F38
[Token(Token = "0x600C032")]
[Address(RVA = "0x25B09D0", Offset = "0x25AF9D0", VA = "0x1825B09D0", Slot = "6")]
public void CalculateAgreement(ICipherParameters publicKey, byte[] buf, int off)
{
X448PrivateKeyParameters x448PrivateKeyParameters;
int num;
do
{
x448PrivateKeyParameters = this.privateKey;
num = 0;
}
while (publicKey != 0 && publicKey == 0);
x448PrivateKeyParameters.GenerateSecret(num, buf, off);
}
// Token: 0x0600C033 RID: 49203 RVA: 0x002B5D68 File Offset: 0x002B3F68
[Token(Token = "0x600C033")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public X448Agreement()
{
}
// Token: 0x0400798E RID: 31118
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400798E")]
private X448PrivateKeyParameters privateKey;
}
}