scripts
This commit is contained in:
+127
@@ -0,0 +1,127 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
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: 0x02001728 RID: 5928
|
||||
[Token(Token = "0x2001728")]
|
||||
[StructLayout(3)]
|
||||
public class DHAgreement
|
||||
{
|
||||
// Token: 0x0600A055 RID: 41045 RVA: 0x00253D3C File Offset: 0x00251F3C
|
||||
[Token(Token = "0x600A055")]
|
||||
[Address(RVA = "0x654660", Offset = "0x653060", VA = "0x180654660")]
|
||||
public void Init(ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A055)
|
||||
|
||||
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: 0x0600A056 RID: 41046 RVA: 0x00253DAC File Offset: 0x00251FAC
|
||||
[Token(Token = "0x600A056")]
|
||||
[Address(RVA = "0x654450", Offset = "0x652E50", VA = "0x180654450")]
|
||||
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: 0x0600A057 RID: 41047 RVA: 0x00253E10 File Offset: 0x00252010
|
||||
[Token(Token = "0x600A057")]
|
||||
[Address(RVA = "0x654140", Offset = "0x652B40", VA = "0x180654140")]
|
||||
public BigInteger CalculateAgreement(DHPublicKeyParameters pub, BigInteger message)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A057)
|
||||
|
||||
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: 0x0600A058 RID: 41048 RVA: 0x00253EA0 File Offset: 0x002520A0
|
||||
[Token(Token = "0x600A058")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public DHAgreement()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04006949 RID: 26953
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006949")]
|
||||
private DHPrivateKeyParameters key;
|
||||
|
||||
// Token: 0x0400694A RID: 26954
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400694A")]
|
||||
private DHParameters dhParams;
|
||||
|
||||
// Token: 0x0400694B RID: 26955
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400694B")]
|
||||
private BigInteger privateValue;
|
||||
|
||||
// Token: 0x0400694C RID: 26956
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400694C")]
|
||||
private SecureRandom random;
|
||||
}
|
||||
}
|
||||
+104
@@ -0,0 +1,104 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
|
||||
{
|
||||
// Token: 0x02001729 RID: 5929
|
||||
[Token(Token = "0x2001729")]
|
||||
[StructLayout(3)]
|
||||
public class DHBasicAgreement : IBasicAgreement
|
||||
{
|
||||
// Token: 0x0600A059 RID: 41049 RVA: 0x00253EB4 File Offset: 0x002520B4
|
||||
[Token(Token = "0x600A059")]
|
||||
[Address(RVA = "0x654BF0", Offset = "0x6535F0", VA = "0x180654BF0", Slot = "7")]
|
||||
public virtual void Init(ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A059)
|
||||
|
||||
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: 0x0600A05A RID: 41050 RVA: 0x00253F04 File Offset: 0x00252104
|
||||
[Token(Token = "0x600A05A")]
|
||||
[Address(RVA = "0x654BB0", Offset = "0x6535B0", VA = "0x180654BB0", 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: 0x0600A05B RID: 41051 RVA: 0x00253F3C File Offset: 0x0025213C
|
||||
[Token(Token = "0x600A05B")]
|
||||
[Address(RVA = "0x6548D0", Offset = "0x6532D0", VA = "0x1806548D0", Slot = "9")]
|
||||
public virtual BigInteger CalculateAgreement(ICipherParameters pubKey)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A05B)
|
||||
|
||||
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: 0x0600A05C RID: 41052 RVA: 0x00253FAC File Offset: 0x002521AC
|
||||
[Token(Token = "0x600A05C")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public DHBasicAgreement()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0400694D RID: 26957
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400694D")]
|
||||
private DHPrivateKeyParameters key;
|
||||
|
||||
// Token: 0x0400694E RID: 26958
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400694E")]
|
||||
private DHParameters dhParams;
|
||||
}
|
||||
}
|
||||
+347
@@ -0,0 +1,347 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
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: 0x0200172A RID: 5930
|
||||
[Token(Token = "0x200172A")]
|
||||
[StructLayout(3)]
|
||||
public class DHStandardGroups
|
||||
{
|
||||
// Token: 0x0600A05D RID: 41053 RVA: 0x00253FC0 File Offset: 0x002521C0
|
||||
[Token(Token = "0x600A05D")]
|
||||
[Address(RVA = "0x6554F0", Offset = "0x653EF0", VA = "0x1806554F0")]
|
||||
private static BigInteger FromHex(string hex)
|
||||
{
|
||||
byte[] array = Hex.Decode(hex);
|
||||
return new BigInteger(1, array);
|
||||
}
|
||||
|
||||
// Token: 0x0600A05E RID: 41054 RVA: 0x00253FDC File Offset: 0x002521DC
|
||||
[Token(Token = "0x600A05E")]
|
||||
[Address(RVA = "0x655640", Offset = "0x654040", VA = "0x180655640")]
|
||||
private static DHParameters FromPG(string hexP, string hexG)
|
||||
{
|
||||
BigInteger bigInteger = DHStandardGroups.FromHex(hexP);
|
||||
BigInteger bigInteger2 = DHStandardGroups.FromHex(hexG);
|
||||
return new DHParameters(bigInteger, bigInteger2);
|
||||
}
|
||||
|
||||
// Token: 0x0600A05F RID: 41055 RVA: 0x00254000 File Offset: 0x00252200
|
||||
[Token(Token = "0x600A05F")]
|
||||
[Address(RVA = "0x655580", Offset = "0x653F80", VA = "0x180655580")]
|
||||
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: 0x0600A060 RID: 41056 RVA: 0x0025402C File Offset: 0x0025222C
|
||||
[Token(Token = "0x600A060")]
|
||||
[Address(RVA = "0x6556E0", Offset = "0x6540E0", VA = "0x1806556E0")]
|
||||
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: 0x0600A061 RID: 41057 RVA: 0x00254060 File Offset: 0x00252260
|
||||
[Token(Token = "0x600A061")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public DHStandardGroups()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A062 RID: 41058 RVA: 0x00254074 File Offset: 0x00252274
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600A062")]
|
||||
[Address(RVA = "0x6557E0", Offset = "0x6541E0", VA = "0x1806557E0")]
|
||||
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: 0x0400694F RID: 26959
|
||||
[Token(Token = "0x400694F")]
|
||||
private static readonly string rfc2409_768_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A63A3620FFFFFFFFFFFFFFFF";
|
||||
|
||||
// Token: 0x04006950 RID: 26960
|
||||
[Token(Token = "0x4006950")]
|
||||
private static readonly string rfc2409_768_g = "02";
|
||||
|
||||
// Token: 0x04006951 RID: 26961
|
||||
[Token(Token = "0x4006951")]
|
||||
public static readonly DHParameters rfc2409_768;
|
||||
|
||||
// Token: 0x04006952 RID: 26962
|
||||
[Token(Token = "0x4006952")]
|
||||
private static readonly string rfc2409_1024_p;
|
||||
|
||||
// Token: 0x04006953 RID: 26963
|
||||
[Token(Token = "0x4006953")]
|
||||
private static readonly string rfc2409_1024_g;
|
||||
|
||||
// Token: 0x04006954 RID: 26964
|
||||
[Token(Token = "0x4006954")]
|
||||
public static readonly DHParameters rfc2409_1024;
|
||||
|
||||
// Token: 0x04006955 RID: 26965
|
||||
[Token(Token = "0x4006955")]
|
||||
private static readonly string rfc3526_1536_p;
|
||||
|
||||
// Token: 0x04006956 RID: 26966
|
||||
[Token(Token = "0x4006956")]
|
||||
private static readonly string rfc3526_1536_g;
|
||||
|
||||
// Token: 0x04006957 RID: 26967
|
||||
[Token(Token = "0x4006957")]
|
||||
public static readonly DHParameters rfc3526_1536;
|
||||
|
||||
// Token: 0x04006958 RID: 26968
|
||||
[Token(Token = "0x4006958")]
|
||||
private static readonly string rfc3526_2048_p;
|
||||
|
||||
// Token: 0x04006959 RID: 26969
|
||||
[Token(Token = "0x4006959")]
|
||||
private static readonly string rfc3526_2048_g;
|
||||
|
||||
// Token: 0x0400695A RID: 26970
|
||||
[Token(Token = "0x400695A")]
|
||||
public static readonly DHParameters rfc3526_2048;
|
||||
|
||||
// Token: 0x0400695B RID: 26971
|
||||
[Token(Token = "0x400695B")]
|
||||
private static readonly string rfc3526_3072_p;
|
||||
|
||||
// Token: 0x0400695C RID: 26972
|
||||
[Token(Token = "0x400695C")]
|
||||
private static readonly string rfc3526_3072_g;
|
||||
|
||||
// Token: 0x0400695D RID: 26973
|
||||
[Token(Token = "0x400695D")]
|
||||
public static readonly DHParameters rfc3526_3072;
|
||||
|
||||
// Token: 0x0400695E RID: 26974
|
||||
[Token(Token = "0x400695E")]
|
||||
private static readonly string rfc3526_4096_p;
|
||||
|
||||
// Token: 0x0400695F RID: 26975
|
||||
[Token(Token = "0x400695F")]
|
||||
private static readonly string rfc3526_4096_g;
|
||||
|
||||
// Token: 0x04006960 RID: 26976
|
||||
[Token(Token = "0x4006960")]
|
||||
public static readonly DHParameters rfc3526_4096;
|
||||
|
||||
// Token: 0x04006961 RID: 26977
|
||||
[Token(Token = "0x4006961")]
|
||||
private static readonly string rfc3526_6144_p;
|
||||
|
||||
// Token: 0x04006962 RID: 26978
|
||||
[Token(Token = "0x4006962")]
|
||||
private static readonly string rfc3526_6144_g;
|
||||
|
||||
// Token: 0x04006963 RID: 26979
|
||||
[Token(Token = "0x4006963")]
|
||||
public static readonly DHParameters rfc3526_6144;
|
||||
|
||||
// Token: 0x04006964 RID: 26980
|
||||
[Token(Token = "0x4006964")]
|
||||
private static readonly string rfc3526_8192_p;
|
||||
|
||||
// Token: 0x04006965 RID: 26981
|
||||
[Token(Token = "0x4006965")]
|
||||
private static readonly string rfc3526_8192_g;
|
||||
|
||||
// Token: 0x04006966 RID: 26982
|
||||
[Token(Token = "0x4006966")]
|
||||
public static readonly DHParameters rfc3526_8192;
|
||||
|
||||
// Token: 0x04006967 RID: 26983
|
||||
[Token(Token = "0x4006967")]
|
||||
public static readonly DHParameters rfc4306_768;
|
||||
|
||||
// Token: 0x04006968 RID: 26984
|
||||
[Token(Token = "0x4006968")]
|
||||
public static readonly DHParameters rfc4306_1024;
|
||||
|
||||
// Token: 0x04006969 RID: 26985
|
||||
[Token(Token = "0x4006969")]
|
||||
private static readonly string rfc5114_1024_160_p;
|
||||
|
||||
// Token: 0x0400696A RID: 26986
|
||||
[Token(Token = "0x400696A")]
|
||||
private static readonly string rfc5114_1024_160_g;
|
||||
|
||||
// Token: 0x0400696B RID: 26987
|
||||
[Token(Token = "0x400696B")]
|
||||
private static readonly string rfc5114_1024_160_q;
|
||||
|
||||
// Token: 0x0400696C RID: 26988
|
||||
[Token(Token = "0x400696C")]
|
||||
[Obsolete]
|
||||
public static readonly DHParameters rfc5114_1024_160;
|
||||
|
||||
// Token: 0x0400696D RID: 26989
|
||||
[Token(Token = "0x400696D")]
|
||||
private static readonly string rfc5114_2048_224_p;
|
||||
|
||||
// Token: 0x0400696E RID: 26990
|
||||
[Token(Token = "0x400696E")]
|
||||
private static readonly string rfc5114_2048_224_g;
|
||||
|
||||
// Token: 0x0400696F RID: 26991
|
||||
[Token(Token = "0x400696F")]
|
||||
private static readonly string rfc5114_2048_224_q;
|
||||
|
||||
// Token: 0x04006970 RID: 26992
|
||||
[Token(Token = "0x4006970")]
|
||||
[Obsolete]
|
||||
public static readonly DHParameters rfc5114_2048_224;
|
||||
|
||||
// Token: 0x04006971 RID: 26993
|
||||
[Token(Token = "0x4006971")]
|
||||
private static readonly string rfc5114_2048_256_p;
|
||||
|
||||
// Token: 0x04006972 RID: 26994
|
||||
[Token(Token = "0x4006972")]
|
||||
private static readonly string rfc5114_2048_256_g;
|
||||
|
||||
// Token: 0x04006973 RID: 26995
|
||||
[Token(Token = "0x4006973")]
|
||||
private static readonly string rfc5114_2048_256_q;
|
||||
|
||||
// Token: 0x04006974 RID: 26996
|
||||
[Token(Token = "0x4006974")]
|
||||
[Obsolete]
|
||||
public static readonly DHParameters rfc5114_2048_256;
|
||||
|
||||
// Token: 0x04006975 RID: 26997
|
||||
[Token(Token = "0x4006975")]
|
||||
public static readonly DHParameters rfc5996_768;
|
||||
|
||||
// Token: 0x04006976 RID: 26998
|
||||
[Token(Token = "0x4006976")]
|
||||
public static readonly DHParameters rfc5996_1024;
|
||||
|
||||
// Token: 0x04006977 RID: 26999
|
||||
[Token(Token = "0x4006977")]
|
||||
private static readonly string rfc7919_ffdhe2048_p;
|
||||
|
||||
// Token: 0x04006978 RID: 27000
|
||||
[Token(Token = "0x4006978")]
|
||||
public static readonly DHParameters rfc7919_ffdhe2048;
|
||||
|
||||
// Token: 0x04006979 RID: 27001
|
||||
[Token(Token = "0x4006979")]
|
||||
private static readonly string rfc7919_ffdhe3072_p;
|
||||
|
||||
// Token: 0x0400697A RID: 27002
|
||||
[Token(Token = "0x400697A")]
|
||||
public static readonly DHParameters rfc7919_ffdhe3072;
|
||||
|
||||
// Token: 0x0400697B RID: 27003
|
||||
[Token(Token = "0x400697B")]
|
||||
private static readonly string rfc7919_ffdhe4096_p;
|
||||
|
||||
// Token: 0x0400697C RID: 27004
|
||||
[Token(Token = "0x400697C")]
|
||||
public static readonly DHParameters rfc7919_ffdhe4096;
|
||||
|
||||
// Token: 0x0400697D RID: 27005
|
||||
[Token(Token = "0x400697D")]
|
||||
private static readonly string rfc7919_ffdhe6144_p;
|
||||
|
||||
// Token: 0x0400697E RID: 27006
|
||||
[Token(Token = "0x400697E")]
|
||||
public static readonly DHParameters rfc7919_ffdhe6144;
|
||||
|
||||
// Token: 0x0400697F RID: 27007
|
||||
[Token(Token = "0x400697F")]
|
||||
private static readonly string rfc7919_ffdhe8192_p;
|
||||
|
||||
// Token: 0x04006980 RID: 27008
|
||||
[Token(Token = "0x4006980")]
|
||||
public static readonly DHParameters rfc7919_ffdhe8192;
|
||||
}
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
|
||||
{
|
||||
// Token: 0x0200172B RID: 5931
|
||||
[Token(Token = "0x200172B")]
|
||||
[StructLayout(3)]
|
||||
public class ECDHBasicAgreement : IBasicAgreement
|
||||
{
|
||||
// Token: 0x0600A063 RID: 41059 RVA: 0x00254380 File Offset: 0x00252580
|
||||
[Token(Token = "0x600A063")]
|
||||
[Address(RVA = "0x6581D0", Offset = "0x656BD0", VA = "0x1806581D0", 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: 0x0600A064 RID: 41060 RVA: 0x002543B8 File Offset: 0x002525B8
|
||||
[Token(Token = "0x600A064")]
|
||||
[Address(RVA = "0x658180", Offset = "0x656B80", VA = "0x180658180", Slot = "8")]
|
||||
public virtual int GetFieldSize()
|
||||
{
|
||||
string text = this.privKey.parameters.curve.ToString();
|
||||
text += 0;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600A065 RID: 41061 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600A065")]
|
||||
[Address(RVA = "0x657E90", Offset = "0x656890", VA = "0x180657E90", Slot = "9")]
|
||||
public virtual BigInteger CalculateAgreement(ICipherParameters pubKey)
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600A066 RID: 41062 RVA: 0x002543E4 File Offset: 0x002525E4
|
||||
[Token(Token = "0x600A066")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public ECDHBasicAgreement()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04006981 RID: 27009
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006981")]
|
||||
protected internal ECPrivateKeyParameters privKey;
|
||||
}
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
|
||||
{
|
||||
// Token: 0x0200172C RID: 5932
|
||||
[Token(Token = "0x200172C")]
|
||||
[StructLayout(3)]
|
||||
public class ECDHCBasicAgreement : IBasicAgreement
|
||||
{
|
||||
// Token: 0x0600A067 RID: 41063 RVA: 0x002543F8 File Offset: 0x002525F8
|
||||
[Token(Token = "0x600A067")]
|
||||
[Address(RVA = "0x658590", Offset = "0x656F90", VA = "0x180658590", 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: 0x0600A068 RID: 41064 RVA: 0x00254430 File Offset: 0x00252630
|
||||
[Token(Token = "0x600A068")]
|
||||
[Address(RVA = "0x658180", Offset = "0x656B80", VA = "0x180658180", Slot = "8")]
|
||||
public virtual int GetFieldSize()
|
||||
{
|
||||
string text = this.privKey.parameters.curve.ToString();
|
||||
text += 0;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600A069 RID: 41065 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600A069")]
|
||||
[Address(RVA = "0x658330", Offset = "0x656D30", VA = "0x180658330", Slot = "9")]
|
||||
public virtual BigInteger CalculateAgreement(ICipherParameters pubKey)
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600A06A RID: 41066 RVA: 0x0025445C File Offset: 0x0025265C
|
||||
[Token(Token = "0x600A06A")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public ECDHCBasicAgreement()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04006982 RID: 27010
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006982")]
|
||||
private ECPrivateKeyParameters privKey;
|
||||
}
|
||||
}
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
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: 0x0200172D RID: 5933
|
||||
[Token(Token = "0x200172D")]
|
||||
[StructLayout(3)]
|
||||
public class ECDHWithKdfBasicAgreement : ECDHBasicAgreement
|
||||
{
|
||||
// Token: 0x0600A06B RID: 41067 RVA: 0x00254470 File Offset: 0x00252670
|
||||
[Token(Token = "0x600A06B")]
|
||||
[Address(RVA = "0x658CA0", Offset = "0x6576A0", VA = "0x180658CA0")]
|
||||
public ECDHWithKdfBasicAgreement(string algorithm, IDerivationFunction kdf)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A06B)
|
||||
|
||||
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: 0x0600A06C RID: 41068 RVA: 0x002544B0 File Offset: 0x002526B0
|
||||
[Token(Token = "0x600A06C")]
|
||||
[Address(RVA = "0x658AF0", Offset = "0x6574F0", VA = "0x180658AF0", 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;
|
||||
dhkdfParameters.z = array;
|
||||
int num = 0;
|
||||
dhkdfParameters.extraInfo = num;
|
||||
dhkdfParameters.algorithm = derObjectIdentifier;
|
||||
dhkdfParameters.keySize = defaultKeySize;
|
||||
IDerivationFunction derivationFunction = this.kdf;
|
||||
byte[] array2 = new byte[0];
|
||||
IDerivationFunction derivationFunction2 = this.kdf;
|
||||
int length = array2.Length;
|
||||
return new BigInteger(1, array2);
|
||||
}
|
||||
|
||||
// Token: 0x0600A06D RID: 41069 RVA: 0x00254550 File Offset: 0x00252750
|
||||
[Token(Token = "0x600A06D")]
|
||||
[Address(RVA = "0x658AB0", Offset = "0x6574B0", VA = "0x180658AB0")]
|
||||
private byte[] BigIntToBytes(BigInteger r)
|
||||
{
|
||||
int byteLength = X9IntegerConverter.GetByteLength(this.privKey.parameters.curve);
|
||||
return X9IntegerConverter.IntegerToBytes(r, byteLength);
|
||||
}
|
||||
|
||||
// Token: 0x04006983 RID: 27011
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006983")]
|
||||
private readonly string algorithm;
|
||||
|
||||
// Token: 0x04006984 RID: 27012
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006984")]
|
||||
private readonly IDerivationFunction kdf;
|
||||
}
|
||||
}
|
||||
+88
@@ -0,0 +1,88 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
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: 0x0200172E RID: 5934
|
||||
[Token(Token = "0x200172E")]
|
||||
[StructLayout(3)]
|
||||
public class ECMqvBasicAgreement : IBasicAgreement
|
||||
{
|
||||
// Token: 0x0600A06E RID: 41070 RVA: 0x00254580 File Offset: 0x00252780
|
||||
[Token(Token = "0x600A06E")]
|
||||
[Address(RVA = "0x659370", Offset = "0x657D70", VA = "0x180659370", 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: 0x0600A06F RID: 41071 RVA: 0x002545B8 File Offset: 0x002527B8
|
||||
[Token(Token = "0x600A06F")]
|
||||
[Address(RVA = "0x659310", Offset = "0x657D10", VA = "0x180659310", Slot = "8")]
|
||||
public virtual int GetFieldSize()
|
||||
{
|
||||
string text = this.privParams.ToString().m_stringLength.ToString();
|
||||
text += 0;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600A070 RID: 41072 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600A070")]
|
||||
[Address(RVA = "0x658D70", Offset = "0x657770", VA = "0x180658D70", Slot = "9")]
|
||||
public virtual BigInteger CalculateAgreement(ICipherParameters pubKey)
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600A071 RID: 41073 RVA: 0x002545E4 File Offset: 0x002527E4
|
||||
[Token(Token = "0x600A071")]
|
||||
[Address(RVA = "0x659000", Offset = "0x657A00", VA = "0x180659000")]
|
||||
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: 0x0600A072 RID: 41074 RVA: 0x002546B0 File Offset: 0x002528B0
|
||||
[Token(Token = "0x600A072")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public ECMqvBasicAgreement()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04006985 RID: 27013
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006985")]
|
||||
protected internal MqvPrivateParameters privParams;
|
||||
}
|
||||
}
|
||||
+92
@@ -0,0 +1,92 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
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: 0x0200172F RID: 5935
|
||||
[Token(Token = "0x200172F")]
|
||||
[StructLayout(3)]
|
||||
public class ECMqvWithKdfBasicAgreement : ECMqvBasicAgreement
|
||||
{
|
||||
// Token: 0x0600A073 RID: 41075 RVA: 0x002546C4 File Offset: 0x002528C4
|
||||
[Token(Token = "0x600A073")]
|
||||
[Address(RVA = "0x6596F0", Offset = "0x6580F0", VA = "0x1806596F0")]
|
||||
public ECMqvWithKdfBasicAgreement(string algorithm, IDerivationFunction kdf)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A073)
|
||||
|
||||
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: 0x0600A074 RID: 41076 RVA: 0x00254704 File Offset: 0x00252904
|
||||
[Token(Token = "0x600A074")]
|
||||
[Address(RVA = "0x659530", Offset = "0x657F30", VA = "0x180659530", 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;
|
||||
dhkdfParameters.z = array;
|
||||
int num2 = 0;
|
||||
dhkdfParameters.extraInfo = num2;
|
||||
dhkdfParameters.algorithm = derObjectIdentifier;
|
||||
dhkdfParameters.keySize = defaultKeySize;
|
||||
IDerivationFunction derivationFunction = this.kdf;
|
||||
byte[] array2 = new byte[0];
|
||||
IDerivationFunction derivationFunction2 = this.kdf;
|
||||
int length = array2.Length;
|
||||
return new BigInteger(1, array2);
|
||||
}
|
||||
|
||||
// Token: 0x0600A075 RID: 41077 RVA: 0x002547A8 File Offset: 0x002529A8
|
||||
[Token(Token = "0x600A075")]
|
||||
[Address(RVA = "0x6594D0", Offset = "0x657ED0", VA = "0x1806594D0")]
|
||||
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: 0x04006986 RID: 27014
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006986")]
|
||||
private readonly string algorithm;
|
||||
|
||||
// Token: 0x04006987 RID: 27015
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006987")]
|
||||
private readonly IDerivationFunction kdf;
|
||||
}
|
||||
}
|
||||
+438
@@ -0,0 +1,438 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
|
||||
{
|
||||
// Token: 0x0200173C RID: 5948
|
||||
[Token(Token = "0x200173C")]
|
||||
[StructLayout(3)]
|
||||
public class JPakeParticipant
|
||||
{
|
||||
// Token: 0x0600A0C6 RID: 41158 RVA: 0x00256144 File Offset: 0x00254344
|
||||
[Token(Token = "0x600A0C6")]
|
||||
[Address(RVA = "0x65AF50", Offset = "0x659950", VA = "0x18065AF50")]
|
||||
public JPakeParticipant(string participantId, char[] password)
|
||||
{
|
||||
JPakePrimeOrderGroup nist_ = JPakePrimeOrderGroups.NIST_3072;
|
||||
Sha256Digest sha256Digest = new Sha256Digest();
|
||||
SecureRandom secureRandom = new SecureRandom();
|
||||
}
|
||||
|
||||
// Token: 0x0600A0C7 RID: 41159 RVA: 0x00256164 File Offset: 0x00254364
|
||||
[Token(Token = "0x600A0C7")]
|
||||
[Address(RVA = "0x65B050", Offset = "0x659A50", VA = "0x18065B050")]
|
||||
public JPakeParticipant(string participantId, char[] password, JPakePrimeOrderGroup group)
|
||||
{
|
||||
Sha256Digest sha256Digest = new Sha256Digest();
|
||||
SecureRandom secureRandom = new SecureRandom();
|
||||
}
|
||||
|
||||
// Token: 0x0600A0C8 RID: 41160 RVA: 0x00256180 File Offset: 0x00254380
|
||||
[Token(Token = "0x600A0C8")]
|
||||
[Address(RVA = "0x65B100", Offset = "0x659B00", VA = "0x18065B100")]
|
||||
public JPakeParticipant(string participantId, char[] password, JPakePrimeOrderGroup group, IDigest digest, SecureRandom random)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A0C8)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeParticipant::.ctor(System.String,System.Char[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakePrimeOrderGroup,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,BestHTTP.SecureProtocol.Org.BouncyCastle.Security.SecureRandom)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_A9:
|
||||
stloc:ArgumentNullException(var_6_B3, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("participantId")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001936 RID: 6454
|
||||
// (get) Token: 0x0600A0C9 RID: 41161 RVA: 0x00256244 File Offset: 0x00254444
|
||||
[Token(Token = "0x17001936")]
|
||||
public virtual int State
|
||||
{
|
||||
[Token(Token = "0x600A0C9")]
|
||||
[Address(RVA = "0x54D7F0", Offset = "0x54C1F0", VA = "0x18054D7F0", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return this.state;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600A0CA RID: 41162 RVA: 0x00256258 File Offset: 0x00254458
|
||||
[Token(Token = "0x600A0CA")]
|
||||
[Address(RVA = "0x659A80", Offset = "0x658480", VA = "0x180659A80", Slot = "5")]
|
||||
public virtual JPakeRound1Payload CreateRound1PayloadToSend()
|
||||
{
|
||||
int num = this.state;
|
||||
BigInteger bigInteger = this.q;
|
||||
SecureRandom secureRandom = this.random;
|
||||
BigInteger zero = JPakeUtilities.Zero;
|
||||
BigInteger one = JPakeUtilities.One;
|
||||
BigInteger bigInteger2 = bigInteger.Subtract(one);
|
||||
BigInteger bigInteger3 = BigIntegers.CreateRandomInRange(zero, bigInteger2, secureRandom);
|
||||
BigInteger bigInteger4 = this.q;
|
||||
SecureRandom secureRandom2 = this.random;
|
||||
this.x1 = bigInteger3;
|
||||
BigInteger one2 = JPakeUtilities.One;
|
||||
BigInteger bigInteger5 = bigInteger4.Subtract(one2);
|
||||
BigInteger bigInteger6 = BigIntegers.CreateRandomInRange(one2, bigInteger5, secureRandom2);
|
||||
BigInteger bigInteger7 = this.g;
|
||||
this.x2 = bigInteger6;
|
||||
BigInteger bigInteger8 = this.p;
|
||||
BigInteger bigInteger9 = this.x1;
|
||||
BigInteger bigInteger10 = bigInteger7.ModPow(bigInteger9, bigInteger8);
|
||||
BigInteger bigInteger11 = this.g;
|
||||
this.gx1 = bigInteger10;
|
||||
BigInteger bigInteger12 = this.p;
|
||||
BigInteger bigInteger13 = this.x2;
|
||||
BigInteger bigInteger14 = bigInteger11.ModPow(bigInteger13, bigInteger12);
|
||||
IDigest digest = this.digest;
|
||||
string text = this.participantId;
|
||||
BigInteger bigInteger15 = this.x1;
|
||||
BigInteger bigInteger16 = this.gx1;
|
||||
BigInteger bigInteger17 = this.g;
|
||||
BigInteger bigInteger18 = this.q;
|
||||
BigInteger bigInteger19 = this.p;
|
||||
this.gx2 = bigInteger14;
|
||||
SecureRandom secureRandom3 = this.random;
|
||||
BigInteger[] array = JPakeUtilities.CalculateZeroKnowledgeProof(bigInteger19, bigInteger18, bigInteger17, bigInteger16, bigInteger15, text, digest, secureRandom3);
|
||||
SecureRandom secureRandom4 = this.random;
|
||||
IDigest digest2 = this.digest;
|
||||
string text2 = this.participantId;
|
||||
BigInteger bigInteger20 = this.x2;
|
||||
BigInteger bigInteger21 = this.gx2;
|
||||
BigInteger bigInteger22 = this.g;
|
||||
BigInteger bigInteger23 = this.q;
|
||||
BigInteger[] array2 = JPakeUtilities.CalculateZeroKnowledgeProof(this.p, bigInteger23, bigInteger22, bigInteger21, bigInteger20, text2, digest2, secureRandom4);
|
||||
string text3 = this.participantId;
|
||||
BigInteger bigInteger24 = this.gx1;
|
||||
BigInteger bigInteger25 = this.gx2;
|
||||
int state_ROUND_1_CREATED = JPakeParticipant.STATE_ROUND_1_CREATED;
|
||||
this.state = state_ROUND_1_CREATED;
|
||||
return new JPakeRound1Payload(text3, bigInteger24, bigInteger25, array, array2);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0CB RID: 41163 RVA: 0x00256420 File Offset: 0x00254620
|
||||
[Token(Token = "0x600A0CB")]
|
||||
[Address(RVA = "0x65A460", Offset = "0x658E60", VA = "0x18065A460", Slot = "6")]
|
||||
public virtual void ValidateRound1PayloadReceived(JPakeRound1Payload round1PayloadReceived)
|
||||
{
|
||||
int num = this.state;
|
||||
string text = round1PayloadReceived.ToString();
|
||||
this.partnerParticipantId = text;
|
||||
string text2 = round1PayloadReceived.ParticipantId;
|
||||
this.gx3 = text2;
|
||||
BigInteger bigInteger = round1PayloadReceived.Gx1;
|
||||
this.gx4 = bigInteger;
|
||||
BigInteger bigInteger2 = round1PayloadReceived.Gx2;
|
||||
BigInteger[] knowledgeProofForX = round1PayloadReceived.KnowledgeProofForX1;
|
||||
string text3 = this.participantId;
|
||||
string text4 = round1PayloadReceived.ToString();
|
||||
JPakeUtilities.ValidateParticipantIdsDiffer(text3, text4);
|
||||
BigInteger bigInteger3 = this.gx4;
|
||||
BigInteger bigInteger4 = this.p;
|
||||
string text5 = round1PayloadReceived.ToString();
|
||||
IDigest digest = this.digest;
|
||||
BigInteger bigInteger5 = this.p;
|
||||
BigInteger bigInteger6 = this.q;
|
||||
BigInteger bigInteger7 = this.g;
|
||||
BigInteger bigInteger8 = this.gx4;
|
||||
string text6 = round1PayloadReceived.ToString();
|
||||
IDigest digest2 = this.digest;
|
||||
JPakeUtilities.ValidateZeroKnowledgeProof(bigInteger5, bigInteger6, bigInteger7, bigInteger8, knowledgeProofForX, text6, digest2);
|
||||
int state_ROUND_1_VALIDATED = JPakeParticipant.STATE_ROUND_1_VALIDATED;
|
||||
this.state = state_ROUND_1_VALIDATED;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0CC RID: 41164 RVA: 0x00256510 File Offset: 0x00254710
|
||||
[Token(Token = "0x600A0CC")]
|
||||
[Address(RVA = "0x659DE0", Offset = "0x6587E0", VA = "0x180659DE0", Slot = "7")]
|
||||
public virtual JPakeRound2Payload CreateRound2PayloadToSend()
|
||||
{
|
||||
BigInteger bigInteger11;
|
||||
BigInteger[] array;
|
||||
string text2;
|
||||
for (;;)
|
||||
{
|
||||
int num = this.state;
|
||||
int num2 = this.state;
|
||||
BigInteger bigInteger = this.p;
|
||||
BigInteger bigInteger2 = this.gx1;
|
||||
BigInteger bigInteger3 = this.gx3;
|
||||
BigInteger bigInteger4 = this.gx4;
|
||||
BigInteger bigInteger5 = bigInteger2.Multiply(bigInteger3).Multiply(bigInteger4).Mod(bigInteger);
|
||||
BigInteger bigInteger6 = JPakeUtilities.CalculateS(this.password);
|
||||
BigInteger bigInteger7 = this.x2;
|
||||
BigInteger bigInteger8 = this.q;
|
||||
BigInteger bigInteger9 = bigInteger7.Multiply(bigInteger6).Mod(bigInteger8);
|
||||
BigInteger bigInteger10 = this.p;
|
||||
bigInteger11 = bigInteger5.ModPow(bigInteger9, bigInteger10);
|
||||
SecureRandom secureRandom = this.random;
|
||||
IDigest digest = this.digest;
|
||||
string text = this.participantId;
|
||||
BigInteger bigInteger12 = this.q;
|
||||
array = JPakeUtilities.CalculateZeroKnowledgeProof(this.p, bigInteger12, bigInteger5, bigInteger11, bigInteger9, text, digest, secureRandom);
|
||||
text2 = this.participantId;
|
||||
int state_ROUND_2_CREATED = JPakeParticipant.STATE_ROUND_2_CREATED;
|
||||
this.state = state_ROUND_2_CREATED;
|
||||
if (text2 != 0)
|
||||
{
|
||||
if ((ulong)1L == 0UL)
|
||||
{
|
||||
}
|
||||
if (bigInteger11 != 0)
|
||||
{
|
||||
if ((ulong)1L == 0UL)
|
||||
{
|
||||
}
|
||||
if (array != 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
JPakeRound2Payload jpakeRound2Payload;
|
||||
jpakeRound2Payload.participantId = text2;
|
||||
jpakeRound2Payload.a = bigInteger11;
|
||||
BigInteger[] array2 = new BigInteger[array.Length];
|
||||
jpakeRound2Payload.knowledgeProofForX2s = array2;
|
||||
return jpakeRound2Payload;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0CD RID: 41165 RVA: 0x00256654 File Offset: 0x00254854
|
||||
[Token(Token = "0x600A0CD")]
|
||||
[Address(RVA = "0x65A7A0", Offset = "0x6591A0", VA = "0x18065A7A0", Slot = "8")]
|
||||
public virtual void ValidateRound2PayloadReceived(JPakeRound2Payload round2PayloadReceived)
|
||||
{
|
||||
int num = this.state;
|
||||
int num2 = this.state;
|
||||
BigInteger bigInteger = this.p;
|
||||
BigInteger bigInteger2 = this.gx3;
|
||||
BigInteger bigInteger3 = this.gx1;
|
||||
BigInteger bigInteger4 = this.gx2;
|
||||
BigInteger bigInteger5 = bigInteger2.Multiply(bigInteger3).Multiply(bigInteger4).Mod(bigInteger);
|
||||
string text = round2PayloadReceived.ParticipantId;
|
||||
this.b = text;
|
||||
BigInteger a = round2PayloadReceived.A;
|
||||
string text2 = this.participantId;
|
||||
string text3 = round2PayloadReceived.ToString();
|
||||
JPakeUtilities.ValidateParticipantIdsDiffer(text2, text3);
|
||||
string text4 = this.partnerParticipantId;
|
||||
string text5 = round2PayloadReceived.ToString();
|
||||
JPakeUtilities.ValidateParticipantIdsEqual(text4, text5);
|
||||
BigInteger bigInteger6 = this.p;
|
||||
string text6 = round2PayloadReceived.ToString();
|
||||
IDigest digest = this.digest;
|
||||
int state_ROUND_2_VALIDATED = JPakeParticipant.STATE_ROUND_2_VALIDATED;
|
||||
this.state = state_ROUND_2_VALIDATED;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0CE RID: 41166 RVA: 0x0025672C File Offset: 0x0025492C
|
||||
[Token(Token = "0x600A0CE")]
|
||||
[Address(RVA = "0x6597C0", Offset = "0x6581C0", VA = "0x1806597C0", Slot = "9")]
|
||||
public virtual BigInteger CalculateKeyingMaterial()
|
||||
{
|
||||
int num = this.state;
|
||||
int num2 = this.state;
|
||||
BigInteger bigInteger = JPakeUtilities.CalculateS(this.password);
|
||||
char[] array = this.password;
|
||||
int length = array.Length;
|
||||
int num3 = 0;
|
||||
Array.Clear(array, num3, length);
|
||||
BigInteger bigInteger2 = this.x2;
|
||||
int num4 = 0;
|
||||
BigInteger bigInteger3 = this.p;
|
||||
BigInteger bigInteger4 = this.q;
|
||||
BigInteger bigInteger5 = this.b;
|
||||
BigInteger bigInteger6 = this.gx4;
|
||||
this.password = num4;
|
||||
BigInteger bigInteger7 = bigInteger2.Multiply(bigInteger).Negate().Mod(bigInteger4);
|
||||
BigInteger bigInteger8 = bigInteger6.ModPow(bigInteger7, bigInteger3).Multiply(bigInteger5).ModPow(bigInteger2, bigInteger3);
|
||||
this.x1 = num4;
|
||||
this.x2 = num4;
|
||||
this.b = num4;
|
||||
int state_KEY_CALCULATED = JPakeParticipant.STATE_KEY_CALCULATED;
|
||||
this.state = state_KEY_CALCULATED;
|
||||
return bigInteger8;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0CF RID: 41167 RVA: 0x00256808 File Offset: 0x00254A08
|
||||
[Token(Token = "0x600A0CF")]
|
||||
[Address(RVA = "0x65A210", Offset = "0x658C10", VA = "0x18065A210", Slot = "10")]
|
||||
public virtual JPakeRound3Payload CreateRound3PayloadToSend(BigInteger keyingMaterial)
|
||||
{
|
||||
int num = this.state;
|
||||
int num2 = this.state;
|
||||
IDigest digest = this.digest;
|
||||
string text = this.participantId;
|
||||
string text2 = this.partnerParticipantId;
|
||||
BigInteger bigInteger = this.gx1;
|
||||
BigInteger bigInteger2 = this.gx2;
|
||||
BigInteger bigInteger3 = this.gx3;
|
||||
BigInteger bigInteger4 = this.gx4;
|
||||
BigInteger bigInteger5 = JPakeUtilities.CalculateMacTag(text, text2, bigInteger, bigInteger2, bigInteger3, bigInteger4, keyingMaterial, digest);
|
||||
string text3 = this.participantId;
|
||||
int state_ROUND_3_CREATED = JPakeParticipant.STATE_ROUND_3_CREATED;
|
||||
this.state = state_ROUND_3_CREATED;
|
||||
JPakeRound3Payload jpakeRound3Payload;
|
||||
jpakeRound3Payload.participantId = text3;
|
||||
jpakeRound3Payload.macTag = bigInteger5;
|
||||
return jpakeRound3Payload;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0D0 RID: 41168 RVA: 0x002568A4 File Offset: 0x00254AA4
|
||||
[Token(Token = "0x600A0D0")]
|
||||
[Address(RVA = "0x65AB30", Offset = "0x659530", VA = "0x18065AB30", Slot = "11")]
|
||||
public virtual void ValidateRound3PayloadReceived(JPakeRound3Payload round3PayloadReceived, BigInteger keyingMaterial)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A0D0)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeParticipant::ValidateRound3PayloadReceived(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeRound3Payload,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_CF:
|
||||
stloc:CryptoException(var_18_D9, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Partner MacTag validation failed. Therefore, the password, MAC, or digest algorithm of each participant does not match.")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x040069D6 RID: 27094
|
||||
[Token(Token = "0x40069D6")]
|
||||
public static readonly int STATE_INITIALIZED;
|
||||
|
||||
// Token: 0x040069D7 RID: 27095
|
||||
[Token(Token = "0x40069D7")]
|
||||
public static readonly int STATE_ROUND_1_CREATED;
|
||||
|
||||
// Token: 0x040069D8 RID: 27096
|
||||
[Token(Token = "0x40069D8")]
|
||||
public static readonly int STATE_ROUND_1_VALIDATED;
|
||||
|
||||
// Token: 0x040069D9 RID: 27097
|
||||
[Token(Token = "0x40069D9")]
|
||||
public static readonly int STATE_ROUND_2_CREATED;
|
||||
|
||||
// Token: 0x040069DA RID: 27098
|
||||
[Token(Token = "0x40069DA")]
|
||||
public static readonly int STATE_ROUND_2_VALIDATED;
|
||||
|
||||
// Token: 0x040069DB RID: 27099
|
||||
[Token(Token = "0x40069DB")]
|
||||
public static readonly int STATE_KEY_CALCULATED;
|
||||
|
||||
// Token: 0x040069DC RID: 27100
|
||||
[Token(Token = "0x40069DC")]
|
||||
public static readonly int STATE_ROUND_3_CREATED;
|
||||
|
||||
// Token: 0x040069DD RID: 27101
|
||||
[Token(Token = "0x40069DD")]
|
||||
public static readonly int STATE_ROUND_3_VALIDATED;
|
||||
|
||||
// Token: 0x040069DE RID: 27102
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40069DE")]
|
||||
private string participantId;
|
||||
|
||||
// Token: 0x040069DF RID: 27103
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40069DF")]
|
||||
private char[] password;
|
||||
|
||||
// Token: 0x040069E0 RID: 27104
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40069E0")]
|
||||
private IDigest digest;
|
||||
|
||||
// Token: 0x040069E1 RID: 27105
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40069E1")]
|
||||
private readonly SecureRandom random;
|
||||
|
||||
// Token: 0x040069E2 RID: 27106
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40069E2")]
|
||||
private readonly BigInteger p;
|
||||
|
||||
// Token: 0x040069E3 RID: 27107
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40069E3")]
|
||||
private readonly BigInteger q;
|
||||
|
||||
// Token: 0x040069E4 RID: 27108
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x40069E4")]
|
||||
private readonly BigInteger g;
|
||||
|
||||
// Token: 0x040069E5 RID: 27109
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x40069E5")]
|
||||
private string partnerParticipantId;
|
||||
|
||||
// Token: 0x040069E6 RID: 27110
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x40069E6")]
|
||||
private BigInteger x1;
|
||||
|
||||
// Token: 0x040069E7 RID: 27111
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
|
||||
[Token(Token = "0x40069E7")]
|
||||
private BigInteger x2;
|
||||
|
||||
// Token: 0x040069E8 RID: 27112
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
|
||||
[Token(Token = "0x40069E8")]
|
||||
private BigInteger gx1;
|
||||
|
||||
// Token: 0x040069E9 RID: 27113
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
|
||||
[Token(Token = "0x40069E9")]
|
||||
private BigInteger gx2;
|
||||
|
||||
// Token: 0x040069EA RID: 27114
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
|
||||
[Token(Token = "0x40069EA")]
|
||||
private BigInteger gx3;
|
||||
|
||||
// Token: 0x040069EB RID: 27115
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
|
||||
[Token(Token = "0x40069EB")]
|
||||
private BigInteger gx4;
|
||||
|
||||
// Token: 0x040069EC RID: 27116
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x80")]
|
||||
[Token(Token = "0x40069EC")]
|
||||
private BigInteger b;
|
||||
|
||||
// Token: 0x040069ED RID: 27117
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x88")]
|
||||
[Token(Token = "0x40069ED")]
|
||||
private int state;
|
||||
}
|
||||
}
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
|
||||
{
|
||||
// Token: 0x0200173D RID: 5949
|
||||
[Token(Token = "0x200173D")]
|
||||
[StructLayout(3)]
|
||||
public class JPakePrimeOrderGroup
|
||||
{
|
||||
// Token: 0x0600A0D2 RID: 41170 RVA: 0x0025699C File Offset: 0x00254B9C
|
||||
[Token(Token = "0x600A0D2")]
|
||||
[Address(RVA = "0x65B8A0", Offset = "0x65A2A0", VA = "0x18065B8A0")]
|
||||
public JPakePrimeOrderGroup(BigInteger p, BigInteger q, BigInteger g)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A0D3 RID: 41171 RVA: 0x002569AC File Offset: 0x00254BAC
|
||||
[Token(Token = "0x600A0D3")]
|
||||
[Address(RVA = "0x65B430", Offset = "0x659E30", VA = "0x18065B430")]
|
||||
public JPakePrimeOrderGroup(BigInteger p, BigInteger q, BigInteger g, bool skipChecks)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A0D3)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakePrimeOrderGroup::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,System.Boolean)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_A1:
|
||||
stloc:ArgumentException(var_6_AB, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("p must be prime")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x17001937 RID: 6455
|
||||
// (get) Token: 0x0600A0D4 RID: 41172 RVA: 0x00256A68 File Offset: 0x00254C68
|
||||
[Token(Token = "0x17001937")]
|
||||
public virtual BigInteger P
|
||||
{
|
||||
[Token(Token = "0x600A0D4")]
|
||||
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return this.p;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001938 RID: 6456
|
||||
// (get) Token: 0x0600A0D5 RID: 41173 RVA: 0x00256A7C File Offset: 0x00254C7C
|
||||
[Token(Token = "0x17001938")]
|
||||
public virtual BigInteger Q
|
||||
{
|
||||
[Token(Token = "0x600A0D5")]
|
||||
[Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240", Slot = "5")]
|
||||
get
|
||||
{
|
||||
return this.q;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001939 RID: 6457
|
||||
// (get) Token: 0x0600A0D6 RID: 41174 RVA: 0x00256A90 File Offset: 0x00254C90
|
||||
[Token(Token = "0x17001939")]
|
||||
public virtual BigInteger G
|
||||
{
|
||||
[Token(Token = "0x600A0D6")]
|
||||
[Address(RVA = "0x3C1220", Offset = "0x3BFC20", VA = "0x1803C1220", Slot = "6")]
|
||||
get
|
||||
{
|
||||
return this.g;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040069EE RID: 27118
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40069EE")]
|
||||
private readonly BigInteger p;
|
||||
|
||||
// Token: 0x040069EF RID: 27119
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40069EF")]
|
||||
private readonly BigInteger q;
|
||||
|
||||
// Token: 0x040069F0 RID: 27120
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40069F0")]
|
||||
private readonly BigInteger g;
|
||||
}
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
|
||||
{
|
||||
// Token: 0x0200173E RID: 5950
|
||||
[Token(Token = "0x200173E")]
|
||||
[StructLayout(3)]
|
||||
public class JPakePrimeOrderGroups
|
||||
{
|
||||
// Token: 0x0600A0D7 RID: 41175 RVA: 0x00256AA4 File Offset: 0x00254CA4
|
||||
[Token(Token = "0x600A0D7")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public JPakePrimeOrderGroups()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A0D8 RID: 41176 RVA: 0x00256AB8 File Offset: 0x00254CB8
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600A0D8")]
|
||||
[Address(RVA = "0x65B8C0", Offset = "0x65A2C0", VA = "0x18065B8C0")]
|
||||
static JPakePrimeOrderGroups()
|
||||
{
|
||||
BigInteger bigInteger = new BigInteger("fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b6512669455d402251fb593d8d58fabfc5f5ba30f6cb9b556cd7813b801d346ff26660b76b9950a5a49f9fe8047b1022c24fbba9d7feb7c61bf83b57e7c6a8a6150f04fb83f6d3c51ec3023554135a169132f675f3ae2b61d72aeff22203199dd14801c7", 16);
|
||||
BigInteger bigInteger2 = new BigInteger("9760508f15230bccb292b982a2eb840bf0581cf5", 16);
|
||||
BigInteger bigInteger3 = new BigInteger("f7e1a085d69b3ddecbbcab5c36b857b97994afbbfa3aea82f9574c0b3d0782675159578ebad4594fe67107108180b449167123e84c281613b7cf09328cc8a6e13c167a8b547c8d28e0a3ae1e2bb3a675916ea37f0bfa213562f1fb627a01243bcca4f1bea8519089a883dfe15ae59f06928b665e807b552564014c3bfecf492a", 16);
|
||||
ulong num;
|
||||
JPakePrimeOrderGroups.SUN_JCE_1024 = new JPakePrimeOrderGroup(bigInteger, bigInteger2, bigInteger3, num != 0UL);
|
||||
BigInteger bigInteger4 = new BigInteger("C196BA05AC29E1F9C3C72D56DFFC6154A033F1477AC88EC37F09BE6C5BB95F51C296DD20D1A28A067CCC4D4316A4BD1DCA55ED1066D438C35AEBAABF57E7DAE428782A95ECA1C143DB701FD48533A3C18F0FE23557EA7AE619ECACC7E0B51652A8776D02A425567DED36EABD90CA33A1E8D988F0BBB92D02D1D20290113BB562CE1FC856EEB7CDD92D33EEA6F410859B179E7E789A8F75F645FAE2E136D252BFFAFF89528945C1ABE705A38DBC2D364AADE99BE0D0AAD82E5320121496DC65B3930E38047294FF877831A16D5228418DE8AB275D7D75651CEFED65F78AFC3EA7FE4D79B35F62A0402A1117599ADAC7B269A59F353CF450E6982D3B1702D9CA83", 16);
|
||||
BigInteger bigInteger5 = new BigInteger("90EAF4D1AF0708B1B612FF35E0A2997EB9E9D263C9CE659528945C0D", 16);
|
||||
BigInteger bigInteger6 = new BigInteger("A59A749A11242C58C894E9E5A91804E8FA0AC64B56288F8D47D51B1EDC4D65444FECA0111D78F35FC9FDD4CB1F1B79A3BA9CBEE83A3F811012503C8117F98E5048B089E387AF6949BF8784EBD9EF45876F2E6A5A495BE64B6E770409494B7FEE1DBB1E4B2BC2A53D4F893D418B7159592E4FFFDF6969E91D770DAEBD0B5CB14C00AD68EC7DC1E5745EA55C706C4A1C5C88964E34D09DEB753AD418C1AD0F4FDFD049A955E5D78491C0B7A2F1575A008CCD727AB376DB6E695515B05BD412F5B8C2F4C77EE10DA48ABD53F5DD498927EE7B692BBBCDA2FB23A516C5B4533D73980B2A3B60E384ED200AE21B40D273651AD6060C13D97FD69AA13C5611A51B9085", 16);
|
||||
ulong num2;
|
||||
JPakePrimeOrderGroups.NIST_2048 = new JPakePrimeOrderGroup(bigInteger4, bigInteger5, bigInteger6, num2 != 0UL);
|
||||
BigInteger bigInteger7 = new BigInteger("90066455B5CFC38F9CAA4A48B4281F292C260FEEF01FD61037E56258A7795A1C7AD46076982CE6BB956936C6AB4DCFE05E6784586940CA544B9B2140E1EB523F009D20A7E7880E4E5BFA690F1B9004A27811CD9904AF70420EEFD6EA11EF7DA129F58835FF56B89FAA637BC9AC2EFAAB903402229F491D8D3485261CD068699B6BA58A1DDBBEF6DB51E8FE34E8A78E542D7BA351C21EA8D8F1D29F5D5D15939487E27F4416B0CA632C59EFD1B1EB66511A5A0FBF615B766C5862D0BD8A3FE7A0E0DA0FB2FE1FCB19E8F9996A8EA0FCCDE538175238FC8B0EE6F29AF7F642773EBE8CD5402415A01451A840476B2FCEB0E388D30D4B376C37FE401C2A2C2F941DAD179C540C1C8CE030D460C4D983BE9AB0B20F69144C1AE13F9383EA1C08504FB0BF321503EFE43488310DD8DC77EC5B8349B8BFE97C2C560EA878DE87C11E3D597F1FEA742D73EEC7F37BE43949EF1A0D15C3F3E3FC0A8335617055AC91328EC22B50FC15B941D3D1624CD88BC25F3E941FDDC6200689581BFEC416B4B2CB73", 16);
|
||||
BigInteger bigInteger8 = new BigInteger("CFA0478A54717B08CE64805B76E5B14249A77A4838469DF7F7DC987EFCCFB11D", 16);
|
||||
BigInteger bigInteger9 = new BigInteger("5E5CBA992E0A680D885EB903AEA78E4A45A469103D448EDE3B7ACCC54D521E37F84A4BDD5B06B0970CC2D2BBB715F7B82846F9A0C393914C792E6A923E2117AB805276A975AADB5261D91673EA9AAFFEECBFA6183DFCB5D3B7332AA19275AFA1F8EC0B60FB6F66CC23AE4870791D5982AAD1AA9485FD8F4A60126FEB2CF05DB8A7F0F09B3397F3937F2E90B9E5B9C9B6EFEF642BC48351C46FB171B9BFA9EF17A961CE96C7E7A7CC3D3D03DFAD1078BA21DA425198F07D2481622BCE45969D9C4D6063D72AB7A0F08B2F49A7CC6AF335E08C4720E31476B67299E231F8BD90B39AC3AE3BE0C6B6CACEF8289A2E2873D58E51E029CAFBD55E6841489AB66B5B4B9BA6E2F784660896AFF387D92844CCB8B69475496DE19DA2E58259B090489AC8E62363CDF82CFD8EF2A427ABCD65750B506F56DDE3B988567A88126B914D7828E2B63A6D7ED0747EC59E0E0A23CE7D8A74C1D2C2A7AFB6A29799620F00E11C33787F7DED3B30E1A22D09F1FBDA1ABBBFBF25CAE05A13F812E34563F99410E73B", 16);
|
||||
ulong num3;
|
||||
JPakePrimeOrderGroups.NIST_3072 = new JPakePrimeOrderGroup(bigInteger7, bigInteger8, bigInteger9, num3 != 0UL);
|
||||
}
|
||||
|
||||
// Token: 0x040069F1 RID: 27121
|
||||
[Token(Token = "0x40069F1")]
|
||||
public static readonly JPakePrimeOrderGroup SUN_JCE_1024;
|
||||
|
||||
// Token: 0x040069F2 RID: 27122
|
||||
[Token(Token = "0x40069F2")]
|
||||
public static readonly JPakePrimeOrderGroup NIST_2048;
|
||||
|
||||
// Token: 0x040069F3 RID: 27123
|
||||
[Token(Token = "0x40069F3")]
|
||||
public static readonly JPakePrimeOrderGroup NIST_3072;
|
||||
}
|
||||
}
|
||||
+137
@@ -0,0 +1,137 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
|
||||
{
|
||||
// Token: 0x0200173F RID: 5951
|
||||
[Token(Token = "0x200173F")]
|
||||
[StructLayout(3)]
|
||||
public class JPakeRound1Payload
|
||||
{
|
||||
// Token: 0x0600A0D9 RID: 41177 RVA: 0x00256B74 File Offset: 0x00254D74
|
||||
[Token(Token = "0x600A0D9")]
|
||||
[Address(RVA = "0x65BB10", Offset = "0x65A510", VA = "0x18065BB10")]
|
||||
public JPakeRound1Payload(string participantId, BigInteger gx1, BigInteger gx2, BigInteger[] knowledgeProofForX1, BigInteger[] knowledgeProofForX2)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A0D9)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeRound1Payload::.ctor(System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[],BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_5E:
|
||||
stloc:ArgumentNullException(var_3_68, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("participantId")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x1700193A RID: 6458
|
||||
// (get) Token: 0x0600A0DA RID: 41178 RVA: 0x00256BEC File Offset: 0x00254DEC
|
||||
[Token(Token = "0x1700193A")]
|
||||
public virtual string ParticipantId
|
||||
{
|
||||
[Token(Token = "0x600A0DA")]
|
||||
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return this.participantId;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700193B RID: 6459
|
||||
// (get) Token: 0x0600A0DB RID: 41179 RVA: 0x00256C00 File Offset: 0x00254E00
|
||||
[Token(Token = "0x1700193B")]
|
||||
public virtual BigInteger Gx1
|
||||
{
|
||||
[Token(Token = "0x600A0DB")]
|
||||
[Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240", Slot = "5")]
|
||||
get
|
||||
{
|
||||
return this.gx1;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700193C RID: 6460
|
||||
// (get) Token: 0x0600A0DC RID: 41180 RVA: 0x00256C14 File Offset: 0x00254E14
|
||||
[Token(Token = "0x1700193C")]
|
||||
public virtual BigInteger Gx2
|
||||
{
|
||||
[Token(Token = "0x600A0DC")]
|
||||
[Address(RVA = "0x3C1220", Offset = "0x3BFC20", VA = "0x1803C1220", Slot = "6")]
|
||||
get
|
||||
{
|
||||
return this.gx2;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700193D RID: 6461
|
||||
// (get) Token: 0x0600A0DD RID: 41181 RVA: 0x00256C28 File Offset: 0x00254E28
|
||||
[Token(Token = "0x1700193D")]
|
||||
public virtual BigInteger[] KnowledgeProofForX1
|
||||
{
|
||||
[Token(Token = "0x600A0DD")]
|
||||
[Address(RVA = "0x65BDB0", Offset = "0x65A7B0", VA = "0x18065BDB0", Slot = "7")]
|
||||
get
|
||||
{
|
||||
BigInteger[] array = new BigInteger[this.knowledgeProofForX1.Length];
|
||||
BigInteger[] array2 = this.knowledgeProofForX1;
|
||||
int length = array2.Length;
|
||||
Array.Copy(array2, array, length);
|
||||
return array;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x1700193E RID: 6462
|
||||
// (get) Token: 0x0600A0DE RID: 41182 RVA: 0x00256C64 File Offset: 0x00254E64
|
||||
[Token(Token = "0x1700193E")]
|
||||
public virtual BigInteger[] KnowledgeProofForX2
|
||||
{
|
||||
[Token(Token = "0x600A0DE")]
|
||||
[Address(RVA = "0x65BE20", Offset = "0x65A820", VA = "0x18065BE20", Slot = "8")]
|
||||
get
|
||||
{
|
||||
BigInteger[] array = new BigInteger[this.knowledgeProofForX2.Length];
|
||||
BigInteger[] array2 = this.knowledgeProofForX2;
|
||||
int length = array2.Length;
|
||||
Array.Copy(array2, array, length);
|
||||
return array;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040069F4 RID: 27124
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40069F4")]
|
||||
private readonly string participantId;
|
||||
|
||||
// Token: 0x040069F5 RID: 27125
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40069F5")]
|
||||
private readonly BigInteger gx1;
|
||||
|
||||
// Token: 0x040069F6 RID: 27126
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40069F6")]
|
||||
private readonly BigInteger gx2;
|
||||
|
||||
// Token: 0x040069F7 RID: 27127
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40069F7")]
|
||||
private readonly BigInteger[] knowledgeProofForX1;
|
||||
|
||||
// Token: 0x040069F8 RID: 27128
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40069F8")]
|
||||
private readonly BigInteger[] knowledgeProofForX2;
|
||||
}
|
||||
}
|
||||
+97
@@ -0,0 +1,97 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
|
||||
{
|
||||
// Token: 0x02001740 RID: 5952
|
||||
[Token(Token = "0x2001740")]
|
||||
[StructLayout(3)]
|
||||
public class JPakeRound2Payload
|
||||
{
|
||||
// Token: 0x0600A0DF RID: 41183 RVA: 0x00256CA0 File Offset: 0x00254EA0
|
||||
[Token(Token = "0x600A0DF")]
|
||||
[Address(RVA = "0x65BE90", Offset = "0x65A890", VA = "0x18065BE90")]
|
||||
public JPakeRound2Payload(string participantId, BigInteger a, BigInteger[] knowledgeProofForX2s)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A0DF)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeRound2Payload::.ctor(System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_4D:
|
||||
stloc:ArgumentNullException(var_3_57, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("participantId")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x1700193F RID: 6463
|
||||
// (get) Token: 0x0600A0E0 RID: 41184 RVA: 0x00256D04 File Offset: 0x00254F04
|
||||
[Token(Token = "0x1700193F")]
|
||||
public virtual string ParticipantId
|
||||
{
|
||||
[Token(Token = "0x600A0E0")]
|
||||
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return this.participantId;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001940 RID: 6464
|
||||
// (get) Token: 0x0600A0E1 RID: 41185 RVA: 0x00256D18 File Offset: 0x00254F18
|
||||
[Token(Token = "0x17001940")]
|
||||
public virtual BigInteger A
|
||||
{
|
||||
[Token(Token = "0x600A0E1")]
|
||||
[Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240", Slot = "5")]
|
||||
get
|
||||
{
|
||||
return this.a;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001941 RID: 6465
|
||||
// (get) Token: 0x0600A0E2 RID: 41186 RVA: 0x00256D2C File Offset: 0x00254F2C
|
||||
[Token(Token = "0x17001941")]
|
||||
public virtual BigInteger[] KnowledgeProofForX2s
|
||||
{
|
||||
[Token(Token = "0x600A0E2")]
|
||||
[Address(RVA = "0x65C040", Offset = "0x65AA40", VA = "0x18065C040", Slot = "6")]
|
||||
get
|
||||
{
|
||||
BigInteger[] array = new BigInteger[this.knowledgeProofForX2s.Length];
|
||||
BigInteger[] array2 = this.knowledgeProofForX2s;
|
||||
int length = array2.Length;
|
||||
Array.Copy(array2, array, length);
|
||||
return array;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040069F9 RID: 27129
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40069F9")]
|
||||
private readonly string participantId;
|
||||
|
||||
// Token: 0x040069FA RID: 27130
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40069FA")]
|
||||
private readonly BigInteger a;
|
||||
|
||||
// Token: 0x040069FB RID: 27131
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40069FB")]
|
||||
private readonly BigInteger[] knowledgeProofForX2s;
|
||||
}
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
|
||||
{
|
||||
// Token: 0x02001741 RID: 5953
|
||||
[Token(Token = "0x2001741")]
|
||||
[StructLayout(3)]
|
||||
public class JPakeRound3Payload
|
||||
{
|
||||
// Token: 0x0600A0E3 RID: 41187 RVA: 0x00256D68 File Offset: 0x00254F68
|
||||
[Token(Token = "0x600A0E3")]
|
||||
[Address(RVA = "0x3C39C0", Offset = "0x3C23C0", VA = "0x1803C39C0")]
|
||||
public JPakeRound3Payload(string participantId, BigInteger magTag)
|
||||
{
|
||||
this.participantId = participantId;
|
||||
this.macTag = magTag;
|
||||
}
|
||||
|
||||
// Token: 0x17001942 RID: 6466
|
||||
// (get) Token: 0x0600A0E4 RID: 41188 RVA: 0x00256D8C File Offset: 0x00254F8C
|
||||
[Token(Token = "0x17001942")]
|
||||
public virtual string ParticipantId
|
||||
{
|
||||
[Token(Token = "0x600A0E4")]
|
||||
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0", Slot = "4")]
|
||||
get
|
||||
{
|
||||
return this.participantId;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001943 RID: 6467
|
||||
// (get) Token: 0x0600A0E5 RID: 41189 RVA: 0x00256DA0 File Offset: 0x00254FA0
|
||||
[Token(Token = "0x17001943")]
|
||||
public virtual BigInteger MacTag
|
||||
{
|
||||
[Token(Token = "0x600A0E5")]
|
||||
[Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240", Slot = "5")]
|
||||
get
|
||||
{
|
||||
return this.macTag;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x040069FC RID: 27132
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40069FC")]
|
||||
private readonly string participantId;
|
||||
|
||||
// Token: 0x040069FD RID: 27133
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40069FD")]
|
||||
private readonly BigInteger macTag;
|
||||
}
|
||||
}
|
||||
+413
@@ -0,0 +1,413 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
|
||||
{
|
||||
// Token: 0x02001742 RID: 5954
|
||||
[Token(Token = "0x2001742")]
|
||||
[StructLayout(3)]
|
||||
public abstract class JPakeUtilities
|
||||
{
|
||||
// Token: 0x0600A0E6 RID: 41190 RVA: 0x00256DB4 File Offset: 0x00254FB4
|
||||
[Token(Token = "0x600A0E6")]
|
||||
[Address(RVA = "0x65CCF0", Offset = "0x65B6F0", VA = "0x18065CCF0")]
|
||||
public static BigInteger GenerateX1(BigInteger q, SecureRandom random)
|
||||
{
|
||||
BigInteger zero = JPakeUtilities.Zero;
|
||||
BigInteger one = JPakeUtilities.One;
|
||||
BigInteger bigInteger = q.Subtract(one);
|
||||
return BigIntegers.CreateRandomInRange(zero, bigInteger, random);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0E7 RID: 41191 RVA: 0x00256DE4 File Offset: 0x00254FE4
|
||||
[Token(Token = "0x600A0E7")]
|
||||
[Address(RVA = "0x65CD90", Offset = "0x65B790", VA = "0x18065CD90")]
|
||||
public static BigInteger GenerateX2(BigInteger q, SecureRandom random)
|
||||
{
|
||||
BigInteger one = JPakeUtilities.One;
|
||||
BigInteger bigInteger = q.Subtract(one);
|
||||
return BigIntegers.CreateRandomInRange(one, bigInteger, random);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0E8 RID: 41192 RVA: 0x00256E10 File Offset: 0x00255010
|
||||
[Token(Token = "0x600A0E8")]
|
||||
[Address(RVA = "0x65CA30", Offset = "0x65B430", VA = "0x18065CA30")]
|
||||
public static BigInteger CalculateS(char[] password)
|
||||
{
|
||||
Encoding utf = Encoding.UTF8;
|
||||
BigInteger bigInteger;
|
||||
return bigInteger;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0E9 RID: 41193 RVA: 0x00256E2C File Offset: 0x0025502C
|
||||
[Token(Token = "0x600A0E9")]
|
||||
[Address(RVA = "0x65C140", Offset = "0x65AB40", VA = "0x18065C140")]
|
||||
public static BigInteger CalculateGx(BigInteger p, BigInteger g, BigInteger x)
|
||||
{
|
||||
return g.ModPow(x, p);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0EA RID: 41194 RVA: 0x00256E48 File Offset: 0x00255048
|
||||
[Token(Token = "0x600A0EA")]
|
||||
[Address(RVA = "0x65C0E0", Offset = "0x65AAE0", VA = "0x18065C0E0")]
|
||||
public static BigInteger CalculateGA(BigInteger p, BigInteger gx1, BigInteger gx3, BigInteger gx4)
|
||||
{
|
||||
return gx1.Multiply(gx3).Multiply(gx4).Mod(p);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0EB RID: 41195 RVA: 0x00256E70 File Offset: 0x00255070
|
||||
[Token(Token = "0x600A0EB")]
|
||||
[Address(RVA = "0x65CAB0", Offset = "0x65B4B0", VA = "0x18065CAB0")]
|
||||
public static BigInteger CalculateX2s(BigInteger q, BigInteger x2, BigInteger s)
|
||||
{
|
||||
return x2.Multiply(s).Mod(q);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0EC RID: 41196 RVA: 0x00256E90 File Offset: 0x00255090
|
||||
[Token(Token = "0x600A0EC")]
|
||||
[Address(RVA = "0x65C0B0", Offset = "0x65AAB0", VA = "0x18065C0B0")]
|
||||
public static BigInteger CalculateA(BigInteger p, BigInteger q, BigInteger gA, BigInteger x2s)
|
||||
{
|
||||
return gA.ModPow(x2s, p);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0ED RID: 41197 RVA: 0x00256EAC File Offset: 0x002550AC
|
||||
[Token(Token = "0x600A0ED")]
|
||||
[Address(RVA = "0x65CAF0", Offset = "0x65B4F0", VA = "0x18065CAF0")]
|
||||
public static BigInteger[] CalculateZeroKnowledgeProof(BigInteger p, BigInteger q, BigInteger g, BigInteger gx, BigInteger x, string participantId, IDigest digest, SecureRandom random)
|
||||
{
|
||||
BigInteger zero = JPakeUtilities.Zero;
|
||||
BigInteger one = JPakeUtilities.One;
|
||||
BigInteger bigInteger = q.Subtract(one);
|
||||
BigInteger bigInteger3;
|
||||
BigInteger bigInteger2 = g.ModPow(bigInteger3, p);
|
||||
BigInteger[] array = new BigInteger[2];
|
||||
if (bigInteger2 != 0)
|
||||
{
|
||||
}
|
||||
array[0] = bigInteger2;
|
||||
BigInteger bigInteger5;
|
||||
BigInteger bigInteger4 = bigInteger3.Subtract(bigInteger5).Mod(q);
|
||||
if (bigInteger4 != 0)
|
||||
{
|
||||
}
|
||||
array[1] = bigInteger4;
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0EE RID: 41198 RVA: 0x00256F18 File Offset: 0x00255118
|
||||
[Token(Token = "0x600A0EE")]
|
||||
[Address(RVA = "0x65C170", Offset = "0x65AB70", VA = "0x18065C170")]
|
||||
private static BigInteger CalculateHashForZeroKnowledgeProof(BigInteger g, BigInteger gr, BigInteger gx, string participantId, IDigest digest)
|
||||
{
|
||||
byte[] array = BigIntegers.AsUnsignedByteArray(g);
|
||||
byte[] array2 = BigIntegers.AsUnsignedByteArray(gr);
|
||||
byte[] array3 = BigIntegers.AsUnsignedByteArray(gx);
|
||||
Encoding utf = Encoding.UTF8;
|
||||
byte[] array4;
|
||||
return new BigInteger(array4);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0EF RID: 41199 RVA: 0x00256F50 File Offset: 0x00255150
|
||||
[Token(Token = "0x600A0EF")]
|
||||
[Address(RVA = "0x65D420", Offset = "0x65BE20", VA = "0x18065D420")]
|
||||
public static void ValidateGx4(BigInteger gx4)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A0F0 RID: 41200 RVA: 0x00256F68 File Offset: 0x00255168
|
||||
[Token(Token = "0x600A0F0")]
|
||||
[Address(RVA = "0x65D370", Offset = "0x65BD70", VA = "0x18065D370")]
|
||||
public static void ValidateGa(BigInteger ga)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A0F1 RID: 41201 RVA: 0x00256F80 File Offset: 0x00255180
|
||||
[Token(Token = "0x600A0F1")]
|
||||
[Address(RVA = "0x65D880", Offset = "0x65C280", VA = "0x18065D880")]
|
||||
public static void ValidateZeroKnowledgeProof(BigInteger p, BigInteger q, BigInteger g, BigInteger gx, BigInteger[] zeroKnowledgeProof, string participantId, IDigest digest)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A0F1)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateZeroKnowledgeProof(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[],System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_69:
|
||||
stloc:CryptoException(var_7_73, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Zero-knowledge proof validation failed")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0F2 RID: 41202 RVA: 0x00257004 File Offset: 0x00255204
|
||||
[Token(Token = "0x600A0F2")]
|
||||
[Address(RVA = "0x65C3D0", Offset = "0x65ADD0", VA = "0x18065C3D0")]
|
||||
public static BigInteger CalculateKeyingMaterial(BigInteger p, BigInteger q, BigInteger gx4, BigInteger x2, BigInteger s, BigInteger B)
|
||||
{
|
||||
BigInteger bigInteger2;
|
||||
BigInteger bigInteger = bigInteger2.Negate().Mod(q);
|
||||
BigInteger bigInteger3 = gx4.ModPow(bigInteger, p);
|
||||
BigInteger bigInteger4;
|
||||
return bigInteger4.ModPow(x2, p);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0F3 RID: 41203 RVA: 0x00257038 File Offset: 0x00255238
|
||||
[Token(Token = "0x600A0F3")]
|
||||
[Address(RVA = "0x65D660", Offset = "0x65C060", VA = "0x18065D660")]
|
||||
public static void ValidateParticipantIdsDiffer(string participantId1, string participantId2)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A0F3)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateParticipantIdsDiffer(System.String,System.String)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_0B:
|
||||
stloc:CryptoException(var_0_20, newobj:CryptoException(CryptoException::.ctor, call:string(string::Concat, ldstr:string("Both participants are using the same participantId ("), ldloc:string(participantId1), ldstr:string("). This is not allowed. Each participant must use a unique participantId."))))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0F4 RID: 41204 RVA: 0x00257068 File Offset: 0x00255268
|
||||
[Token(Token = "0x600A0F4")]
|
||||
[Address(RVA = "0x65D700", Offset = "0x65C100", VA = "0x18065D700")]
|
||||
public static void ValidateParticipantIdsEqual(string expectedParticipantId, string actualParticipantId)
|
||||
{
|
||||
if (expectedParticipantId.Equals(actualParticipantId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
string[] array = new string[5];
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600A0F5 RID: 41205 RVA: 0x002570F4 File Offset: 0x002552F4
|
||||
[Token(Token = "0x600A0F5")]
|
||||
[Address(RVA = "0x65D5F0", Offset = "0x65BFF0", VA = "0x18065D5F0")]
|
||||
public static void ValidateNotNull(object obj, string description)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A0F5)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateNotNull(System.Object,System.String)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_05:
|
||||
stloc:ArgumentNullException(var_0_0B, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldloc:string(description)))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0F6 RID: 41206 RVA: 0x0025710C File Offset: 0x0025530C
|
||||
[Token(Token = "0x600A0F6")]
|
||||
[Address(RVA = "0x65C600", Offset = "0x65B000", VA = "0x18065C600")]
|
||||
public static BigInteger CalculateMacTag(string participantId, string partnerParticipantId, BigInteger gx1, BigInteger gx2, BigInteger gx3, BigInteger gx4, BigInteger keyingMaterial, IDigest digest)
|
||||
{
|
||||
Encoding utf = Encoding.UTF8;
|
||||
byte[] array;
|
||||
KeyParameter keyParameter = new KeyParameter(array);
|
||||
HMac hmac;
|
||||
IDigest underlyingDigest = hmac.GetUnderlyingDigest();
|
||||
int num = 0;
|
||||
Arrays.Fill(array, (byte)num);
|
||||
JPakeUtilities.UpdateMac(hmac, "KC_1_U");
|
||||
JPakeUtilities.UpdateMac(hmac, participantId);
|
||||
JPakeUtilities.UpdateMac(hmac, partnerParticipantId);
|
||||
byte[] array2 = BigIntegers.AsUnsignedByteArray(gx1);
|
||||
JPakeUtilities.UpdateMac(hmac, array2);
|
||||
byte[] array3 = BigIntegers.AsUnsignedByteArray(gx2);
|
||||
JPakeUtilities.UpdateMac(hmac, array3);
|
||||
byte[] array4;
|
||||
JPakeUtilities.UpdateMac(hmac, array4);
|
||||
byte[] array5;
|
||||
JPakeUtilities.UpdateMac(hmac, array5);
|
||||
return new BigInteger(MacUtilities.DoFinal(hmac));
|
||||
}
|
||||
|
||||
// Token: 0x0600A0F7 RID: 41207 RVA: 0x002571A4 File Offset: 0x002553A4
|
||||
[Token(Token = "0x600A0F7")]
|
||||
[Address(RVA = "0x65C490", Offset = "0x65AE90", VA = "0x18065C490")]
|
||||
private static byte[] CalculateMacKey(BigInteger keyingMaterial, IDigest digest)
|
||||
{
|
||||
byte[] array = BigIntegers.AsUnsignedByteArray(keyingMaterial);
|
||||
JPakeUtilities.UpdateDigest(digest, array);
|
||||
Encoding utf = Encoding.UTF8;
|
||||
return DigestUtilities.DoFinal(digest);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0F8 RID: 41208 RVA: 0x002571D4 File Offset: 0x002553D4
|
||||
[Token(Token = "0x600A0F8")]
|
||||
[Address(RVA = "0x65D4D0", Offset = "0x65BED0", VA = "0x18065D4D0")]
|
||||
public static void ValidateMacTag(string participantId, string partnerParticipantId, BigInteger gx1, BigInteger gx2, BigInteger gx3, BigInteger gx4, BigInteger keyingMaterial, IDigest digest, BigInteger partnerMacTag)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A0F8)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateMacTag(System.String,System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_05:
|
||||
stloc:CryptoException(var_2_0F, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Partner MacTag validation failed. Therefore, the password, MAC, or digest algorithm of each participant does not match.")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0F9 RID: 41209 RVA: 0x002571F0 File Offset: 0x002553F0
|
||||
[Token(Token = "0x600A0F9")]
|
||||
[Address(RVA = "0x65D030", Offset = "0x65BA30", VA = "0x18065D030")]
|
||||
private static void UpdateDigest(IDigest digest, BigInteger bigInteger)
|
||||
{
|
||||
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
|
||||
JPakeUtilities.UpdateDigest(digest, array);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0FA RID: 41210 RVA: 0x0025720C File Offset: 0x0025540C
|
||||
[Token(Token = "0x600A0FA")]
|
||||
[Address(RVA = "0x65D140", Offset = "0x65BB40", VA = "0x18065D140")]
|
||||
private static void UpdateDigest(IDigest digest, string str)
|
||||
{
|
||||
Encoding utf = Encoding.UTF8;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0FB RID: 41211 RVA: 0x00257228 File Offset: 0x00255428
|
||||
[Token(Token = "0x600A0FB")]
|
||||
[Address(RVA = "0x65D0A0", Offset = "0x65BAA0", VA = "0x18065D0A0")]
|
||||
private static void UpdateDigest(IDigest digest, byte[] bytes)
|
||||
{
|
||||
int length = bytes.Length;
|
||||
int num = 0;
|
||||
Arrays.Fill(bytes, (byte)num);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0FC RID: 41212 RVA: 0x0025724C File Offset: 0x0025544C
|
||||
[Token(Token = "0x600A0FC")]
|
||||
[Address(RVA = "0x65CE40", Offset = "0x65B840", VA = "0x18065CE40")]
|
||||
private static void UpdateDigestIncludingSize(IDigest digest, BigInteger bigInteger)
|
||||
{
|
||||
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
|
||||
JPakeUtilities.UpdateDigestIncludingSize(digest, array);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0FD RID: 41213 RVA: 0x00257268 File Offset: 0x00255468
|
||||
[Token(Token = "0x600A0FD")]
|
||||
[Address(RVA = "0x65CFA0", Offset = "0x65B9A0", VA = "0x18065CFA0")]
|
||||
private static void UpdateDigestIncludingSize(IDigest digest, string str)
|
||||
{
|
||||
Encoding utf = Encoding.UTF8;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0FE RID: 41214 RVA: 0x00257284 File Offset: 0x00255484
|
||||
[Token(Token = "0x600A0FE")]
|
||||
[Address(RVA = "0x65CEB0", Offset = "0x65B8B0", VA = "0x18065CEB0")]
|
||||
private static void UpdateDigestIncludingSize(IDigest digest, byte[] bytes)
|
||||
{
|
||||
byte[] array = Pack.UInt32_To_BE((uint)bytes.Length);
|
||||
int length = bytes.Length;
|
||||
int num = 0;
|
||||
Arrays.Fill(bytes, (byte)num);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0FF RID: 41215 RVA: 0x002572B8 File Offset: 0x002554B8
|
||||
[Token(Token = "0x600A0FF")]
|
||||
[Address(RVA = "0x65D1D0", Offset = "0x65BBD0", VA = "0x18065D1D0")]
|
||||
private static void UpdateMac(IMac mac, BigInteger bigInteger)
|
||||
{
|
||||
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
|
||||
JPakeUtilities.UpdateMac(mac, array);
|
||||
}
|
||||
|
||||
// Token: 0x0600A100 RID: 41216 RVA: 0x002572D4 File Offset: 0x002554D4
|
||||
[Token(Token = "0x600A100")]
|
||||
[Address(RVA = "0x65D2E0", Offset = "0x65BCE0", VA = "0x18065D2E0")]
|
||||
private static void UpdateMac(IMac mac, string str)
|
||||
{
|
||||
Encoding utf = Encoding.UTF8;
|
||||
}
|
||||
|
||||
// Token: 0x0600A101 RID: 41217 RVA: 0x002572F0 File Offset: 0x002554F0
|
||||
[Token(Token = "0x600A101")]
|
||||
[Address(RVA = "0x65D240", Offset = "0x65BC40", VA = "0x18065D240")]
|
||||
private static void UpdateMac(IMac mac, byte[] bytes)
|
||||
{
|
||||
int length = bytes.Length;
|
||||
int num = 0;
|
||||
Arrays.Fill(bytes, (byte)num);
|
||||
}
|
||||
|
||||
// Token: 0x0600A102 RID: 41218 RVA: 0x00257314 File Offset: 0x00255514
|
||||
[Token(Token = "0x600A102")]
|
||||
[Address(RVA = "0x65CE30", Offset = "0x65B830", VA = "0x18065CE30")]
|
||||
private static byte[] IntToByteArray(int value)
|
||||
{
|
||||
return Pack.UInt32_To_BE((uint)value);
|
||||
}
|
||||
|
||||
// Token: 0x0600A103 RID: 41219 RVA: 0x00257328 File Offset: 0x00255528
|
||||
[Token(Token = "0x600A103")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
protected JPakeUtilities()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x040069FE RID: 27134
|
||||
[Token(Token = "0x40069FE")]
|
||||
public static readonly BigInteger Zero = BigInteger.Zero;
|
||||
|
||||
// Token: 0x040069FF RID: 27135
|
||||
[Token(Token = "0x40069FF")]
|
||||
public static readonly BigInteger One = BigInteger.One;
|
||||
}
|
||||
}
|
||||
+147
@@ -0,0 +1,147 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf
|
||||
{
|
||||
// Token: 0x02001738 RID: 5944
|
||||
[Token(Token = "0x2001738")]
|
||||
[StructLayout(3)]
|
||||
public class ConcatenationKdfGenerator : IDerivationFunction
|
||||
{
|
||||
// Token: 0x0600A0B4 RID: 41140 RVA: 0x00255B5C File Offset: 0x00253D5C
|
||||
[Token(Token = "0x600A0B4")]
|
||||
[Address(RVA = "0x654020", Offset = "0x652A20", VA = "0x180654020")]
|
||||
public ConcatenationKdfGenerator(IDigest digest)
|
||||
{
|
||||
this.mDigest = digest;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0B5 RID: 41141 RVA: 0x00255B7C File Offset: 0x00253D7C
|
||||
[Token(Token = "0x600A0B5")]
|
||||
[Address(RVA = "0x653F20", Offset = "0x652920", VA = "0x180653F20", Slot = "7")]
|
||||
public virtual void Init(IDerivationParameters param)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A0B5)
|
||||
|
||||
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: 0x17001931 RID: 6449
|
||||
// (get) Token: 0x0600A0B6 RID: 41142 RVA: 0x00255BB4 File Offset: 0x00253DB4
|
||||
[Token(Token = "0x17001931")]
|
||||
public virtual IDigest Digest
|
||||
{
|
||||
[Token(Token = "0x600A0B6")]
|
||||
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0", Slot = "8")]
|
||||
get
|
||||
{
|
||||
return this.mDigest;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600A0B7 RID: 41143 RVA: 0x00255BC8 File Offset: 0x00253DC8
|
||||
[Token(Token = "0x600A0B7")]
|
||||
[Address(RVA = "0x653A30", Offset = "0x652430", VA = "0x180653A30", 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: 0x040069C5 RID: 27077
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40069C5")]
|
||||
private readonly IDigest mDigest;
|
||||
|
||||
// Token: 0x040069C6 RID: 27078
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40069C6")]
|
||||
private byte[] mShared;
|
||||
|
||||
// Token: 0x040069C7 RID: 27079
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40069C7")]
|
||||
private byte[] mOtherInfo;
|
||||
|
||||
// Token: 0x040069C8 RID: 27080
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40069C8")]
|
||||
private int mHLen;
|
||||
}
|
||||
}
|
||||
+97
@@ -0,0 +1,97 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf
|
||||
{
|
||||
// Token: 0x02001739 RID: 5945
|
||||
[Token(Token = "0x2001739")]
|
||||
[StructLayout(3)]
|
||||
public class DHKdfParameters : IDerivationParameters
|
||||
{
|
||||
// Token: 0x0600A0B8 RID: 41144 RVA: 0x00255D78 File Offset: 0x00253F78
|
||||
[Token(Token = "0x600A0B8")]
|
||||
[Address(RVA = "0x654DD0", Offset = "0x6537D0", VA = "0x180654DD0")]
|
||||
public DHKdfParameters(DerObjectIdentifier algorithm, int keySize, byte[] z)
|
||||
{
|
||||
this.algorithm = algorithm;
|
||||
this.z = z;
|
||||
this.keySize = keySize;
|
||||
this.extraInfo = (ulong)0L;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0B9 RID: 41145 RVA: 0x00255DAC File Offset: 0x00253FAC
|
||||
[Token(Token = "0x600A0B9")]
|
||||
[Address(RVA = "0x654E20", Offset = "0x653820", VA = "0x180654E20")]
|
||||
public DHKdfParameters(DerObjectIdentifier algorithm, int keySize, byte[] z, byte[] extraInfo)
|
||||
{
|
||||
this.algorithm = algorithm;
|
||||
this.z = z;
|
||||
this.extraInfo = 0;
|
||||
this.keySize = keySize;
|
||||
}
|
||||
|
||||
// Token: 0x17001932 RID: 6450
|
||||
// (get) Token: 0x0600A0BA RID: 41146 RVA: 0x00255DDC File Offset: 0x00253FDC
|
||||
[Token(Token = "0x17001932")]
|
||||
public DerObjectIdentifier Algorithm
|
||||
{
|
||||
[Token(Token = "0x600A0BA")]
|
||||
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0")]
|
||||
get
|
||||
{
|
||||
return this.algorithm;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17001933 RID: 6451
|
||||
// (get) Token: 0x0600A0BB RID: 41147 RVA: 0x00255DF0 File Offset: 0x00253FF0
|
||||
[Token(Token = "0x17001933")]
|
||||
public int KeySize
|
||||
{
|
||||
[Token(Token = "0x600A0BB")]
|
||||
[Address(RVA = "0x3EE8D0", Offset = "0x3ED2D0", VA = "0x1803EE8D0")]
|
||||
get
|
||||
{
|
||||
return this.keySize;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600A0BC RID: 41148 RVA: 0x00255E04 File Offset: 0x00254004
|
||||
[Token(Token = "0x600A0BC")]
|
||||
[Address(RVA = "0x3C1220", Offset = "0x3BFC20", VA = "0x1803C1220")]
|
||||
public byte[] GetZ()
|
||||
{
|
||||
return this.z;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0BD RID: 41149 RVA: 0x00255E18 File Offset: 0x00254018
|
||||
[Token(Token = "0x600A0BD")]
|
||||
[Address(RVA = "0x3C1230", Offset = "0x3BFC30", VA = "0x1803C1230")]
|
||||
public byte[] GetExtraInfo()
|
||||
{
|
||||
return this.extraInfo;
|
||||
}
|
||||
|
||||
// Token: 0x040069C9 RID: 27081
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40069C9")]
|
||||
private readonly DerObjectIdentifier algorithm;
|
||||
|
||||
// Token: 0x040069CA RID: 27082
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40069CA")]
|
||||
private readonly int keySize;
|
||||
|
||||
// Token: 0x040069CB RID: 27083
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40069CB")]
|
||||
private readonly byte[] z;
|
||||
|
||||
// Token: 0x040069CC RID: 27084
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40069CC")]
|
||||
private readonly byte[] extraInfo;
|
||||
}
|
||||
}
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf
|
||||
{
|
||||
// Token: 0x0200173A RID: 5946
|
||||
[Token(Token = "0x200173A")]
|
||||
[StructLayout(3)]
|
||||
public class DHKekGenerator : IDerivationFunction
|
||||
{
|
||||
// Token: 0x0600A0BE RID: 41150 RVA: 0x00255E2C File Offset: 0x0025402C
|
||||
[Token(Token = "0x600A0BE")]
|
||||
[Address(RVA = "0x3C3A30", Offset = "0x3C2430", VA = "0x1803C3A30")]
|
||||
public DHKekGenerator(IDigest digest)
|
||||
{
|
||||
this.digest = digest;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0BF RID: 41151 RVA: 0x00255E48 File Offset: 0x00254048
|
||||
[Token(Token = "0x600A0BF")]
|
||||
[Address(RVA = "0x655440", Offset = "0x653E40", VA = "0x180655440", 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: 0x17001934 RID: 6452
|
||||
// (get) Token: 0x0600A0C0 RID: 41152 RVA: 0x00255E80 File Offset: 0x00254080
|
||||
[Token(Token = "0x17001934")]
|
||||
public virtual IDigest Digest
|
||||
{
|
||||
[Token(Token = "0x600A0C0")]
|
||||
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0", Slot = "8")]
|
||||
get
|
||||
{
|
||||
return this.digest;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600A0C1 RID: 41153 RVA: 0x00255E94 File Offset: 0x00254094
|
||||
[Token(Token = "0x600A0C1")]
|
||||
[Address(RVA = "0x654E70", Offset = "0x653870", VA = "0x180654E70", 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: 0x040069CD RID: 27085
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40069CD")]
|
||||
private readonly IDigest digest;
|
||||
|
||||
// Token: 0x040069CE RID: 27086
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40069CE")]
|
||||
private DerObjectIdentifier algorithm;
|
||||
|
||||
// Token: 0x040069CF RID: 27087
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40069CF")]
|
||||
private int keySize;
|
||||
|
||||
// Token: 0x040069D0 RID: 27088
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40069D0")]
|
||||
private byte[] z;
|
||||
|
||||
// Token: 0x040069D1 RID: 27089
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40069D1")]
|
||||
private byte[] partyAInfo;
|
||||
}
|
||||
}
|
||||
+104
@@ -0,0 +1,104 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
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: 0x0200173B RID: 5947
|
||||
[Token(Token = "0x200173B")]
|
||||
[StructLayout(3)]
|
||||
public class ECDHKekGenerator : IDerivationFunction
|
||||
{
|
||||
// Token: 0x0600A0C2 RID: 41154 RVA: 0x00256038 File Offset: 0x00254238
|
||||
[Token(Token = "0x600A0C2")]
|
||||
[Address(RVA = "0x6589F0", Offset = "0x6573F0", VA = "0x1806589F0")]
|
||||
public ECDHKekGenerator(IDigest digest)
|
||||
{
|
||||
Kdf2BytesGenerator kdf2BytesGenerator = new Kdf2BytesGenerator(digest);
|
||||
this.kdf = kdf2BytesGenerator;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0C3 RID: 41155 RVA: 0x0025605C File Offset: 0x0025425C
|
||||
[Token(Token = "0x600A0C3")]
|
||||
[Address(RVA = "0x658950", Offset = "0x657350", VA = "0x180658950", 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: 0x17001935 RID: 6453
|
||||
// (get) Token: 0x0600A0C4 RID: 41156 RVA: 0x0025608C File Offset: 0x0025428C
|
||||
[Token(Token = "0x17001935")]
|
||||
public virtual IDigest Digest
|
||||
{
|
||||
[Token(Token = "0x600A0C4")]
|
||||
[Address(RVA = "0x658A60", Offset = "0x657460", VA = "0x180658A60", Slot = "8")]
|
||||
get
|
||||
{
|
||||
IDerivationFunction derivationFunction = this.kdf;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600A0C5 RID: 41157 RVA: 0x002560A8 File Offset: 0x002542A8
|
||||
[Token(Token = "0x600A0C5")]
|
||||
[Address(RVA = "0x6586F0", Offset = "0x6570F0", VA = "0x1806586F0", 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));
|
||||
DerTaggedObject derTaggedObject = new DerTaggedObject(true, 2, derOctetString);
|
||||
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;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x040069D2 RID: 27090
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40069D2")]
|
||||
private readonly IDerivationFunction kdf;
|
||||
|
||||
// Token: 0x040069D3 RID: 27091
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40069D3")]
|
||||
private DerObjectIdentifier algorithm;
|
||||
|
||||
// Token: 0x040069D4 RID: 27092
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40069D4")]
|
||||
private int keySize;
|
||||
|
||||
// Token: 0x040069D5 RID: 27093
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40069D5")]
|
||||
private byte[] z;
|
||||
}
|
||||
}
|
||||
+340
@@ -0,0 +1,340 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
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: 0x02001730 RID: 5936
|
||||
[Token(Token = "0x2001730")]
|
||||
[StructLayout(3)]
|
||||
public class SM2KeyExchange
|
||||
{
|
||||
// Token: 0x0600A076 RID: 41078 RVA: 0x002547D8 File Offset: 0x002529D8
|
||||
[Token(Token = "0x600A076")]
|
||||
[Address(RVA = "0x665130", Offset = "0x663B30", VA = "0x180665130")]
|
||||
public SM2KeyExchange()
|
||||
{
|
||||
SM3Digest sm3Digest = new SM3Digest();
|
||||
base..ctor();
|
||||
this.mDigest = sm3Digest;
|
||||
}
|
||||
|
||||
// Token: 0x0600A077 RID: 41079 RVA: 0x002547F8 File Offset: 0x002529F8
|
||||
[Token(Token = "0x600A077")]
|
||||
[Address(RVA = "0x3C3A30", Offset = "0x3C2430", VA = "0x1803C3A30")]
|
||||
public SM2KeyExchange(IDigest digest)
|
||||
{
|
||||
this.mDigest = digest;
|
||||
}
|
||||
|
||||
// Token: 0x0600A078 RID: 41080 RVA: 0x00254814 File Offset: 0x00252A14
|
||||
[Token(Token = "0x600A078")]
|
||||
[Address(RVA = "0x664760", Offset = "0x663160", VA = "0x180664760", 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: 0x0600A079 RID: 41081 RVA: 0x002548DC File Offset: 0x00252ADC
|
||||
[Token(Token = "0x600A079")]
|
||||
[Address(RVA = "0x663FA0", Offset = "0x6629A0", VA = "0x180663FA0", 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: 0x0600A07A RID: 41082 RVA: 0x0025497C File Offset: 0x00252B7C
|
||||
[Token(Token = "0x600A07A")]
|
||||
[Address(RVA = "0x6638E0", Offset = "0x6622E0", VA = "0x1806638E0", Slot = "6")]
|
||||
public virtual byte[][] CalculateKeyWithConfirmation(int kLen, byte[] confirmationTag, ICipherParameters pubParam)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A07A)
|
||||
|
||||
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: 0x0600A07B RID: 41083 RVA: 0x00254AD0 File Offset: 0x00252CD0
|
||||
[Token(Token = "0x600A07B")]
|
||||
[Address(RVA = "0x6642A0", Offset = "0x662CA0", VA = "0x1806642A0", 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: 0x0600A07C RID: 41084 RVA: 0x00254BD8 File Offset: 0x00252DD8
|
||||
[Token(Token = "0x600A07C")]
|
||||
[Address(RVA = "0x664A70", Offset = "0x663470", VA = "0x180664A70", 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: 0x0600A07D RID: 41085 RVA: 0x00254CEC File Offset: 0x00252EEC
|
||||
[Token(Token = "0x600A07D")]
|
||||
[Address(RVA = "0x664E60", Offset = "0x663860", VA = "0x180664E60")]
|
||||
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: 0x0600A07E RID: 41086 RVA: 0x00254D40 File Offset: 0x00252F40
|
||||
[Token(Token = "0x600A07E")]
|
||||
[Address(RVA = "0x664F30", Offset = "0x663930", VA = "0x180664F30")]
|
||||
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: 0x0600A07F RID: 41087 RVA: 0x00254D70 File Offset: 0x00252F70
|
||||
[Token(Token = "0x600A07F")]
|
||||
[Address(RVA = "0x663720", Offset = "0x662120", VA = "0x180663720")]
|
||||
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: 0x0600A080 RID: 41088 RVA: 0x00254D9C File Offset: 0x00252F9C
|
||||
[Token(Token = "0x600A080")]
|
||||
[Address(RVA = "0x665030", Offset = "0x663A30", VA = "0x180665030")]
|
||||
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: 0x0600A081 RID: 41089 RVA: 0x00254DCC File Offset: 0x00252FCC
|
||||
[Token(Token = "0x600A081")]
|
||||
[Address(RVA = "0x664500", Offset = "0x662F00", VA = "0x180664500")]
|
||||
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: 0x0600A082 RID: 41090 RVA: 0x00254E5C File Offset: 0x0025305C
|
||||
[Token(Token = "0x600A082")]
|
||||
[Address(RVA = "0x663670", Offset = "0x662070", VA = "0x180663670")]
|
||||
private void AddUserID(IDigest digest, byte[] userID)
|
||||
{
|
||||
int length = userID.Length;
|
||||
}
|
||||
|
||||
// Token: 0x0600A083 RID: 41091 RVA: 0x00254E78 File Offset: 0x00253078
|
||||
[Token(Token = "0x600A083")]
|
||||
[Address(RVA = "0x6635E0", Offset = "0x661FE0", VA = "0x1806635E0")]
|
||||
private void AddFieldElement(IDigest digest, ECFieldElement v)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04006988 RID: 27016
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006988")]
|
||||
private readonly IDigest mDigest;
|
||||
|
||||
// Token: 0x04006989 RID: 27017
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006989")]
|
||||
private byte[] mUserID;
|
||||
|
||||
// Token: 0x0400698A RID: 27018
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400698A")]
|
||||
private ECPrivateKeyParameters mStaticKey;
|
||||
|
||||
// Token: 0x0400698B RID: 27019
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400698B")]
|
||||
private ECPoint mStaticPubPoint;
|
||||
|
||||
// Token: 0x0400698C RID: 27020
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x400698C")]
|
||||
private ECPoint mEphemeralPubPoint;
|
||||
|
||||
// Token: 0x0400698D RID: 27021
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x400698D")]
|
||||
private ECDomainParameters mECParams;
|
||||
|
||||
// Token: 0x0400698E RID: 27022
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x400698E")]
|
||||
private int mW;
|
||||
|
||||
// Token: 0x0400698F RID: 27023
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x400698F")]
|
||||
private ECPrivateKeyParameters mEphemeralKey;
|
||||
|
||||
// Token: 0x04006990 RID: 27024
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x4006990")]
|
||||
private bool mInitiator;
|
||||
}
|
||||
}
|
||||
+277
@@ -0,0 +1,277 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
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: 0x02001733 RID: 5939
|
||||
[Token(Token = "0x2001733")]
|
||||
[StructLayout(3)]
|
||||
public class Srp6Client
|
||||
{
|
||||
// Token: 0x0600A08C RID: 41100 RVA: 0x00254F7C File Offset: 0x0025317C
|
||||
[Token(Token = "0x600A08C")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public Srp6Client()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A08D RID: 41101 RVA: 0x00254F90 File Offset: 0x00253190
|
||||
[Token(Token = "0x600A08D")]
|
||||
[Address(RVA = "0x669090", Offset = "0x667A90", VA = "0x180669090", 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: 0x0600A08E RID: 41102 RVA: 0x00254FBC File Offset: 0x002531BC
|
||||
[Token(Token = "0x600A08E")]
|
||||
[Address(RVA = "0x6690B0", Offset = "0x667AB0", VA = "0x1806690B0", Slot = "5")]
|
||||
public virtual void Init(Srp6GroupParameters group, IDigest digest, SecureRandom random)
|
||||
{
|
||||
string text = this.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x0600A08F RID: 41103 RVA: 0x00254FD8 File Offset: 0x002531D8
|
||||
[Token(Token = "0x600A08F")]
|
||||
[Address(RVA = "0x669020", Offset = "0x667A20", VA = "0x180669020", 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: 0x0600A090 RID: 41104 RVA: 0x00255038 File Offset: 0x00253238
|
||||
[Token(Token = "0x600A090")]
|
||||
[Address(RVA = "0x668E60", Offset = "0x667860", VA = "0x180668E60", 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.CalculateU(digest, n, bigInteger2, bigInteger);
|
||||
BigInteger bigInteger4 = this.g;
|
||||
BigInteger n2 = this.N;
|
||||
IDigest digest2 = this.digest;
|
||||
this.u = bigInteger3;
|
||||
BigInteger bigInteger5 = Srp6Utilities.CalculateK(digest2, 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: 0x0600A091 RID: 41105 RVA: 0x0025515C File Offset: 0x0025335C
|
||||
[Token(Token = "0x600A091")]
|
||||
[Address(RVA = "0x6690F0", Offset = "0x667AF0", VA = "0x1806690F0", 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: 0x0600A092 RID: 41106 RVA: 0x0025518C File Offset: 0x0025338C
|
||||
[Token(Token = "0x600A092")]
|
||||
[Address(RVA = "0x668D60", Offset = "0x667760", VA = "0x180668D60")]
|
||||
private BigInteger CalculateS()
|
||||
{
|
||||
BigInteger bigInteger = this.g;
|
||||
BigInteger n = this.N;
|
||||
BigInteger bigInteger2 = Srp6Utilities.CalculateK(this.digest, 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: 0x0600A093 RID: 41107 RVA: 0x0025525C File Offset: 0x0025345C
|
||||
[Token(Token = "0x600A093")]
|
||||
[Address(RVA = "0x668CC0", Offset = "0x6676C0", VA = "0x180668CC0", Slot = "9")]
|
||||
public virtual BigInteger CalculateClientEvidenceMessage()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A093)
|
||||
|
||||
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: 0x0600A094 RID: 41108 RVA: 0x002552B8 File Offset: 0x002534B8
|
||||
[Token(Token = "0x600A094")]
|
||||
[Address(RVA = "0x669120", Offset = "0x667B20", VA = "0x180669120", Slot = "10")]
|
||||
public virtual bool VerifyServerEvidenceMessage(BigInteger serverM2)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A094)
|
||||
|
||||
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: 0x0600A095 RID: 41109 RVA: 0x00255314 File Offset: 0x00253514
|
||||
[Token(Token = "0x600A095")]
|
||||
[Address(RVA = "0x668F90", Offset = "0x667990", VA = "0x180668F90", Slot = "11")]
|
||||
public virtual BigInteger CalculateSessionKey()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A095)
|
||||
|
||||
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: 0x04006993 RID: 27027
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006993")]
|
||||
protected BigInteger N;
|
||||
|
||||
// Token: 0x04006994 RID: 27028
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006994")]
|
||||
protected BigInteger g;
|
||||
|
||||
// Token: 0x04006995 RID: 27029
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006995")]
|
||||
protected BigInteger privA;
|
||||
|
||||
// Token: 0x04006996 RID: 27030
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4006996")]
|
||||
protected BigInteger pubA;
|
||||
|
||||
// Token: 0x04006997 RID: 27031
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4006997")]
|
||||
protected BigInteger B;
|
||||
|
||||
// Token: 0x04006998 RID: 27032
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4006998")]
|
||||
protected BigInteger x;
|
||||
|
||||
// Token: 0x04006999 RID: 27033
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x4006999")]
|
||||
protected BigInteger u;
|
||||
|
||||
// Token: 0x0400699A RID: 27034
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x400699A")]
|
||||
protected BigInteger S;
|
||||
|
||||
// Token: 0x0400699B RID: 27035
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x400699B")]
|
||||
protected BigInteger M1;
|
||||
|
||||
// Token: 0x0400699C RID: 27036
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
|
||||
[Token(Token = "0x400699C")]
|
||||
protected BigInteger M2;
|
||||
|
||||
// Token: 0x0400699D RID: 27037
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
|
||||
[Token(Token = "0x400699D")]
|
||||
protected BigInteger Key;
|
||||
|
||||
// Token: 0x0400699E RID: 27038
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
|
||||
[Token(Token = "0x400699E")]
|
||||
protected IDigest digest;
|
||||
|
||||
// Token: 0x0400699F RID: 27039
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
|
||||
[Token(Token = "0x400699F")]
|
||||
protected SecureRandom random;
|
||||
}
|
||||
}
|
||||
+279
@@ -0,0 +1,279 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
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: 0x02001734 RID: 5940
|
||||
[Token(Token = "0x2001734")]
|
||||
[StructLayout(3)]
|
||||
public class Srp6Server
|
||||
{
|
||||
// Token: 0x0600A096 RID: 41110 RVA: 0x0025536C File Offset: 0x0025356C
|
||||
[Token(Token = "0x600A096")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public Srp6Server()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A097 RID: 41111 RVA: 0x00255380 File Offset: 0x00253580
|
||||
[Token(Token = "0x600A097")]
|
||||
[Address(RVA = "0x2187FC0", Offset = "0x21869C0", VA = "0x182187FC0", 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: 0x0600A098 RID: 41112 RVA: 0x002553B0 File Offset: 0x002535B0
|
||||
[Token(Token = "0x600A098")]
|
||||
[Address(RVA = "0x2187F70", Offset = "0x2186970", VA = "0x182187F70", Slot = "5")]
|
||||
public virtual void Init(Srp6GroupParameters group, BigInteger v, IDigest digest, SecureRandom random)
|
||||
{
|
||||
string text = this.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x0600A099 RID: 41113 RVA: 0x002553CC File Offset: 0x002535CC
|
||||
[Token(Token = "0x600A099")]
|
||||
[Address(RVA = "0x2187EA0", Offset = "0x21868A0", VA = "0x182187EA0", 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: 0x0600A09A RID: 41114 RVA: 0x00255478 File Offset: 0x00253678
|
||||
[Token(Token = "0x600A09A")]
|
||||
[Address(RVA = "0x2187B00", Offset = "0x2186500", VA = "0x182187B00", Slot = "7")]
|
||||
public virtual BigInteger CalculateSecret(BigInteger clientA)
|
||||
{
|
||||
BigInteger n = this.N;
|
||||
BigInteger bigInteger = clientA.Mod(n);
|
||||
BigInteger bigInteger2 = this.pubB;
|
||||
BigInteger n2 = this.N;
|
||||
IDigest digest = this.digest;
|
||||
this.A = bigInteger;
|
||||
BigInteger bigInteger3 = Srp6Utilities.HashPaddedPair(digest, n2, bigInteger, bigInteger2);
|
||||
BigInteger bigInteger4 = this.v;
|
||||
this.u = bigInteger3;
|
||||
BigInteger n3 = this.N;
|
||||
BigInteger bigInteger5 = bigInteger4.ModPow(bigInteger3, n3);
|
||||
BigInteger a = this.A;
|
||||
BigInteger bigInteger6 = bigInteger5.Multiply(a);
|
||||
BigInteger n4 = this.N;
|
||||
BigInteger bigInteger7 = bigInteger6.Mod(n4);
|
||||
BigInteger n5 = this.N;
|
||||
BigInteger bigInteger8 = this.privB;
|
||||
BigInteger bigInteger9 = bigInteger7.ModPow(bigInteger8, n5);
|
||||
this.S = bigInteger9;
|
||||
return bigInteger9;
|
||||
}
|
||||
|
||||
// Token: 0x0600A09B RID: 41115 RVA: 0x00255544 File Offset: 0x00253744
|
||||
[Token(Token = "0x600A09B")]
|
||||
[Address(RVA = "0x2187FE0", Offset = "0x21869E0", VA = "0x182187FE0", Slot = "8")]
|
||||
protected virtual BigInteger SelectPrivateValue()
|
||||
{
|
||||
BigInteger n = this.N;
|
||||
SecureRandom secureRandom = this.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, secureRandom);
|
||||
}
|
||||
|
||||
// Token: 0x0600A09C RID: 41116 RVA: 0x002555B0 File Offset: 0x002537B0
|
||||
[Token(Token = "0x600A09C")]
|
||||
[Address(RVA = "0x2187A90", Offset = "0x2186490", VA = "0x182187A90")]
|
||||
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: 0x0600A09D RID: 41117 RVA: 0x00255624 File Offset: 0x00253824
|
||||
[Token(Token = "0x600A09D")]
|
||||
[Address(RVA = "0x21880F0", Offset = "0x2186AF0", VA = "0x1821880F0", Slot = "9")]
|
||||
public virtual bool VerifyClientEvidenceMessage(BigInteger clientM1)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A09D)
|
||||
|
||||
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: 0x0600A09E RID: 41118 RVA: 0x00255680 File Offset: 0x00253880
|
||||
[Token(Token = "0x600A09E")]
|
||||
[Address(RVA = "0x2187C70", Offset = "0x2186670", VA = "0x182187C70", Slot = "10")]
|
||||
public virtual BigInteger CalculateServerEvidenceMessage()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A09E)
|
||||
|
||||
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: 0x0600A09F RID: 41119 RVA: 0x002556DC File Offset: 0x002538DC
|
||||
[Token(Token = "0x600A09F")]
|
||||
[Address(RVA = "0x2187D10", Offset = "0x2186710", VA = "0x182187D10", Slot = "11")]
|
||||
public virtual BigInteger CalculateSessionKey()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A09F)
|
||||
|
||||
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_77:
|
||||
stloc:CryptoException(var_10_81, 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: 0x040069A0 RID: 27040
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40069A0")]
|
||||
protected BigInteger N;
|
||||
|
||||
// Token: 0x040069A1 RID: 27041
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40069A1")]
|
||||
protected BigInteger g;
|
||||
|
||||
// Token: 0x040069A2 RID: 27042
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40069A2")]
|
||||
protected BigInteger v;
|
||||
|
||||
// Token: 0x040069A3 RID: 27043
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40069A3")]
|
||||
protected SecureRandom random;
|
||||
|
||||
// Token: 0x040069A4 RID: 27044
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40069A4")]
|
||||
protected IDigest digest;
|
||||
|
||||
// Token: 0x040069A5 RID: 27045
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40069A5")]
|
||||
protected BigInteger A;
|
||||
|
||||
// Token: 0x040069A6 RID: 27046
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x40069A6")]
|
||||
protected BigInteger privB;
|
||||
|
||||
// Token: 0x040069A7 RID: 27047
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x40069A7")]
|
||||
protected BigInteger pubB;
|
||||
|
||||
// Token: 0x040069A8 RID: 27048
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x40069A8")]
|
||||
protected BigInteger u;
|
||||
|
||||
// Token: 0x040069A9 RID: 27049
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
|
||||
[Token(Token = "0x40069A9")]
|
||||
protected BigInteger S;
|
||||
|
||||
// Token: 0x040069AA RID: 27050
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
|
||||
[Token(Token = "0x40069AA")]
|
||||
protected BigInteger M1;
|
||||
|
||||
// Token: 0x040069AB RID: 27051
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
|
||||
[Token(Token = "0x40069AB")]
|
||||
protected BigInteger M2;
|
||||
|
||||
// Token: 0x040069AC RID: 27052
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
|
||||
[Token(Token = "0x40069AC")]
|
||||
protected BigInteger Key;
|
||||
}
|
||||
}
|
||||
+125
@@ -0,0 +1,125 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
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: 0x02001735 RID: 5941
|
||||
[Token(Token = "0x2001735")]
|
||||
[StructLayout(3)]
|
||||
public class Srp6StandardGroups
|
||||
{
|
||||
// Token: 0x0600A0A0 RID: 41120 RVA: 0x0025576C File Offset: 0x0025396C
|
||||
[Token(Token = "0x600A0A0")]
|
||||
[Address(RVA = "0x21881D0", Offset = "0x2186BD0", VA = "0x1821881D0")]
|
||||
private static BigInteger FromHex(string hex)
|
||||
{
|
||||
byte[] array = Hex.Decode(hex);
|
||||
return new BigInteger(1, array);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0A1 RID: 41121 RVA: 0x00255788 File Offset: 0x00253988
|
||||
[Token(Token = "0x600A0A1")]
|
||||
[Address(RVA = "0x2188260", Offset = "0x2186C60", VA = "0x182188260")]
|
||||
private static Srp6GroupParameters FromNG(string hexN, string hexG)
|
||||
{
|
||||
BigInteger bigInteger = Srp6StandardGroups.FromHex(hexN);
|
||||
BigInteger bigInteger2 = Srp6StandardGroups.FromHex(hexG);
|
||||
return new Srp6GroupParameters(bigInteger, bigInteger2);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0A2 RID: 41122 RVA: 0x002557AC File Offset: 0x002539AC
|
||||
[Token(Token = "0x600A0A2")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public Srp6StandardGroups()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x040069AD RID: 27053
|
||||
[Token(Token = "0x40069AD")]
|
||||
private const string rfc5054_1024_N = "EEAF0AB9ADB38DD69C33F80AFA8FC5E86072618775FF3C0B9EA2314C9C256576D674DF7496EA81D3383B4813D692C6E0E0D5D8E250B98BE48E495C1D6089DAD15DC7D7B46154D6B6CE8EF4AD69B15D4982559B297BCF1885C529F566660E57EC68EDBC3C05726CC02FD4CBF4976EAA9AFD5138FE8376435B9FC61D2FC0EB06E3";
|
||||
|
||||
// Token: 0x040069AE RID: 27054
|
||||
[Token(Token = "0x40069AE")]
|
||||
private const string rfc5054_1024_g = "02";
|
||||
|
||||
// Token: 0x040069AF RID: 27055
|
||||
[Token(Token = "0x40069AF")]
|
||||
public static readonly Srp6GroupParameters rfc5054_1024 = Srp6StandardGroups.FromNG("EEAF0AB9ADB38DD69C33F80AFA8FC5E86072618775FF3C0B9EA2314C9C256576D674DF7496EA81D3383B4813D692C6E0E0D5D8E250B98BE48E495C1D6089DAD15DC7D7B46154D6B6CE8EF4AD69B15D4982559B297BCF1885C529F566660E57EC68EDBC3C05726CC02FD4CBF4976EAA9AFD5138FE8376435B9FC61D2FC0EB06E3", "02");
|
||||
|
||||
// Token: 0x040069B0 RID: 27056
|
||||
[Token(Token = "0x40069B0")]
|
||||
private const string rfc5054_1536_N = "9DEF3CAFB939277AB1F12A8617A47BBBDBA51DF499AC4C80BEEEA9614B19CC4D5F4F5F556E27CBDE51C6A94BE4607A291558903BA0D0F84380B655BB9A22E8DCDF028A7CEC67F0D08134B1C8B97989149B609E0BE3BAB63D47548381DBC5B1FC764E3F4B53DD9DA1158BFD3E2B9C8CF56EDF019539349627DB2FD53D24B7C48665772E437D6C7F8CE442734AF7CCB7AE837C264AE3A9BEB87F8A2FE9B8B5292E5A021FFF5E91479E8CE7A28C2442C6F315180F93499A234DCF76E3FED135F9BB";
|
||||
|
||||
// Token: 0x040069B1 RID: 27057
|
||||
[Token(Token = "0x40069B1")]
|
||||
private const string rfc5054_1536_g = "02";
|
||||
|
||||
// Token: 0x040069B2 RID: 27058
|
||||
[Token(Token = "0x40069B2")]
|
||||
public static readonly Srp6GroupParameters rfc5054_1536 = Srp6StandardGroups.FromNG("9DEF3CAFB939277AB1F12A8617A47BBBDBA51DF499AC4C80BEEEA9614B19CC4D5F4F5F556E27CBDE51C6A94BE4607A291558903BA0D0F84380B655BB9A22E8DCDF028A7CEC67F0D08134B1C8B97989149B609E0BE3BAB63D47548381DBC5B1FC764E3F4B53DD9DA1158BFD3E2B9C8CF56EDF019539349627DB2FD53D24B7C48665772E437D6C7F8CE442734AF7CCB7AE837C264AE3A9BEB87F8A2FE9B8B5292E5A021FFF5E91479E8CE7A28C2442C6F315180F93499A234DCF76E3FED135F9BB", "02");
|
||||
|
||||
// Token: 0x040069B3 RID: 27059
|
||||
[Token(Token = "0x40069B3")]
|
||||
private const string rfc5054_2048_N = "AC6BDB41324A9A9BF166DE5E1389582FAF72B6651987EE07FC3192943DB56050A37329CBB4A099ED8193E0757767A13DD52312AB4B03310DCD7F48A9DA04FD50E8083969EDB767B0CF6095179A163AB3661A05FBD5FAAAE82918A9962F0B93B855F97993EC975EEAA80D740ADBF4FF747359D041D5C33EA71D281E446B14773BCA97B43A23FB801676BD207A436C6481F1D2B9078717461A5B9D32E688F87748544523B524B0D57D5EA77A2775D2ECFA032CFBDBF52FB3786160279004E57AE6AF874E7303CE53299CCC041C7BC308D82A5698F3A8D0C38271AE35F8E9DBFBB694B5C803D89F7AE435DE236D525F54759B65E372FCD68EF20FA7111F9E4AFF73";
|
||||
|
||||
// Token: 0x040069B4 RID: 27060
|
||||
[Token(Token = "0x40069B4")]
|
||||
private const string rfc5054_2048_g = "02";
|
||||
|
||||
// Token: 0x040069B5 RID: 27061
|
||||
[Token(Token = "0x40069B5")]
|
||||
public static readonly Srp6GroupParameters rfc5054_2048 = Srp6StandardGroups.FromNG("AC6BDB41324A9A9BF166DE5E1389582FAF72B6651987EE07FC3192943DB56050A37329CBB4A099ED8193E0757767A13DD52312AB4B03310DCD7F48A9DA04FD50E8083969EDB767B0CF6095179A163AB3661A05FBD5FAAAE82918A9962F0B93B855F97993EC975EEAA80D740ADBF4FF747359D041D5C33EA71D281E446B14773BCA97B43A23FB801676BD207A436C6481F1D2B9078717461A5B9D32E688F87748544523B524B0D57D5EA77A2775D2ECFA032CFBDBF52FB3786160279004E57AE6AF874E7303CE53299CCC041C7BC308D82A5698F3A8D0C38271AE35F8E9DBFBB694B5C803D89F7AE435DE236D525F54759B65E372FCD68EF20FA7111F9E4AFF73", "02");
|
||||
|
||||
// Token: 0x040069B6 RID: 27062
|
||||
[Token(Token = "0x40069B6")]
|
||||
private const string rfc5054_3072_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF";
|
||||
|
||||
// Token: 0x040069B7 RID: 27063
|
||||
[Token(Token = "0x40069B7")]
|
||||
private const string rfc5054_3072_g = "05";
|
||||
|
||||
// Token: 0x040069B8 RID: 27064
|
||||
[Token(Token = "0x40069B8")]
|
||||
public static readonly Srp6GroupParameters rfc5054_3072 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF", "05");
|
||||
|
||||
// Token: 0x040069B9 RID: 27065
|
||||
[Token(Token = "0x40069B9")]
|
||||
private const string rfc5054_4096_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF";
|
||||
|
||||
// Token: 0x040069BA RID: 27066
|
||||
[Token(Token = "0x40069BA")]
|
||||
private const string rfc5054_4096_g = "05";
|
||||
|
||||
// Token: 0x040069BB RID: 27067
|
||||
[Token(Token = "0x40069BB")]
|
||||
public static readonly Srp6GroupParameters rfc5054_4096 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF", "05");
|
||||
|
||||
// Token: 0x040069BC RID: 27068
|
||||
[Token(Token = "0x40069BC")]
|
||||
private const string rfc5054_6144_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DCC4024FFFFFFFFFFFFFFFF";
|
||||
|
||||
// Token: 0x040069BD RID: 27069
|
||||
[Token(Token = "0x40069BD")]
|
||||
private const string rfc5054_6144_g = "05";
|
||||
|
||||
// Token: 0x040069BE RID: 27070
|
||||
[Token(Token = "0x40069BE")]
|
||||
public static readonly Srp6GroupParameters rfc5054_6144 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DCC4024FFFFFFFFFFFFFFFF", "05");
|
||||
|
||||
// Token: 0x040069BF RID: 27071
|
||||
[Token(Token = "0x40069BF")]
|
||||
private const string rfc5054_8192_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DBE115974A3926F12FEE5E438777CB6A932DF8CD8BEC4D073B931BA3BC832B68D9DD300741FA7BF8AFC47ED2576F6936BA424663AAB639C5AE4F5683423B4742BF1C978238F16CBE39D652DE3FDB8BEFC848AD922222E04A4037C0713EB57A81A23F0C73473FC646CEA306B4BCBC8862F8385DDFA9D4B7FA2C087E879683303ED5BDD3A062B3CF5B3A278A66D2A13F83F44F82DDF310EE074AB6A364597E899A0255DC164F31CC50846851DF9AB48195DED7EA1B1D510BD7EE74D73FAF36BC31ECFA268359046F4EB879F924009438B481C6CD7889A002ED5EE382BC9190DA6FC026E479558E4475677E9AA9E3050E2765694DFC81F56E880B96E7160C980DD98EDD3DFFFFFFFFFFFFFFFFF";
|
||||
|
||||
// Token: 0x040069C0 RID: 27072
|
||||
[Token(Token = "0x40069C0")]
|
||||
private const string rfc5054_8192_g = "13";
|
||||
|
||||
// Token: 0x040069C1 RID: 27073
|
||||
[Token(Token = "0x40069C1")]
|
||||
public static readonly Srp6GroupParameters rfc5054_8192 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DBE115974A3926F12FEE5E438777CB6A932DF8CD8BEC4D073B931BA3BC832B68D9DD300741FA7BF8AFC47ED2576F6936BA424663AAB639C5AE4F5683423B4742BF1C978238F16CBE39D652DE3FDB8BEFC848AD922222E04A4037C0713EB57A81A23F0C73473FC646CEA306B4BCBC8862F8385DDFA9D4B7FA2C087E879683303ED5BDD3A062B3CF5B3A278A66D2A13F83F44F82DDF310EE074AB6A364597E899A0255DC164F31CC50846851DF9AB48195DED7EA1B1D510BD7EE74D73FAF36BC31ECFA268359046F4EB879F924009438B481C6CD7889A002ED5EE382BC9190DA6FC026E479558E4475677E9AA9E3050E2765694DFC81F56E880B96E7160C980DD98EDD3DFFFFFFFFFFFFFFFFF", "13");
|
||||
}
|
||||
}
|
||||
+165
@@ -0,0 +1,165 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
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: 0x02001736 RID: 5942
|
||||
[Token(Token = "0x2001736")]
|
||||
[StructLayout(3)]
|
||||
public class Srp6Utilities
|
||||
{
|
||||
// Token: 0x0600A0A4 RID: 41124 RVA: 0x0025585C File Offset: 0x00253A5C
|
||||
[Token(Token = "0x600A0A4")]
|
||||
[Address(RVA = "0x2188440", Offset = "0x2186E40", VA = "0x182188440")]
|
||||
public static BigInteger CalculateK(IDigest digest, BigInteger N, BigInteger g)
|
||||
{
|
||||
return Srp6Utilities.HashPaddedPair(digest, N, N, g);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0A5 RID: 41125 RVA: 0x00255874 File Offset: 0x00253A74
|
||||
[Token(Token = "0x600A0A5")]
|
||||
[Address(RVA = "0x2188580", Offset = "0x2186F80", VA = "0x182188580")]
|
||||
public static BigInteger CalculateU(IDigest digest, BigInteger N, BigInteger A, BigInteger B)
|
||||
{
|
||||
return Srp6Utilities.HashPaddedPair(digest, N, A, B);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0A6 RID: 41126 RVA: 0x0025588C File Offset: 0x00253A8C
|
||||
[Token(Token = "0x600A0A6")]
|
||||
[Address(RVA = "0x2188590", Offset = "0x2186F90", VA = "0x182188590")]
|
||||
public static BigInteger CalculateX(IDigest digest, BigInteger N, byte[] salt, byte[] identity, byte[] password)
|
||||
{
|
||||
byte[] array = new byte[0];
|
||||
int length = identity.Length;
|
||||
int num = 0;
|
||||
if (num < identity)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
int length2 = salt.Length;
|
||||
int length3 = array.Length;
|
||||
return new BigInteger(1, array);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0A7 RID: 41127 RVA: 0x002558D4 File Offset: 0x00253AD4
|
||||
[Token(Token = "0x600A0A7")]
|
||||
[Address(RVA = "0x21887B0", Offset = "0x21871B0", VA = "0x1821887B0")]
|
||||
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: 0x0600A0A8 RID: 41128 RVA: 0x0025592C File Offset: 0x00253B2C
|
||||
[Token(Token = "0x600A0A8")]
|
||||
[Address(RVA = "0x2188C70", Offset = "0x2187670", VA = "0x182188C70")]
|
||||
public static BigInteger ValidatePublicValue(BigInteger N, BigInteger val)
|
||||
{
|
||||
return val.Mod(N);
|
||||
}
|
||||
|
||||
// Token: 0x0600A0A9 RID: 41129 RVA: 0x00255954 File Offset: 0x00253B54
|
||||
[Token(Token = "0x600A0A9")]
|
||||
[Address(RVA = "0x2188570", Offset = "0x2186F70", VA = "0x182188570")]
|
||||
public static BigInteger CalculateM1(IDigest digest, BigInteger N, BigInteger A, BigInteger B, BigInteger S)
|
||||
{
|
||||
BigInteger bigInteger;
|
||||
return bigInteger;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0AA RID: 41130 RVA: 0x00255964 File Offset: 0x00253B64
|
||||
[Token(Token = "0x600A0AA")]
|
||||
[Address(RVA = "0x2188570", Offset = "0x2186F70", VA = "0x182188570")]
|
||||
public static BigInteger CalculateM2(IDigest digest, BigInteger N, BigInteger A, BigInteger M1, BigInteger S)
|
||||
{
|
||||
BigInteger bigInteger;
|
||||
return bigInteger;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0AB RID: 41131 RVA: 0x00255974 File Offset: 0x00253B74
|
||||
[Token(Token = "0x600A0AB")]
|
||||
[Address(RVA = "0x2188460", Offset = "0x2186E60", VA = "0x182188460")]
|
||||
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: 0x0600A0AC RID: 41132 RVA: 0x002559BC File Offset: 0x00253BBC
|
||||
[Token(Token = "0x600A0AC")]
|
||||
[Address(RVA = "0x2188AC0", Offset = "0x21874C0", VA = "0x182188AC0")]
|
||||
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: 0x0600A0AD RID: 41133 RVA: 0x00255A1C File Offset: 0x00253C1C
|
||||
[Token(Token = "0x600A0AD")]
|
||||
[Address(RVA = "0x2188960", Offset = "0x2187360", VA = "0x182188960")]
|
||||
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: 0x0600A0AE RID: 41134 RVA: 0x00255A70 File Offset: 0x00253C70
|
||||
[Token(Token = "0x600A0AE")]
|
||||
[Address(RVA = "0x21888C0", Offset = "0x21872C0", VA = "0x1821888C0")]
|
||||
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: 0x0600A0AF RID: 41135 RVA: 0x00255AB0 File Offset: 0x00253CB0
|
||||
[Token(Token = "0x600A0AF")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public Srp6Utilities()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp
|
||||
{
|
||||
// Token: 0x02001737 RID: 5943
|
||||
[Token(Token = "0x2001737")]
|
||||
[StructLayout(3)]
|
||||
public class Srp6VerifierGenerator
|
||||
{
|
||||
// Token: 0x0600A0B0 RID: 41136 RVA: 0x00255AC4 File Offset: 0x00253CC4
|
||||
[Token(Token = "0x600A0B0")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public Srp6VerifierGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A0B1 RID: 41137 RVA: 0x00255AD8 File Offset: 0x00253CD8
|
||||
[Token(Token = "0x600A0B1")]
|
||||
[Address(RVA = "0x2188DA0", Offset = "0x21877A0", VA = "0x182188DA0", Slot = "4")]
|
||||
public virtual void Init(BigInteger N, BigInteger g, IDigest digest)
|
||||
{
|
||||
this.N = N;
|
||||
this.g = g;
|
||||
this.digest = digest;
|
||||
}
|
||||
|
||||
// Token: 0x0600A0B2 RID: 41138 RVA: 0x00255AFC File Offset: 0x00253CFC
|
||||
[Token(Token = "0x600A0B2")]
|
||||
[Address(RVA = "0x2188DB0", Offset = "0x21877B0", VA = "0x182188DB0", Slot = "5")]
|
||||
public virtual void Init(Srp6GroupParameters group, IDigest digest)
|
||||
{
|
||||
string text = this.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x0600A0B3 RID: 41139 RVA: 0x00255B18 File Offset: 0x00253D18
|
||||
[Token(Token = "0x600A0B3")]
|
||||
[Address(RVA = "0x2188D50", Offset = "0x2187750", VA = "0x182188D50", 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: 0x040069C2 RID: 27074
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40069C2")]
|
||||
protected BigInteger N;
|
||||
|
||||
// Token: 0x040069C3 RID: 27075
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40069C3")]
|
||||
protected BigInteger g;
|
||||
|
||||
// Token: 0x040069C4 RID: 27076
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40069C4")]
|
||||
protected IDigest digest;
|
||||
}
|
||||
}
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
|
||||
{
|
||||
// Token: 0x02001731 RID: 5937
|
||||
[Token(Token = "0x2001731")]
|
||||
[StructLayout(3)]
|
||||
public sealed class X25519Agreement : IRawAgreement
|
||||
{
|
||||
// Token: 0x0600A084 RID: 41092 RVA: 0x00254E8C File Offset: 0x0025308C
|
||||
[Token(Token = "0x600A084")]
|
||||
[Address(RVA = "0x2188E90", Offset = "0x2187890", VA = "0x182188E90", Slot = "4")]
|
||||
public void Init(ICipherParameters parameters)
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
}
|
||||
while (parameters != 0 && parameters == 0);
|
||||
this.privateKey = num;
|
||||
}
|
||||
|
||||
// Token: 0x1700192F RID: 6447
|
||||
// (get) Token: 0x0600A085 RID: 41093 RVA: 0x00254EAC File Offset: 0x002530AC
|
||||
[Token(Token = "0x1700192F")]
|
||||
public int AgreementSize
|
||||
{
|
||||
[Token(Token = "0x600A085")]
|
||||
[Address(RVA = "0x2188EF0", Offset = "0x21878F0", VA = "0x182188EF0", Slot = "5")]
|
||||
get
|
||||
{
|
||||
return X25519PrivateKeyParameters.SecretSize;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600A086 RID: 41094 RVA: 0x00254EC0 File Offset: 0x002530C0
|
||||
[Token(Token = "0x600A086")]
|
||||
[Address(RVA = "0x2188DF0", Offset = "0x21877F0", VA = "0x182188DF0", 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: 0x0600A087 RID: 41095 RVA: 0x00254EF0 File Offset: 0x002530F0
|
||||
[Token(Token = "0x600A087")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public X25519Agreement()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04006991 RID: 27025
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006991")]
|
||||
private X25519PrivateKeyParameters privateKey;
|
||||
}
|
||||
}
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
|
||||
{
|
||||
// Token: 0x02001732 RID: 5938
|
||||
[Token(Token = "0x2001732")]
|
||||
[StructLayout(3)]
|
||||
public sealed class X448Agreement : IRawAgreement
|
||||
{
|
||||
// Token: 0x0600A088 RID: 41096 RVA: 0x00254F04 File Offset: 0x00253104
|
||||
[Token(Token = "0x600A088")]
|
||||
[Address(RVA = "0x2188FF0", Offset = "0x21879F0", VA = "0x182188FF0", Slot = "4")]
|
||||
public void Init(ICipherParameters parameters)
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
}
|
||||
while (parameters != 0 && parameters == 0);
|
||||
this.privateKey = num;
|
||||
}
|
||||
|
||||
// Token: 0x17001930 RID: 6448
|
||||
// (get) Token: 0x0600A089 RID: 41097 RVA: 0x00254F24 File Offset: 0x00253124
|
||||
[Token(Token = "0x17001930")]
|
||||
public int AgreementSize
|
||||
{
|
||||
[Token(Token = "0x600A089")]
|
||||
[Address(RVA = "0x2189050", Offset = "0x2187A50", VA = "0x182189050", Slot = "5")]
|
||||
get
|
||||
{
|
||||
return X448PrivateKeyParameters.SecretSize;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600A08A RID: 41098 RVA: 0x00254F38 File Offset: 0x00253138
|
||||
[Token(Token = "0x600A08A")]
|
||||
[Address(RVA = "0x2188F50", Offset = "0x2187950", VA = "0x182188F50", 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: 0x0600A08B RID: 41099 RVA: 0x00254F68 File Offset: 0x00253168
|
||||
[Token(Token = "0x600A08B")]
|
||||
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
||||
public X448Agreement()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04006992 RID: 27026
|
||||
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006992")]
|
||||
private X448PrivateKeyParameters privateKey;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user