372 lines
23 KiB
C#
372 lines
23 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.IO;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls
|
|
{
|
|
// Token: 0x02001B97 RID: 7063
|
|
[Token(Token = "0x2001B97")]
|
|
public class TlsSrpKeyExchange : AbstractTlsKeyExchange
|
|
{
|
|
// Token: 0x0600AFF7 RID: 45047 RVA: 0x00263F4C File Offset: 0x0026214C
|
|
[Token(Token = "0x600AFF7")]
|
|
[Address(RVA = "0x182A730", Offset = "0x1829530", VA = "0x18182A730")]
|
|
protected static TlsSigner CreateSigner(int keyExchange)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600AFF7)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsSigner BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsSrpKeyExchange::CreateSigner(System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:TlsRsaSigner(var_0_05, newobj:TlsRsaSigner(TlsRsaSigner::.ctor))
|
|
stloc:TlsDssSigner(var_1_0B, newobj:TlsDssSigner(TlsDssSigner::.ctor))
|
|
stloc:ArgumentException(var_3_18, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("unsupported key exchange algorithm")))
|
|
}
|
|
|
|
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: 0x0600AFF8 RID: 45048 RVA: 0x00263F74 File Offset: 0x00262174
|
|
[Token(Token = "0x600AFF8")]
|
|
[Address(RVA = "0x182BB80", Offset = "0x182A980", VA = "0x18182BB80")]
|
|
[Obsolete]
|
|
public TlsSrpKeyExchange(int keyExchange, IList supportedSignatureAlgorithms, byte[] identity, byte[] password)
|
|
{
|
|
DefaultTlsSrpGroupVerifier defaultTlsSrpGroupVerifier = new DefaultTlsSrpGroupVerifier();
|
|
base..ctor(keyExchange, supportedSignatureAlgorithms);
|
|
TlsSigner tlsSigner = TlsSrpKeyExchange.CreateSigner(keyExchange);
|
|
this.mTlsSigner = tlsSigner;
|
|
this.mPassword = 0;
|
|
this.mGroupVerifier = defaultTlsSrpGroupVerifier;
|
|
this.mIdentity = identity;
|
|
Srp6Client srp6Client = new Srp6Client();
|
|
this.mSrpClient = srp6Client;
|
|
}
|
|
|
|
// Token: 0x0600AFF9 RID: 45049 RVA: 0x00263FC0 File Offset: 0x002621C0
|
|
[Token(Token = "0x600AFF9")]
|
|
[Address(RVA = "0x182BAE0", Offset = "0x182A8E0", VA = "0x18182BAE0")]
|
|
public TlsSrpKeyExchange(int keyExchange, IList supportedSignatureAlgorithms, TlsSrpGroupVerifier groupVerifier, byte[] identity, byte[] password)
|
|
: base(keyExchange, supportedSignatureAlgorithms)
|
|
{
|
|
TlsSigner tlsSigner = TlsSrpKeyExchange.CreateSigner(keyExchange);
|
|
this.mTlsSigner = tlsSigner;
|
|
this.mIdentity = 0;
|
|
this.mPassword = 0;
|
|
this.mGroupVerifier = groupVerifier;
|
|
Srp6Client srp6Client = new Srp6Client();
|
|
this.mSrpClient = srp6Client;
|
|
}
|
|
|
|
// Token: 0x0600AFFA RID: 45050 RVA: 0x00264008 File Offset: 0x00262208
|
|
[Token(Token = "0x600AFFA")]
|
|
[Address(RVA = "0x182BC60", Offset = "0x182AA60", VA = "0x18182BC60")]
|
|
public TlsSrpKeyExchange(int keyExchange, IList supportedSignatureAlgorithms, byte[] identity, TlsSrpLoginParameters loginParameters)
|
|
: base(keyExchange, supportedSignatureAlgorithms)
|
|
{
|
|
TlsSigner tlsSigner = TlsSrpKeyExchange.CreateSigner(keyExchange);
|
|
this.mTlsSigner = tlsSigner;
|
|
this.mIdentity = identity;
|
|
Srp6Server srp6Server = new Srp6Server();
|
|
this.mSrpServer = srp6Server;
|
|
this.mSrpGroup = srp6Server;
|
|
this.mSrpVerifier = srp6Server;
|
|
this.mSrpSalt = srp6Server;
|
|
}
|
|
|
|
// Token: 0x0600AFFB RID: 45051 RVA: 0x0026405C File Offset: 0x0026225C
|
|
[Token(Token = "0x600AFFB")]
|
|
[Address(RVA = "0x182B030", Offset = "0x1829E30", VA = "0x18182B030", Slot = "20")]
|
|
public override void Init(TlsContext context)
|
|
{
|
|
base.Init(context);
|
|
if (this.mTlsSigner != 0)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600AFFC RID: 45052 RVA: 0x0026407C File Offset: 0x0026227C
|
|
[Token(Token = "0x600AFFC")]
|
|
[Address(RVA = "0x182BA30", Offset = "0x182A830", VA = "0x18182BA30", Slot = "21")]
|
|
public override void SkipServerCredentials()
|
|
{
|
|
while (this.mTlsSigner != (ulong)0L)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600AFFD RID: 45053 RVA: 0x00264094 File Offset: 0x00262294
|
|
[Token(Token = "0x600AFFD")]
|
|
[Address(RVA = "0x182B2F0", Offset = "0x182A0F0", VA = "0x18182B2F0", Slot = "22")]
|
|
public override void ProcessServerCertificate(Certificate serverCertificate)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600AFFD)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsSrpKeyExchange::ProcessServerCertificate(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.Certificate)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_60:
|
|
stloc:TlsFatalAlert(var_7_67, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_8)))
|
|
}
|
|
|
|
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: 0x0600AFFE RID: 45054 RVA: 0x0026410C File Offset: 0x0026230C
|
|
[Token(Token = "0x600AFFE")]
|
|
[Address(RVA = "0x182B550", Offset = "0x182A350", VA = "0x18182B550", Slot = "23")]
|
|
public override void ProcessServerCredentials(TlsCredentials serverCredentials)
|
|
{
|
|
this.SkipServerCredentials();
|
|
}
|
|
|
|
// Token: 0x17001BC8 RID: 7112
|
|
// (get) Token: 0x0600AFFF RID: 45055 RVA: 0x00264120 File Offset: 0x00262320
|
|
[Token(Token = "0x17001BC8")]
|
|
public override bool RequiresServerKeyExchange
|
|
{
|
|
[Token(Token = "0x600AFFF")]
|
|
[Address(RVA = "0x460D40", Offset = "0x45FB40", VA = "0x180460D40", Slot = "24")]
|
|
get
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B000 RID: 45056 RVA: 0x00264130 File Offset: 0x00262330
|
|
[Token(Token = "0x600B000")]
|
|
[Address(RVA = "0x182A9E0", Offset = "0x18297E0", VA = "0x18182A9E0", Slot = "25")]
|
|
public override byte[] GenerateServerKeyExchange()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B000)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsSrpKeyExchange::GenerateServerKeyExchange()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_DB:
|
|
stloc:TlsFatalAlert(var_19_E2, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_20)))
|
|
}
|
|
|
|
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: 0x0600B001 RID: 45057 RVA: 0x00264220 File Offset: 0x00262420
|
|
[Token(Token = "0x600B001")]
|
|
[Address(RVA = "0x182B640", Offset = "0x182A440", VA = "0x18182B640", Slot = "27")]
|
|
public override void ProcessServerKeyExchange(Stream input)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B001)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsSrpKeyExchange::ProcessServerKeyExchange(System.IO.Stream)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_E0:
|
|
stloc:TlsFatalAlert(var_20_E7, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_21)))
|
|
}
|
|
|
|
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: 0x0600B002 RID: 45058 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x600B002")]
|
|
[Address(RVA = "0x182BA90", Offset = "0x182A890", VA = "0x18182BA90", Slot = "28")]
|
|
public override void ValidateCertificateRequest(CertificateRequest certificateRequest)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x0600B003 RID: 45059 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x600B003")]
|
|
[Address(RVA = "0x182B090", Offset = "0x1829E90", VA = "0x18182B090", Slot = "30")]
|
|
public override void ProcessClientCredentials(TlsCredentials clientCredentials)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x0600B004 RID: 45060 RVA: 0x00264318 File Offset: 0x00262518
|
|
[Token(Token = "0x600B004")]
|
|
[Address(RVA = "0x182A7F0", Offset = "0x18295F0", VA = "0x18182A7F0", Slot = "32")]
|
|
public override void GenerateClientKeyExchange(Stream output)
|
|
{
|
|
Srp6Client srp6Client = this.mSrpClient;
|
|
byte[] array;
|
|
TlsUtilities.WriteOpaque16(array, output);
|
|
TlsContext mContext = this.mContext;
|
|
byte[] array2 = Arrays.Clone(this.mIdentity);
|
|
array[6] = array2;
|
|
}
|
|
|
|
// Token: 0x0600B005 RID: 45061 RVA: 0x00264354 File Offset: 0x00262554
|
|
[Token(Token = "0x600B005")]
|
|
[Address(RVA = "0x182B0E0", Offset = "0x1829EE0", VA = "0x18182B0E0", Slot = "33")]
|
|
public override void ProcessClientKeyExchange(Stream input)
|
|
{
|
|
BigInteger n = this.mSrpGroup.n;
|
|
byte[] array = TlsUtilities.ReadOpaque16(input);
|
|
int length = array.Length;
|
|
BigInteger bigInteger;
|
|
bigInteger.nBits = (int)((ulong)(-1L));
|
|
int num = 0;
|
|
int[] array2 = BigInteger.MakeMagnitude(array, num, length);
|
|
bigInteger.magnitude = array2;
|
|
bool flag = array2.Length >= 1;
|
|
bigInteger.sign = (flag ? 1 : 0);
|
|
BigInteger bigInteger2 = Srp6Utilities.ValidatePublicValue(n, bigInteger);
|
|
this.mSrpPeerCredentials = bigInteger2;
|
|
TlsContext mContext = this.mContext;
|
|
byte[] array3 = Arrays.Clone(this.mIdentity);
|
|
}
|
|
|
|
// Token: 0x0600B006 RID: 45062 RVA: 0x002643D8 File Offset: 0x002625D8
|
|
[Token(Token = "0x600B006")]
|
|
[Address(RVA = "0x182A910", Offset = "0x1829710", VA = "0x18182A910", Slot = "34")]
|
|
public override byte[] GeneratePremasterSecret()
|
|
{
|
|
Srp6Server srp6Server = this.mSrpServer;
|
|
if (srp6Server != 0)
|
|
{
|
|
BigInteger bigInteger = srp6Server.GenerateServerCredentials();
|
|
}
|
|
Srp6Client srp6Client = this.mSrpClient;
|
|
BigInteger bigInteger2;
|
|
return BigIntegers.AsUnsignedByteArray(bigInteger2);
|
|
}
|
|
|
|
// Token: 0x0600B007 RID: 45063 RVA: 0x0026440C File Offset: 0x0026260C
|
|
[Token(Token = "0x600B007")]
|
|
[Address(RVA = "0x182AED0", Offset = "0x1829CD0", VA = "0x18182AED0", Slot = "35")]
|
|
protected virtual ISigner InitVerifyer(TlsSigner tlsSigner, SignatureAndHashAlgorithm algorithm, SecurityParameters securityParameters)
|
|
{
|
|
int num = 0;
|
|
if (num < algorithm)
|
|
{
|
|
num += num;
|
|
num++;
|
|
}
|
|
int length = securityParameters.clientRandom.Length;
|
|
int length2 = securityParameters.serverRandom.Length;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x04007076 RID: 28790
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4007076")]
|
|
protected TlsSigner mTlsSigner;
|
|
|
|
// Token: 0x04007077 RID: 28791
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4007077")]
|
|
protected TlsSrpGroupVerifier mGroupVerifier;
|
|
|
|
// Token: 0x04007078 RID: 28792
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x4007078")]
|
|
protected byte[] mIdentity;
|
|
|
|
// Token: 0x04007079 RID: 28793
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x4007079")]
|
|
protected byte[] mPassword;
|
|
|
|
// Token: 0x0400707A RID: 28794
|
|
[FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x400707A")]
|
|
protected AsymmetricKeyParameter mServerPublicKey;
|
|
|
|
// Token: 0x0400707B RID: 28795
|
|
[FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x400707B")]
|
|
protected Srp6GroupParameters mSrpGroup;
|
|
|
|
// Token: 0x0400707C RID: 28796
|
|
[FieldOffset(Offset = "0x58")]
|
|
[Token(Token = "0x400707C")]
|
|
protected Srp6Client mSrpClient;
|
|
|
|
// Token: 0x0400707D RID: 28797
|
|
[FieldOffset(Offset = "0x60")]
|
|
[Token(Token = "0x400707D")]
|
|
protected Srp6Server mSrpServer;
|
|
|
|
// Token: 0x0400707E RID: 28798
|
|
[FieldOffset(Offset = "0x68")]
|
|
[Token(Token = "0x400707E")]
|
|
protected BigInteger mSrpPeerCredentials;
|
|
|
|
// Token: 0x0400707F RID: 28799
|
|
[FieldOffset(Offset = "0x70")]
|
|
[Token(Token = "0x400707F")]
|
|
protected BigInteger mSrpVerifier;
|
|
|
|
// Token: 0x04007080 RID: 28800
|
|
[FieldOffset(Offset = "0x78")]
|
|
[Token(Token = "0x4007080")]
|
|
protected byte[] mSrpSalt;
|
|
|
|
// Token: 0x04007081 RID: 28801
|
|
[FieldOffset(Offset = "0x80")]
|
|
[Token(Token = "0x4007081")]
|
|
protected TlsSignerCredentials mServerCredentials;
|
|
}
|
|
}
|