1458 lines
80 KiB
C#
1458 lines
80 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.IO;
|
|
using System.Runtime.InteropServices;
|
|
using System.Runtime.Remoting;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Prng;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Date;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls
|
|
{
|
|
// Token: 0x020015A7 RID: 5543
|
|
[Token(Token = "0x20015A7")]
|
|
[StructLayout(3)]
|
|
public abstract class TlsProtocol
|
|
{
|
|
// Token: 0x0600936C RID: 37740 RVA: 0x0020A180 File Offset: 0x00208380
|
|
[Token(Token = "0x600936C")]
|
|
[Address(RVA = "0x1E02D70", Offset = "0x1E01770", VA = "0x181E02D70")]
|
|
public TlsProtocol(Stream stream, SecureRandom secureRandom)
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600936D RID: 37741 RVA: 0x0020A190 File Offset: 0x00208390
|
|
[Token(Token = "0x600936D")]
|
|
[Address(RVA = "0x1E02D90", Offset = "0x1E01790", VA = "0x181E02D90")]
|
|
public TlsProtocol(Stream input, Stream output, SecureRandom secureRandom)
|
|
{
|
|
int num;
|
|
ByteQueue byteQueue = new ByteQueue(num);
|
|
num = 0;
|
|
this.mApplicationDataQueue = byteQueue;
|
|
ByteQueue byteQueue2 = new ByteQueue(2);
|
|
this.mAlertQueue = byteQueue2;
|
|
int num2;
|
|
ByteQueue byteQueue3 = new ByteQueue(num2);
|
|
num2 = 0;
|
|
this.mHandshakeQueue = byteQueue3;
|
|
this.mAppDataSplitEnabled = true;
|
|
this.mBlocking = true;
|
|
this.HandleChangeCipherSpecMessage();
|
|
RecordStream recordStream = new RecordStream(this, input, output);
|
|
this.mRecordStream = recordStream;
|
|
this.mSecureRandom = secureRandom;
|
|
}
|
|
|
|
// Token: 0x0600936E RID: 37742 RVA: 0x0020A1FC File Offset: 0x002083FC
|
|
[Token(Token = "0x600936E")]
|
|
[Address(RVA = "0x1E02C10", Offset = "0x1E01610", VA = "0x181E02C10")]
|
|
public TlsProtocol(SecureRandom secureRandom)
|
|
{
|
|
int num;
|
|
ByteQueue byteQueue = new ByteQueue(num);
|
|
num = 0;
|
|
this.mApplicationDataQueue = byteQueue;
|
|
ByteQueue byteQueue2 = new ByteQueue(2);
|
|
this.mAlertQueue = byteQueue2;
|
|
int num2;
|
|
ByteQueue byteQueue3 = new ByteQueue(num2);
|
|
num2 = 0;
|
|
this.mHandshakeQueue = byteQueue3;
|
|
this.HandleChangeCipherSpecMessage();
|
|
ByteQueueStream byteQueueStream = new ByteQueueStream();
|
|
this.mInputBuffers = byteQueueStream;
|
|
ByteQueueStream byteQueueStream2 = new ByteQueueStream();
|
|
ByteQueueStream byteQueueStream3 = this.mInputBuffers;
|
|
this.mOutputBuffer = byteQueueStream2;
|
|
RecordStream recordStream = new RecordStream(this, byteQueueStream3, byteQueueStream2);
|
|
this.mRecordStream = recordStream;
|
|
this.mSecureRandom = secureRandom;
|
|
}
|
|
|
|
// Token: 0x170017B8 RID: 6072
|
|
// (get) Token: 0x0600936F RID: 37743
|
|
[Token(Token = "0x170017B8")]
|
|
protected abstract TlsContext Context
|
|
{
|
|
[Token(Token = "0x600936F")]
|
|
[Address(Slot = "4")]
|
|
get;
|
|
}
|
|
|
|
// Token: 0x170017B9 RID: 6073
|
|
// (get) Token: 0x06009370 RID: 37744
|
|
[Token(Token = "0x170017B9")]
|
|
internal abstract AbstractTlsContext ContextAdmin
|
|
{
|
|
[Token(Token = "0x6009370")]
|
|
[Address(Slot = "5")]
|
|
get;
|
|
}
|
|
|
|
// Token: 0x170017BA RID: 6074
|
|
// (get) Token: 0x06009371 RID: 37745
|
|
[Token(Token = "0x170017BA")]
|
|
protected abstract TlsPeer Peer
|
|
{
|
|
[Token(Token = "0x6009371")]
|
|
[Address(Slot = "6")]
|
|
get;
|
|
}
|
|
|
|
// Token: 0x06009372 RID: 37746 RVA: 0x0020A280 File Offset: 0x00208480
|
|
[Token(Token = "0x6009372")]
|
|
[Address(RVA = "0x1DFFCE0", Offset = "0x1DFE6E0", VA = "0x181DFFCE0", Slot = "7")]
|
|
protected virtual void HandleAlertMessage(byte alertLevel, byte alertDescription)
|
|
{
|
|
AbstractTlsContext contextAdmin = this.ContextAdmin;
|
|
int num = 0;
|
|
if (num < (int)alertDescription)
|
|
{
|
|
num += num;
|
|
num++;
|
|
}
|
|
TlsContext context = this.Context;
|
|
}
|
|
|
|
// Token: 0x06009373 RID: 37747 RVA: 0x0020A2B0 File Offset: 0x002084B0
|
|
[Token(Token = "0x6009373")]
|
|
[Address(RVA = "0x1DFFE30", Offset = "0x1DFE830", VA = "0x181DFFE30", Slot = "8")]
|
|
protected virtual void HandleAlertWarningMessage(byte alertDescription)
|
|
{
|
|
while (!this.mAppDataReady)
|
|
{
|
|
}
|
|
this.HandleChangeCipherSpecMessage();
|
|
}
|
|
|
|
// Token: 0x06009374 RID: 37748 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6009374")]
|
|
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60", Slot = "9")]
|
|
protected virtual void HandleChangeCipherSpecMessage()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06009375 RID: 37749 RVA: 0x0020A2CC File Offset: 0x002084CC
|
|
[Token(Token = "0x6009375")]
|
|
[Address(RVA = "0x1DFFEC0", Offset = "0x1DFE8C0", VA = "0x181DFFEC0", Slot = "10")]
|
|
protected virtual void HandleClose(bool user_canceled)
|
|
{
|
|
if (!this.mClosed)
|
|
{
|
|
this.mClosed = true;
|
|
if (!user_canceled || !this.mAppDataReady)
|
|
{
|
|
}
|
|
this.mRecordStream.SafeClose();
|
|
if (!this.mAppDataReady)
|
|
{
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009376 RID: 37750 RVA: 0x0020A310 File Offset: 0x00208510
|
|
[Token(Token = "0x6009376")]
|
|
[Address(RVA = "0x1DFFFA0", Offset = "0x1DFE9A0", VA = "0x181DFFFA0", Slot = "11")]
|
|
protected virtual void HandleException(byte alertDescription, string message, Exception cause)
|
|
{
|
|
if (!this.mClosed)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009377 RID: 37751 RVA: 0x0020A328 File Offset: 0x00208528
|
|
[Token(Token = "0x6009377")]
|
|
[Address(RVA = "0x1E00030", Offset = "0x1DFEA30", VA = "0x181E00030", Slot = "12")]
|
|
protected virtual void HandleFailure()
|
|
{
|
|
this.mClosed = true;
|
|
this.mFailedWithError = true;
|
|
this.mRecordStream.SafeClose();
|
|
if (!this.mAppDataReady)
|
|
{
|
|
TlsContext context = this.Context;
|
|
return;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009378 RID: 37752
|
|
[Token(Token = "0x6009378")]
|
|
[Address(Slot = "13")]
|
|
protected abstract void HandleHandshakeMessage(byte type, MemoryStream buf);
|
|
|
|
// Token: 0x06009379 RID: 37753 RVA: 0x0020A368 File Offset: 0x00208568
|
|
[Token(Token = "0x6009379")]
|
|
[Address(RVA = "0x1DFE880", Offset = "0x1DFD280", VA = "0x181DFE880", Slot = "14")]
|
|
protected virtual void ApplyMaxFragmentLengthExtension()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06009379)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ApplyMaxFragmentLengthExtension()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_2E:
|
|
stloc:TlsFatalAlert(var_2_34, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_3)))
|
|
}
|
|
|
|
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: 0x0600937A RID: 37754 RVA: 0x0020A3AC File Offset: 0x002085AC
|
|
[Token(Token = "0x600937A")]
|
|
[Address(RVA = "0x1DFEA90", Offset = "0x1DFD490", VA = "0x181DFEA90", Slot = "15")]
|
|
protected virtual void CheckReceivedChangeCipherSpec(bool expected)
|
|
{
|
|
while (expected != this.mReceivedChangeCipherSpec)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600937B RID: 37755 RVA: 0x0020A3C4 File Offset: 0x002085C4
|
|
[Token(Token = "0x600937B")]
|
|
[Address(RVA = "0x1DFEB00", Offset = "0x1DFD500", VA = "0x181DFEB00", Slot = "16")]
|
|
protected virtual void CleanupHandshake()
|
|
{
|
|
byte[] array = this.mExpectedVerifyData;
|
|
int num = 0;
|
|
if (array != 0)
|
|
{
|
|
int num2 = 0;
|
|
Arrays.Fill(array, (byte)num2);
|
|
this.mExpectedVerifyData = num;
|
|
}
|
|
string text = this.mSecurityParameters.ToString();
|
|
this.mPeerCertificate = num;
|
|
this.mOfferedCipherSuites = num;
|
|
this.mOfferedCompressionMethods = num;
|
|
this.mClientExtensions = num;
|
|
this.mServerExtensions = num;
|
|
this.mResumedSession = num != 0;
|
|
this.mExpectSessionTicket = num != 0;
|
|
}
|
|
|
|
// Token: 0x0600937C RID: 37756 RVA: 0x0020A434 File Offset: 0x00208634
|
|
[Token(Token = "0x600937C")]
|
|
[Address(RVA = "0x1DFE9E0", Offset = "0x1DFD3E0", VA = "0x181DFE9E0", Slot = "17")]
|
|
protected virtual void BlockForHandshake()
|
|
{
|
|
while (this.mBlocking && this.mClosed)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600937D RID: 37757 RVA: 0x0020A454 File Offset: 0x00208654
|
|
[Token(Token = "0x600937D")]
|
|
[Address(RVA = "0x1DFED00", Offset = "0x1DFD700", VA = "0x181DFED00", Slot = "18")]
|
|
protected virtual void CompleteHandshake()
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
this.mConnectionState = (short)((uint)16);
|
|
this.mAlertQueue.Shrink();
|
|
this.mHandshakeQueue.Shrink();
|
|
this.mRecordStream.FinaliseHandshake();
|
|
string text = this.ToString();
|
|
ProtocolVersion protocolVersion;
|
|
bool flag = !ProtocolVersion.TLSv11.IsEqualOrEarlierVersionOf(protocolVersion);
|
|
this.mAppDataSplitEnabled = flag;
|
|
bool flag2 = this.mAppDataReady;
|
|
if (!flag2)
|
|
{
|
|
this.mAppDataReady = true;
|
|
if (this.mBlocking != flag2)
|
|
{
|
|
TlsStream tlsStream;
|
|
tlsStream.handler = this;
|
|
this.mTlsStream = tlsStream;
|
|
}
|
|
}
|
|
if (this.mTlsSession != (ulong)0L)
|
|
{
|
|
if (this.mSessionParameters == (ulong)0L)
|
|
{
|
|
SessionParameters.Builder builder = new SessionParameters.Builder();
|
|
int entity = this.mSecurityParameters.Entity;
|
|
SessionParameters.Builder builder2 = builder.SetCipherSuite(entity);
|
|
int cipherSuite = this.mSecurityParameters.CipherSuite;
|
|
SessionParameters.Builder builder3 = builder2.SetCompressionAlgorithm((byte)cipherSuite);
|
|
byte[] srpIdentity = this.mSecurityParameters.SrpIdentity;
|
|
int verifyDataLength = this.mSecurityParameters.VerifyDataLength;
|
|
Certificate certificate = this.mPeerCertificate;
|
|
SessionParameters.Builder builder5;
|
|
SessionParameters.Builder builder4 = builder5.SetPeerCertificate(certificate);
|
|
byte[] sessionHash = this.mSecurityParameters.SessionHash;
|
|
SessionParameters.Builder builder6 = builder4.SetPskIdentity(sessionHash);
|
|
byte[] pskIdentity = this.mSecurityParameters.PskIdentity;
|
|
SessionParameters.Builder builder7 = builder6.SetSrpIdentity(pskIdentity);
|
|
IDictionary dictionary = this.mServerExtensions;
|
|
SessionParameters sessionParameters = builder7.SetServerExtensions(dictionary).Build();
|
|
this.mSessionParameters = sessionParameters;
|
|
TlsSession tlsSession = this.mTlsSession;
|
|
TlsSessionImpl tlsSessionImpl;
|
|
this.mTlsSession = tlsSessionImpl;
|
|
}
|
|
TlsContext context = this.Context;
|
|
}
|
|
AbstractTlsContext contextAdmin = this.ContextAdmin;
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
}
|
|
|
|
// Token: 0x0600937E RID: 37758 RVA: 0x0020A664 File Offset: 0x00208864
|
|
[Token(Token = "0x600937E")]
|
|
[Address(RVA = "0x1E00A80", Offset = "0x1DFF480", VA = "0x181E00A80")]
|
|
protected internal void ProcessRecord(byte protocol, byte[] buf, int off, int len)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600937E)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ProcessRecord(System.Byte,System.Byte[],System.Int32,System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_BC:
|
|
stloc:TlsFatalAlert(var_19_C3, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_20)))
|
|
stloc:TlsFatalAlert(var_21_CC, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_22)))
|
|
}
|
|
|
|
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: 0x0600937F RID: 37759 RVA: 0x0020A740 File Offset: 0x00208940
|
|
[Token(Token = "0x600937F")]
|
|
[Address(RVA = "0x1E00780", Offset = "0x1DFF180", VA = "0x181E00780")]
|
|
private void ProcessHandshakeQueue(ByteQueue queue)
|
|
{
|
|
int num = 0;
|
|
byte[] array = new byte[4];
|
|
int num2 = 0;
|
|
queue.Read(array, num2, 4, num);
|
|
byte b = array[0];
|
|
int num3 = TlsUtilities.ReadUint24(array, 1);
|
|
this.ApplyMaxFragmentLengthExtension();
|
|
this.ApplyMaxFragmentLengthExtension();
|
|
string text = this.ToString();
|
|
if (this.mExpectedVerifyData == num)
|
|
{
|
|
sbyte b2;
|
|
this.mExpectedVerifyData = b2;
|
|
}
|
|
RecordStream recordStream = this.mRecordStream;
|
|
queue.RemoveData(4);
|
|
MemoryStream memoryStream = queue.ReadFrom(num3);
|
|
this.HandleFailure();
|
|
}
|
|
|
|
// Token: 0x06009380 RID: 37760 RVA: 0x0000220F File Offset: 0x0000040F
|
|
[Token(Token = "0x6009380")]
|
|
[Address(RVA = "0x3C9F60", Offset = "0x3C8960", VA = "0x1803C9F60")]
|
|
private void ProcessApplicationDataQueue()
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06009381 RID: 37761 RVA: 0x0020A7C0 File Offset: 0x002089C0
|
|
[Token(Token = "0x6009381")]
|
|
[Address(RVA = "0x1E00440", Offset = "0x1DFEE40", VA = "0x181E00440")]
|
|
private void ProcessAlertQueue()
|
|
{
|
|
ByteQueue byteQueue = this.mAlertQueue;
|
|
int num = 0;
|
|
int length = byteQueue.RemoveData(2, num).Length;
|
|
TlsPeer peer = this.Peer;
|
|
ByteQueue byteQueue2 = this.mAlertQueue;
|
|
}
|
|
|
|
// Token: 0x06009382 RID: 37762 RVA: 0x0020A7FC File Offset: 0x002089FC
|
|
[Token(Token = "0x6009382")]
|
|
[Address(RVA = "0x1E004E0", Offset = "0x1DFEEE0", VA = "0x181E004E0")]
|
|
private void ProcessChangeCipherSpec(byte[] buf, int off, int len)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06009382)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ProcessChangeCipherSpec(System.Byte[],System.Int32,System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_34:
|
|
stloc:TlsFatalAlert(var_2_3A, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_3)))
|
|
}
|
|
|
|
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: 0x06009383 RID: 37763 RVA: 0x0020A844 File Offset: 0x00208A44
|
|
[Token(Token = "0x6009383")]
|
|
[Address(RVA = "0x1DFE860", Offset = "0x1DFD260", VA = "0x181DFE860", Slot = "19")]
|
|
protected internal virtual int ApplicationDataAvailable()
|
|
{
|
|
return this.mApplicationDataQueue.available;
|
|
}
|
|
|
|
// Token: 0x06009384 RID: 37764 RVA: 0x0020A864 File Offset: 0x00208A64
|
|
[Token(Token = "0x6009384")]
|
|
[Address(RVA = "0x1E010B0", Offset = "0x1DFFAB0", VA = "0x181E010B0", Slot = "20")]
|
|
protected internal virtual int ReadApplicationData(byte[] buf, int offset, int len)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06009384)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ReadApplicationData(System.Byte[],System.Int32,System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_3A:
|
|
stloc:IOException(var_3_44, newobj:IOException(IOException::.ctor, ldstr:string("Cannot read application data on failed TLS connection")))
|
|
}
|
|
|
|
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: 0x06009385 RID: 37765 RVA: 0x0020A8B8 File Offset: 0x00208AB8
|
|
[Token(Token = "0x6009385")]
|
|
[Address(RVA = "0x1E01930", Offset = "0x1E00330", VA = "0x181E01930", Slot = "21")]
|
|
protected virtual void SafeCheckRecordHeader(byte[] recordHeader)
|
|
{
|
|
this.mRecordStream.CheckRecordHeader(recordHeader);
|
|
}
|
|
|
|
// Token: 0x06009386 RID: 37766 RVA: 0x0020A8E0 File Offset: 0x00208AE0
|
|
[Token(Token = "0x6009386")]
|
|
[Address(RVA = "0x1E01A70", Offset = "0x1E00470", VA = "0x181E01A70", Slot = "22")]
|
|
protected virtual void SafeReadRecord()
|
|
{
|
|
if (this.mRecordStream.ReadRecord() || this.mAppDataReady)
|
|
{
|
|
return;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009387 RID: 37767 RVA: 0x0020A910 File Offset: 0x00208B10
|
|
[Token(Token = "0x6009387")]
|
|
[Address(RVA = "0x1E01C30", Offset = "0x1E00630", VA = "0x181E01C30", Slot = "23")]
|
|
protected virtual void SafeWriteRecord(byte type, byte[] buf, int offset, int len)
|
|
{
|
|
RecordStream recordStream = this.mRecordStream;
|
|
}
|
|
|
|
// Token: 0x06009388 RID: 37768 RVA: 0x0020A930 File Offset: 0x00208B30
|
|
[Token(Token = "0x6009388")]
|
|
[Address(RVA = "0x1E02210", Offset = "0x1E00C10", VA = "0x181E02210", Slot = "24")]
|
|
protected internal virtual void WriteData(byte[] buf, int offset, int len)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06009388)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::WriteData(System.Byte[],System.Int32,System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_57:
|
|
stloc:IOException(var_4_61, newobj:IOException(IOException::.ctor, ldstr:string("Cannot write application data on closed/failed TLS connection")))
|
|
}
|
|
|
|
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: 0x06009389 RID: 37769 RVA: 0x0020A9A0 File Offset: 0x00208BA0
|
|
[Token(Token = "0x6009389")]
|
|
[Address(RVA = "0x1E02170", Offset = "0x1E00B70", VA = "0x181E02170", Slot = "25")]
|
|
protected virtual void SetAppDataSplitMode(int appDataSplitMode)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06009389)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::SetAppDataSplitMode(System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_0C:
|
|
stloc:ArgumentException(var_0_21, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Illegal appDataSplitMode mode: "), ldloc:int32[exp:object](appDataSplitMode)), ldstr:string("appDataSplitMode")))
|
|
}
|
|
|
|
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: 0x0600938A RID: 37770 RVA: 0x0020A9D0 File Offset: 0x00208BD0
|
|
[Token(Token = "0x600938A")]
|
|
[Address(RVA = "0x1E024B0", Offset = "0x1E00EB0", VA = "0x181E024B0", Slot = "26")]
|
|
protected virtual void WriteHandshakeMessage(byte[] buf, int off, int len)
|
|
{
|
|
int num = this.mRecordStream.mHandshakeHashUpdater.ReadByte();
|
|
int num2 = 0;
|
|
int num3 = this.mRecordStream.mPlaintextLimit;
|
|
num3 = Math.Min(len, num3);
|
|
this.SafeReadRecord();
|
|
num2 += num3;
|
|
}
|
|
|
|
// Token: 0x170017BB RID: 6075
|
|
// (get) Token: 0x0600938B RID: 37771 RVA: 0x0020AA18 File Offset: 0x00208C18
|
|
[Token(Token = "0x170017BB")]
|
|
public virtual Stream Stream
|
|
{
|
|
[Token(Token = "0x600938B")]
|
|
[Address(RVA = "0x1E02EC0", Offset = "0x1E018C0", VA = "0x181E02EC0", Slot = "27")]
|
|
get
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600938B)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.IO.Stream BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::get_Stream()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_10:
|
|
stloc:InvalidOperationException(var_1_1A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use Stream in non-blocking mode! Use OfferInput()/OfferOutput() instead.")))
|
|
}
|
|
|
|
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: 0x0600938C RID: 37772 RVA: 0x0020AA40 File Offset: 0x00208C40
|
|
[Token(Token = "0x600938C")]
|
|
[Address(RVA = "0x1DFEBC0", Offset = "0x1DFD5C0", VA = "0x181DFEBC0", Slot = "28")]
|
|
public virtual void CloseInput()
|
|
{
|
|
for (;;)
|
|
{
|
|
if (!this.mBlocking)
|
|
{
|
|
if (this.mClosed)
|
|
{
|
|
break;
|
|
}
|
|
ByteQueueStream byteQueueStream = this.mInputBuffers;
|
|
if (this.mAppDataReady)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600938D RID: 37773 RVA: 0x0020AA78 File Offset: 0x00208C78
|
|
[Token(Token = "0x600938D")]
|
|
[Address(RVA = "0x1E00120", Offset = "0x1DFEB20", VA = "0x181E00120", Slot = "29")]
|
|
public virtual void OfferInput(byte[] input)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600938D)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::OfferInput(System.Byte[])
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_46:
|
|
stloc:InvalidOperationException(var_7_50, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use OfferInput() in blocking mode! Use Stream instead.")))
|
|
}
|
|
|
|
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: 0x0600938E RID: 37774 RVA: 0x0020AAD8 File Offset: 0x00208CD8
|
|
[Token(Token = "0x600938E")]
|
|
[Address(RVA = "0x1DFF830", Offset = "0x1DFE230", VA = "0x181DFF830", Slot = "30")]
|
|
public virtual int GetAvailableInputBytes()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600938E)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::GetAvailableInputBytes()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_10:
|
|
stloc:InvalidOperationException(var_1_1A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use GetAvailableInputBytes() in blocking mode! Use ApplicationDataAvailable() instead.")))
|
|
}
|
|
|
|
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: 0x0600938F RID: 37775 RVA: 0x0020AB00 File Offset: 0x00208D00
|
|
[Token(Token = "0x600938F")]
|
|
[Address(RVA = "0x1E01490", Offset = "0x1DFFE90", VA = "0x181E01490", Slot = "31")]
|
|
public virtual int ReadInput(byte[] buffer, int offset, int length)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600938F)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ReadInput(System.Byte[],System.Int32,System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_16:
|
|
stloc:InvalidOperationException(var_2_20, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use ReadInput() in blocking mode! Use Stream instead.")))
|
|
}
|
|
|
|
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: 0x06009390 RID: 37776 RVA: 0x0020AB30 File Offset: 0x00208D30
|
|
[Token(Token = "0x6009390")]
|
|
[Address(RVA = "0x1E00340", Offset = "0x1DFED40", VA = "0x181E00340", Slot = "32")]
|
|
public virtual void OfferOutput(byte[] buffer, int offset, int length)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06009390)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::OfferOutput(System.Byte[],System.Int32,System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_25:
|
|
stloc:IOException(var_2_2F, newobj:IOException(IOException::.ctor, ldstr:string("Application data cannot be sent until the handshake is complete!")))
|
|
}
|
|
|
|
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: 0x06009391 RID: 37777 RVA: 0x0020AB6C File Offset: 0x00208D6C
|
|
[Token(Token = "0x6009391")]
|
|
[Address(RVA = "0x1DFF8B0", Offset = "0x1DFE2B0", VA = "0x181DFF8B0", Slot = "33")]
|
|
public virtual int GetAvailableOutputBytes()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06009391)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::GetAvailableOutputBytes()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_14:
|
|
stloc:InvalidOperationException(var_0_1E, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use GetAvailableOutputBytes() in blocking mode! Use Stream instead.")))
|
|
}
|
|
|
|
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: 0x06009392 RID: 37778 RVA: 0x0020AB98 File Offset: 0x00208D98
|
|
[Token(Token = "0x6009392")]
|
|
[Address(RVA = "0x1E01590", Offset = "0x1DFFF90", VA = "0x181E01590", Slot = "34")]
|
|
public virtual int ReadOutput(byte[] buffer, int offset, int length)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06009392)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ReadOutput(System.Byte[],System.Int32,System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_18:
|
|
stloc:InvalidOperationException(var_0_22, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot use ReadOutput() in blocking mode! Use Stream instead.")))
|
|
}
|
|
|
|
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: 0x06009393 RID: 37779 RVA: 0x0020ABC8 File Offset: 0x00208DC8
|
|
[Token(Token = "0x6009393")]
|
|
[Address(RVA = "0x1E000B0", Offset = "0x1DFEAB0", VA = "0x181E000B0", Slot = "35")]
|
|
protected virtual void InvalidateSession()
|
|
{
|
|
SessionParameters sessionParameters = this.mSessionParameters;
|
|
if (sessionParameters != 0)
|
|
{
|
|
sessionParameters.Clear();
|
|
this.mSessionParameters = (ulong)0L;
|
|
}
|
|
if (this.mTlsSession != 0)
|
|
{
|
|
this.mTlsSession = (ulong)0L;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009394 RID: 37780 RVA: 0x0020AC04 File Offset: 0x00208E04
|
|
[Token(Token = "0x6009394")]
|
|
[Address(RVA = "0x1E00660", Offset = "0x1DFF060", VA = "0x181E00660", Slot = "36")]
|
|
protected virtual void ProcessFinishedMessage(MemoryStream buf)
|
|
{
|
|
for (;;)
|
|
{
|
|
byte[] array = this.mExpectedVerifyData;
|
|
if (array != 0)
|
|
{
|
|
byte[] array2 = TlsUtilities.ReadFully(array.Length, buf);
|
|
TlsProtocol.AssertEmpty(buf);
|
|
if (Arrays.ConstantTimeAreEqual(this.mExpectedVerifyData, array2))
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009395 RID: 37781 RVA: 0x0020AC40 File Offset: 0x00208E40
|
|
[Token(Token = "0x6009395")]
|
|
[Address(RVA = "0x1E00E60", Offset = "0x1DFF860", VA = "0x181E00E60", Slot = "37")]
|
|
protected virtual void RaiseAlertFatal(byte alertDescription, string message, Exception cause)
|
|
{
|
|
AbstractTlsContext contextAdmin = this.ContextAdmin;
|
|
byte[] array = new byte[2];
|
|
array[0] = (byte)((ulong)2L);
|
|
array[0] = alertDescription;
|
|
RecordStream recordStream = this.mRecordStream;
|
|
}
|
|
|
|
// Token: 0x06009396 RID: 37782 RVA: 0x0020AC80 File Offset: 0x00208E80
|
|
[Token(Token = "0x6009396")]
|
|
[Address(RVA = "0x1E00FA0", Offset = "0x1DFF9A0", VA = "0x181E00FA0", Slot = "38")]
|
|
protected virtual void RaiseAlertWarning(byte alertDescription, string message)
|
|
{
|
|
AbstractTlsContext contextAdmin = this.ContextAdmin;
|
|
byte[] array = new byte[2];
|
|
array[0] = (byte)((ulong)1L);
|
|
array[0] = alertDescription;
|
|
this.SafeReadRecord();
|
|
}
|
|
|
|
// Token: 0x06009397 RID: 37783 RVA: 0x0020ACBC File Offset: 0x00208EBC
|
|
[Token(Token = "0x6009397")]
|
|
[Address(RVA = "0x1E01D90", Offset = "0x1E00790", VA = "0x181E01D90", Slot = "39")]
|
|
protected virtual void SendCertificateMessage(Certificate certificate)
|
|
{
|
|
if (certificate == 0)
|
|
{
|
|
Certificate emptyChain = Certificate.EmptyChain;
|
|
}
|
|
if (certificate.Length != 0 && this.ToString() == 0)
|
|
{
|
|
string text = this.ToString();
|
|
bool flag;
|
|
if (flag)
|
|
{
|
|
int hashCode = text.GetHashCode();
|
|
TlsContext context = this.Context;
|
|
return;
|
|
}
|
|
}
|
|
TlsProtocol.HandshakeMessage handshakeMessage;
|
|
handshakeMessage.WriteToRecordStream(this);
|
|
}
|
|
|
|
// Token: 0x06009398 RID: 37784 RVA: 0x0020AD14 File Offset: 0x00208F14
|
|
[Token(Token = "0x6009398")]
|
|
[Address(RVA = "0x1E01F50", Offset = "0x1E00950", VA = "0x181E01F50", Slot = "40")]
|
|
protected virtual void SendChangeCipherSpecMessage()
|
|
{
|
|
int length = new byte[] { (byte)((ulong)1L) }.Length;
|
|
this.SafeReadRecord();
|
|
this.mRecordStream.SentWriteCipherSpec();
|
|
}
|
|
|
|
// Token: 0x06009399 RID: 37785 RVA: 0x0020AD50 File Offset: 0x00208F50
|
|
[Token(Token = "0x6009399")]
|
|
[Address(RVA = "0x1E01FF0", Offset = "0x1E009F0", VA = "0x181E01FF0", Slot = "41")]
|
|
protected virtual void SendFinishedMessage()
|
|
{
|
|
string text = this.ToString();
|
|
TlsProtocol.HandshakeMessage handshakeMessage;
|
|
int num = handshakeMessage.ReadByte();
|
|
handshakeMessage.WriteToRecordStream(this);
|
|
}
|
|
|
|
// Token: 0x0600939A RID: 37786 RVA: 0x0020AD78 File Offset: 0x00208F78
|
|
[Token(Token = "0x600939A")]
|
|
[Address(RVA = "0x1E020E0", Offset = "0x1E00AE0", VA = "0x181E020E0", Slot = "42")]
|
|
protected virtual void SendSupplementalDataMessage(IList supplementalData)
|
|
{
|
|
TlsProtocol.HandshakeMessage handshakeMessage;
|
|
TlsProtocol.WriteSupplementalData(handshakeMessage, supplementalData);
|
|
handshakeMessage.WriteToRecordStream(this);
|
|
}
|
|
|
|
// Token: 0x0600939B RID: 37787 RVA: 0x0020AD9C File Offset: 0x00208F9C
|
|
[Token(Token = "0x600939B")]
|
|
[Address(RVA = "0x1DFF460", Offset = "0x1DFDE60", VA = "0x181DFF460", Slot = "43")]
|
|
protected virtual byte[] CreateVerifyData(bool isServer)
|
|
{
|
|
string text = this.ToString();
|
|
if (isServer)
|
|
{
|
|
}
|
|
RecordStream recordStream = this.mRecordStream;
|
|
bool flag;
|
|
if (!flag)
|
|
{
|
|
}
|
|
byte[] array;
|
|
return array;
|
|
}
|
|
|
|
// Token: 0x0600939C RID: 37788 RVA: 0x0020ADC8 File Offset: 0x00208FC8
|
|
[Token(Token = "0x600939C")]
|
|
[Address(RVA = "0x92CFF0", Offset = "0x92B9F0", VA = "0x18092CFF0", Slot = "44")]
|
|
public virtual void Close()
|
|
{
|
|
TlsContext context = this.Context;
|
|
}
|
|
|
|
// Token: 0x0600939D RID: 37789 RVA: 0x0020ADDC File Offset: 0x00208FDC
|
|
[Token(Token = "0x600939D")]
|
|
[Address(RVA = "0x1DFF810", Offset = "0x1DFE210", VA = "0x181DFF810", Slot = "45")]
|
|
protected internal virtual void Flush()
|
|
{
|
|
this.mRecordStream.Flush();
|
|
}
|
|
|
|
// Token: 0x170017BC RID: 6076
|
|
// (get) Token: 0x0600939E RID: 37790 RVA: 0x0020ADFC File Offset: 0x00208FFC
|
|
[Token(Token = "0x170017BC")]
|
|
public virtual bool IsClosed
|
|
{
|
|
[Token(Token = "0x600939E")]
|
|
[Address(RVA = "0x1E02EA0", Offset = "0x1E018A0", VA = "0x181E02EA0", Slot = "46")]
|
|
get
|
|
{
|
|
return this.mClosed;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600939F RID: 37791 RVA: 0x0020AE10 File Offset: 0x00209010
|
|
[Token(Token = "0x600939F")]
|
|
[Address(RVA = "0x1E009C0", Offset = "0x1DFF3C0", VA = "0x181E009C0", Slot = "47")]
|
|
protected virtual short ProcessMaxFragmentLengthExtension(IDictionary clientExtensions, IDictionary serverExtensions, byte alertDescription)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600939F)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int16 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::ProcessMaxFragmentLengthExtension(System.Collections.IDictionary,System.Collections.IDictionary,System.Byte)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_26:
|
|
stloc:TlsFatalAlert(var_2_2C, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint8(alertDescription)))
|
|
}
|
|
|
|
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: 0x060093A0 RID: 37792 RVA: 0x0020AE4C File Offset: 0x0020904C
|
|
[Token(Token = "0x60093A0")]
|
|
[Address(RVA = "0x1E01830", Offset = "0x1E00230", VA = "0x181E01830", Slot = "48")]
|
|
protected virtual void RefuseRenegotiation()
|
|
{
|
|
bool flag;
|
|
do
|
|
{
|
|
string text = this.ToString();
|
|
}
|
|
while (flag);
|
|
TlsContext context = this.Context;
|
|
}
|
|
|
|
// Token: 0x060093A1 RID: 37793 RVA: 0x0020AE74 File Offset: 0x00209074
|
|
[Token(Token = "0x60093A1")]
|
|
[Address(RVA = "0x1DFE940", Offset = "0x1DFD340", VA = "0x181DFE940")]
|
|
protected internal static void AssertEmpty(MemoryStream buf)
|
|
{
|
|
long length = buf.Length;
|
|
bool canWrite = buf.CanWrite;
|
|
}
|
|
|
|
// Token: 0x060093A2 RID: 37794 RVA: 0x0020AE90 File Offset: 0x00209090
|
|
[Token(Token = "0x60093A2")]
|
|
[Address(RVA = "0x1DFF280", Offset = "0x1DFDC80", VA = "0x181DFF280")]
|
|
protected internal static byte[] CreateRandomBlock(bool useGmtUnixTime, IRandomGenerator randomGenerator)
|
|
{
|
|
byte[] array = new byte[32];
|
|
if (useGmtUnixTime)
|
|
{
|
|
long num = DateTimeUtilities.CurrentUnixMs();
|
|
ulong num2;
|
|
num2 += num2;
|
|
array[0] = (byte)num2;
|
|
array[0] = (byte)num2;
|
|
array[0] = (byte)num2;
|
|
array[0] = (byte)num2;
|
|
}
|
|
return array;
|
|
}
|
|
|
|
// Token: 0x060093A3 RID: 37795 RVA: 0x0020AEE4 File Offset: 0x002090E4
|
|
[Token(Token = "0x60093A3")]
|
|
[Address(RVA = "0x1DFF400", Offset = "0x1DFDE00", VA = "0x181DFF400")]
|
|
protected internal static byte[] CreateRenegotiationInfo(byte[] renegotiated_connection)
|
|
{
|
|
return TlsUtilities.EncodeOpaque8(renegotiated_connection);
|
|
}
|
|
|
|
// Token: 0x060093A4 RID: 37796 RVA: 0x0020AEF8 File Offset: 0x002090F8
|
|
[Token(Token = "0x60093A4")]
|
|
[Address(RVA = "0x1DFF6B0", Offset = "0x1DFE0B0", VA = "0x181DFF6B0")]
|
|
protected internal static void EstablishMasterSecret(TlsContext context, TlsKeyExchange keyExchange)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
}
|
|
|
|
// Token: 0x060093A5 RID: 37797 RVA: 0x0020AF1C File Offset: 0x0020911C
|
|
[Token(Token = "0x60093A5")]
|
|
[Address(RVA = "0x1DFF940", Offset = "0x1DFE340", VA = "0x181DFF940")]
|
|
protected internal static byte[] GetCurrentPrfHash(TlsContext context, TlsHandshakeHash handshakeHash, byte[] sslSender)
|
|
{
|
|
bool flag;
|
|
if (sslSender != 0 && flag)
|
|
{
|
|
int length = sslSender.Length;
|
|
}
|
|
return DigestUtilities.DoFinal(handshakeHash);
|
|
}
|
|
|
|
// Token: 0x060093A6 RID: 37798 RVA: 0x0020AF44 File Offset: 0x00209144
|
|
[Token(Token = "0x60093A6")]
|
|
[Address(RVA = "0x1E01250", Offset = "0x1DFFC50", VA = "0x181E01250")]
|
|
protected internal static IDictionary ReadExtensions(MemoryStream input)
|
|
{
|
|
MemoryStream memoryStream;
|
|
IDictionary dictionary;
|
|
do
|
|
{
|
|
long length = input.Length;
|
|
bool canWrite = input.CanWrite;
|
|
if (length >= (canWrite ? 1L : 0L))
|
|
{
|
|
goto IL_5F;
|
|
}
|
|
byte[] array = TlsUtilities.ReadOpaque16(input);
|
|
TlsProtocol.AssertEmpty(input);
|
|
int num;
|
|
memoryStream = new MemoryStream(array, num != 0);
|
|
num = 0;
|
|
dictionary = Platform.CreateHashtable();
|
|
long length2 = memoryStream.Length;
|
|
bool canWrite2 = memoryStream.CanWrite;
|
|
if (length2 >= (canWrite2 ? 1L : 0L))
|
|
{
|
|
break;
|
|
}
|
|
int num2 = TlsUtilities.ReadUint16(memoryStream);
|
|
}
|
|
while (TlsUtilities.ReadOpaque16(memoryStream) != 0);
|
|
return dictionary;
|
|
IL_5F:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060093A7 RID: 37799 RVA: 0x0020AFB8 File Offset: 0x002091B8
|
|
[Token(Token = "0x60093A7")]
|
|
[Address(RVA = "0x1E01650", Offset = "0x1E00050", VA = "0x181E01650")]
|
|
protected internal static IList ReadSupplementalDataMessage(MemoryStream input)
|
|
{
|
|
byte[] array = TlsUtilities.ReadFully(TlsUtilities.ReadUint24(input), input);
|
|
TlsProtocol.AssertEmpty(input);
|
|
int num;
|
|
MemoryStream memoryStream = new MemoryStream(array, num != 0);
|
|
num = 0;
|
|
IList list = Platform.CreateArrayList();
|
|
long length = memoryStream.Length;
|
|
bool canWrite = memoryStream.CanWrite;
|
|
if (length < (canWrite ? 1L : 0L))
|
|
{
|
|
int num2 = TlsUtilities.ReadUint16(memoryStream);
|
|
byte[] array2 = TlsUtilities.ReadOpaque16(memoryStream);
|
|
SupplementalDataEntry supplementalDataEntry = new SupplementalDataEntry(num2, array2);
|
|
}
|
|
return list;
|
|
}
|
|
|
|
// Token: 0x060093A8 RID: 37800 RVA: 0x0020B024 File Offset: 0x00209224
|
|
[Token(Token = "0x60093A8")]
|
|
[Address(RVA = "0x1E023E0", Offset = "0x1E00DE0", VA = "0x181E023E0")]
|
|
protected internal static void WriteExtensions(Stream output, IDictionary extensions)
|
|
{
|
|
MemoryStream memoryStream = new MemoryStream();
|
|
TlsProtocol.WriteSelectedExtensions(memoryStream, extensions, true);
|
|
int num = 0;
|
|
TlsProtocol.WriteSelectedExtensions(memoryStream, extensions, num != 0);
|
|
}
|
|
|
|
// Token: 0x060093A9 RID: 37801 RVA: 0x0020B050 File Offset: 0x00209250
|
|
[Token(Token = "0x60093A9")]
|
|
[Address(RVA = "0x1E02640", Offset = "0x1E01040", VA = "0x181E02640")]
|
|
protected internal static void WriteSelectedExtensions(Stream output, IDictionary extensions, bool selectEmpty)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
bool flag = "{il2cpp field on {'constant5' (constant value of type Cpp2IL.Core.Analysis.ResultModels.StackPointer)}, offset 0x18}" == num;
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
}
|
|
|
|
// Token: 0x060093AA RID: 37802 RVA: 0x0020B084 File Offset: 0x00209284
|
|
[Token(Token = "0x60093AA")]
|
|
[Address(RVA = "0x1E028B0", Offset = "0x1E012B0", VA = "0x181E028B0")]
|
|
protected internal static void WriteSupplementalData(Stream output, IList supplementalData)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
MemoryStream memoryStream = new MemoryStream();
|
|
if (memoryStream != 0)
|
|
{
|
|
if (memoryStream == 0)
|
|
{
|
|
goto IL_35;
|
|
}
|
|
string text = memoryStream.ToString();
|
|
}
|
|
ObjRef objRef;
|
|
if (objRef != 0)
|
|
{
|
|
}
|
|
if (num != -1)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
int num2 = output.ReadByte();
|
|
return;
|
|
IL_35:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x060093AB RID: 37803 RVA: 0x0020B0D4 File Offset: 0x002092D4
|
|
[Token(Token = "0x60093AB")]
|
|
[Address(RVA = "0x1DFFA70", Offset = "0x1DFE470", VA = "0x181DFFA70")]
|
|
protected internal static int GetPrfAlgorithm(TlsContext context, int ciphersuite)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (060093AB)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsProtocol::GetPrfAlgorithm(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_52:
|
|
stloc:TlsFatalAlert(var_5_59, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_6)))
|
|
}
|
|
|
|
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: 0x040061E3 RID: 25059
|
|
[Token(Token = "0x40061E3")]
|
|
protected const short CS_START = 0;
|
|
|
|
// Token: 0x040061E4 RID: 25060
|
|
[Token(Token = "0x40061E4")]
|
|
protected const short CS_CLIENT_HELLO = 1;
|
|
|
|
// Token: 0x040061E5 RID: 25061
|
|
[Token(Token = "0x40061E5")]
|
|
protected const short CS_SERVER_HELLO = 2;
|
|
|
|
// Token: 0x040061E6 RID: 25062
|
|
[Token(Token = "0x40061E6")]
|
|
protected const short CS_SERVER_SUPPLEMENTAL_DATA = 3;
|
|
|
|
// Token: 0x040061E7 RID: 25063
|
|
[Token(Token = "0x40061E7")]
|
|
protected const short CS_SERVER_CERTIFICATE = 4;
|
|
|
|
// Token: 0x040061E8 RID: 25064
|
|
[Token(Token = "0x40061E8")]
|
|
protected const short CS_CERTIFICATE_STATUS = 5;
|
|
|
|
// Token: 0x040061E9 RID: 25065
|
|
[Token(Token = "0x40061E9")]
|
|
protected const short CS_SERVER_KEY_EXCHANGE = 6;
|
|
|
|
// Token: 0x040061EA RID: 25066
|
|
[Token(Token = "0x40061EA")]
|
|
protected const short CS_CERTIFICATE_REQUEST = 7;
|
|
|
|
// Token: 0x040061EB RID: 25067
|
|
[Token(Token = "0x40061EB")]
|
|
protected const short CS_SERVER_HELLO_DONE = 8;
|
|
|
|
// Token: 0x040061EC RID: 25068
|
|
[Token(Token = "0x40061EC")]
|
|
protected const short CS_CLIENT_SUPPLEMENTAL_DATA = 9;
|
|
|
|
// Token: 0x040061ED RID: 25069
|
|
[Token(Token = "0x40061ED")]
|
|
protected const short CS_CLIENT_CERTIFICATE = 10;
|
|
|
|
// Token: 0x040061EE RID: 25070
|
|
[Token(Token = "0x40061EE")]
|
|
protected const short CS_CLIENT_KEY_EXCHANGE = 11;
|
|
|
|
// Token: 0x040061EF RID: 25071
|
|
[Token(Token = "0x40061EF")]
|
|
protected const short CS_CERTIFICATE_VERIFY = 12;
|
|
|
|
// Token: 0x040061F0 RID: 25072
|
|
[Token(Token = "0x40061F0")]
|
|
protected const short CS_CLIENT_FINISHED = 13;
|
|
|
|
// Token: 0x040061F1 RID: 25073
|
|
[Token(Token = "0x40061F1")]
|
|
protected const short CS_SERVER_SESSION_TICKET = 14;
|
|
|
|
// Token: 0x040061F2 RID: 25074
|
|
[Token(Token = "0x40061F2")]
|
|
protected const short CS_SERVER_FINISHED = 15;
|
|
|
|
// Token: 0x040061F3 RID: 25075
|
|
[Token(Token = "0x40061F3")]
|
|
protected const short CS_END = 16;
|
|
|
|
// Token: 0x040061F4 RID: 25076
|
|
[Token(Token = "0x40061F4")]
|
|
protected const short ADS_MODE_1_Nsub1 = 0;
|
|
|
|
// Token: 0x040061F5 RID: 25077
|
|
[Token(Token = "0x40061F5")]
|
|
protected const short ADS_MODE_0_N = 1;
|
|
|
|
// Token: 0x040061F6 RID: 25078
|
|
[Token(Token = "0x40061F6")]
|
|
protected const short ADS_MODE_0_N_FIRSTONLY = 2;
|
|
|
|
// Token: 0x040061F7 RID: 25079
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x40061F7")]
|
|
private ByteQueue mApplicationDataQueue;
|
|
|
|
// Token: 0x040061F8 RID: 25080
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x40061F8")]
|
|
private ByteQueue mAlertQueue;
|
|
|
|
// Token: 0x040061F9 RID: 25081
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x40061F9")]
|
|
private ByteQueue mHandshakeQueue;
|
|
|
|
// Token: 0x040061FA RID: 25082
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x40061FA")]
|
|
internal RecordStream mRecordStream;
|
|
|
|
// Token: 0x040061FB RID: 25083
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x40061FB")]
|
|
protected SecureRandom mSecureRandom;
|
|
|
|
// Token: 0x040061FC RID: 25084
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x40061FC")]
|
|
private TlsStream mTlsStream;
|
|
|
|
// Token: 0x040061FD RID: 25085
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x40061FD")]
|
|
private bool mClosed;
|
|
|
|
// Token: 0x040061FE RID: 25086
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x41")]
|
|
[Token(Token = "0x40061FE")]
|
|
private bool mFailedWithError;
|
|
|
|
// Token: 0x040061FF RID: 25087
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x42")]
|
|
[Token(Token = "0x40061FF")]
|
|
private bool mAppDataReady;
|
|
|
|
// Token: 0x04006200 RID: 25088
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x43")]
|
|
[Token(Token = "0x4006200")]
|
|
private bool mAppDataSplitEnabled;
|
|
|
|
// Token: 0x04006201 RID: 25089
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x44")]
|
|
[Token(Token = "0x4006201")]
|
|
private int mAppDataSplitMode;
|
|
|
|
// Token: 0x04006202 RID: 25090
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x4006202")]
|
|
private byte[] mExpectedVerifyData;
|
|
|
|
// Token: 0x04006203 RID: 25091
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x4006203")]
|
|
protected TlsSession mTlsSession;
|
|
|
|
// Token: 0x04006204 RID: 25092
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
|
|
[Token(Token = "0x4006204")]
|
|
protected SessionParameters mSessionParameters;
|
|
|
|
// Token: 0x04006205 RID: 25093
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
|
|
[Token(Token = "0x4006205")]
|
|
protected SecurityParameters mSecurityParameters;
|
|
|
|
// Token: 0x04006206 RID: 25094
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
|
|
[Token(Token = "0x4006206")]
|
|
protected Certificate mPeerCertificate;
|
|
|
|
// Token: 0x04006207 RID: 25095
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
|
|
[Token(Token = "0x4006207")]
|
|
protected int[] mOfferedCipherSuites;
|
|
|
|
// Token: 0x04006208 RID: 25096
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x78")]
|
|
[Token(Token = "0x4006208")]
|
|
protected byte[] mOfferedCompressionMethods;
|
|
|
|
// Token: 0x04006209 RID: 25097
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x80")]
|
|
[Token(Token = "0x4006209")]
|
|
protected IDictionary mClientExtensions;
|
|
|
|
// Token: 0x0400620A RID: 25098
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x88")]
|
|
[Token(Token = "0x400620A")]
|
|
protected IDictionary mServerExtensions;
|
|
|
|
// Token: 0x0400620B RID: 25099
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x90")]
|
|
[Token(Token = "0x400620B")]
|
|
protected short mConnectionState;
|
|
|
|
// Token: 0x0400620C RID: 25100
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x92")]
|
|
[Token(Token = "0x400620C")]
|
|
protected bool mResumedSession;
|
|
|
|
// Token: 0x0400620D RID: 25101
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x93")]
|
|
[Token(Token = "0x400620D")]
|
|
protected bool mReceivedChangeCipherSpec;
|
|
|
|
// Token: 0x0400620E RID: 25102
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x94")]
|
|
[Token(Token = "0x400620E")]
|
|
protected bool mSecureRenegotiation;
|
|
|
|
// Token: 0x0400620F RID: 25103
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x95")]
|
|
[Token(Token = "0x400620F")]
|
|
protected bool mAllowCertificateStatus;
|
|
|
|
// Token: 0x04006210 RID: 25104
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x96")]
|
|
[Token(Token = "0x4006210")]
|
|
protected bool mExpectSessionTicket;
|
|
|
|
// Token: 0x04006211 RID: 25105
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x97")]
|
|
[Token(Token = "0x4006211")]
|
|
protected bool mBlocking;
|
|
|
|
// Token: 0x04006212 RID: 25106
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x98")]
|
|
[Token(Token = "0x4006212")]
|
|
protected ByteQueueStream mInputBuffers;
|
|
|
|
// Token: 0x04006213 RID: 25107
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0xA0")]
|
|
[Token(Token = "0x4006213")]
|
|
protected ByteQueueStream mOutputBuffer;
|
|
|
|
// Token: 0x020015A8 RID: 5544
|
|
[Token(Token = "0x20015A8")]
|
|
internal class HandshakeMessage : MemoryStream
|
|
{
|
|
// Token: 0x060093AC RID: 37804 RVA: 0x0020B13C File Offset: 0x0020933C
|
|
[Token(Token = "0x60093AC")]
|
|
[Address(RVA = "0x1DFBF00", Offset = "0x1DFA900", VA = "0x181DFBF00")]
|
|
internal HandshakeMessage(byte handshakeType)
|
|
{
|
|
}
|
|
|
|
// Token: 0x060093AD RID: 37805 RVA: 0x0020B14C File Offset: 0x0020934C
|
|
[Token(Token = "0x60093AD")]
|
|
[Address(RVA = "0x1DFBF10", Offset = "0x1DFA910", VA = "0x181DFBF10")]
|
|
internal HandshakeMessage(byte handshakeType, int length)
|
|
: base((int)handshakeType)
|
|
{
|
|
((IDisposable)this).Dispose();
|
|
}
|
|
|
|
// Token: 0x060093AE RID: 37806 RVA: 0x0020B16C File Offset: 0x0020936C
|
|
[Token(Token = "0x60093AE")]
|
|
[Address(RVA = "0x1DFBEC0", Offset = "0x1DFA8C0", VA = "0x181DFBEC0")]
|
|
internal void Write(byte[] data)
|
|
{
|
|
int num = this.ReadByte();
|
|
}
|
|
|
|
// Token: 0x060093AF RID: 37807 RVA: 0x0020B188 File Offset: 0x00209388
|
|
[Token(Token = "0x60093AF")]
|
|
[Address(RVA = "0x1DFBCE0", Offset = "0x1DFA6E0", VA = "0x181DFBCE0")]
|
|
internal void WriteToRecordStream(TlsProtocol protocol)
|
|
{
|
|
bool canWrite = this.CanWrite;
|
|
long position = this.Position;
|
|
bool canWrite2 = this.CanWrite;
|
|
Platform.Dispose(this);
|
|
}
|
|
}
|
|
}
|
|
}
|