Files
2026-04-10 22:50:51 +02:00

1447 lines
76 KiB
C#

using System;
using System.Collections;
using System.IO;
using System.Runtime.Remoting;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Prng;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls
{
// Token: 0x02001B84 RID: 7044
[Token(Token = "0x2001B84")]
public abstract class TlsProtocol
{
// Token: 0x0600AF46 RID: 44870 RVA: 0x00261848 File Offset: 0x0025FA48
[Token(Token = "0x600AF46")]
[Address(RVA = "0x1981550", Offset = "0x1980350", VA = "0x181981550")]
public TlsProtocol(Stream stream, SecureRandom secureRandom)
{
}
// Token: 0x0600AF47 RID: 44871 RVA: 0x00261858 File Offset: 0x0025FA58
[Token(Token = "0x600AF47")]
[Address(RVA = "0x198FE80", Offset = "0x198EC80", VA = "0x18198FE80")]
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: 0x0600AF48 RID: 44872 RVA: 0x002618C4 File Offset: 0x0025FAC4
[Token(Token = "0x600AF48")]
[Address(RVA = "0x19813E0", Offset = "0x19801E0", VA = "0x1819813E0")]
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: 0x17001BB9 RID: 7097
// (get) Token: 0x0600AF49 RID: 44873
[Token(Token = "0x17001BB9")]
protected abstract TlsContext Context
{
[Token(Token = "0x600AF49")]
[Address(Slot = "4")]
get;
}
// Token: 0x17001BBA RID: 7098
// (get) Token: 0x0600AF4A RID: 44874
[Token(Token = "0x17001BBA")]
internal abstract AbstractTlsContext ContextAdmin
{
[Token(Token = "0x600AF4A")]
[Address(Slot = "5")]
get;
}
// Token: 0x17001BBB RID: 7099
// (get) Token: 0x0600AF4B RID: 44875
[Token(Token = "0x17001BBB")]
protected abstract TlsPeer Peer
{
[Token(Token = "0x600AF4B")]
[Address(Slot = "6")]
get;
}
// Token: 0x0600AF4C RID: 44876 RVA: 0x00261948 File Offset: 0x0025FB48
[Token(Token = "0x600AF4C")]
[Address(RVA = "0x198D0D0", Offset = "0x198BED0", VA = "0x18198D0D0", 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: 0x0600AF4D RID: 44877 RVA: 0x00261978 File Offset: 0x0025FB78
[Token(Token = "0x600AF4D")]
[Address(RVA = "0x198D220", Offset = "0x198C020", VA = "0x18198D220", Slot = "8")]
protected virtual void HandleAlertWarningMessage(byte alertDescription)
{
while (!this.mAppDataReady)
{
}
this.HandleChangeCipherSpecMessage();
}
// Token: 0x0600AF4E RID: 44878 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AF4E")]
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "9")]
protected virtual void HandleChangeCipherSpecMessage()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600AF4F RID: 44879 RVA: 0x00261994 File Offset: 0x0025FB94
[Token(Token = "0x600AF4F")]
[Address(RVA = "0x198D2B0", Offset = "0x198C0B0", VA = "0x18198D2B0", 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: 0x0600AF50 RID: 44880 RVA: 0x002619D8 File Offset: 0x0025FBD8
[Token(Token = "0x600AF50")]
[Address(RVA = "0x198D390", Offset = "0x198C190", VA = "0x18198D390", Slot = "11")]
protected virtual void HandleException(byte alertDescription, string message, Exception cause)
{
if (!this.mClosed)
{
}
}
// Token: 0x0600AF51 RID: 44881 RVA: 0x002619F0 File Offset: 0x0025FBF0
[Token(Token = "0x600AF51")]
[Address(RVA = "0x198D420", Offset = "0x198C220", VA = "0x18198D420", Slot = "12")]
protected virtual void HandleFailure()
{
this.mClosed = true;
this.mFailedWithError = true;
this.mRecordStream.SafeClose();
if (!this.mAppDataReady)
{
TlsContext context = this.Context;
return;
}
}
// Token: 0x0600AF52 RID: 44882
[Token(Token = "0x600AF52")]
[Address(Slot = "13")]
protected abstract void HandleHandshakeMessage(byte type, MemoryStream buf);
// Token: 0x0600AF53 RID: 44883 RVA: 0x00261A30 File Offset: 0x0025FC30
[Token(Token = "0x600AF53")]
[Address(RVA = "0x198BF40", Offset = "0x198AD40", VA = "0x18198BF40", Slot = "14")]
protected virtual void ApplyMaxFragmentLengthExtension()
{
/*
An exception occurred when decompiling this method (0600AF53)
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: 0x0600AF54 RID: 44884 RVA: 0x00261A74 File Offset: 0x0025FC74
[Token(Token = "0x600AF54")]
[Address(RVA = "0x198C150", Offset = "0x198AF50", VA = "0x18198C150", Slot = "15")]
protected virtual void CheckReceivedChangeCipherSpec(bool expected)
{
while (expected != this.mReceivedChangeCipherSpec)
{
}
}
// Token: 0x0600AF55 RID: 44885 RVA: 0x00261A8C File Offset: 0x0025FC8C
[Token(Token = "0x600AF55")]
[Address(RVA = "0x198C1C0", Offset = "0x198AFC0", VA = "0x18198C1C0", 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: 0x0600AF56 RID: 44886 RVA: 0x00261AFC File Offset: 0x0025FCFC
[Token(Token = "0x600AF56")]
[Address(RVA = "0x198C0A0", Offset = "0x198AEA0", VA = "0x18198C0A0", Slot = "17")]
protected virtual void BlockForHandshake()
{
while (this.mBlocking && this.mClosed)
{
}
}
// Token: 0x0600AF57 RID: 44887 RVA: 0x00261B1C File Offset: 0x0025FD1C
[Token(Token = "0x600AF57")]
[Address(RVA = "0x198C3E0", Offset = "0x198B1E0", VA = "0x18198C3E0", 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();
bool flag2;
bool flag = !flag2;
this.mAppDataSplitEnabled = flag;
bool flag3 = this.mAppDataReady;
if (!flag3)
{
this.mAppDataReady = true;
if (this.mBlocking != flag3)
{
TlsStream tlsStream = new TlsStream(this);
this.mTlsStream = tlsStream;
}
}
if (this.mTlsSession != (ulong)0L)
{
if (this.mSessionParameters == (ulong)0L)
{
SessionParameters.Builder builder = new SessionParameters.Builder();
builder.mCipherSuite = (int)((uint)(-1));
builder.mCompressionAlgorithm = (short)((uint)(-1));
int entity = this.mSecurityParameters.Entity;
builder.mCipherSuite = entity;
int cipherSuite = this.mSecurityParameters.CipherSuite;
builder.mCompressionAlgorithm = (short)cipherSuite;
byte[] srpIdentity = this.mSecurityParameters.SrpIdentity;
builder.mExtendedMasterSecret = srpIdentity != null;
int verifyDataLength = this.mSecurityParameters.VerifyDataLength;
builder.mMasterSecret = verifyDataLength;
Certificate certificate = this.mPeerCertificate;
builder.mPeerCertificate = certificate;
byte[] sessionHash = this.mSecurityParameters.SessionHash;
builder.mPskIdentity = sessionHash;
byte[] pskIdentity = this.mSecurityParameters.PskIdentity;
builder.mSrpIdentity = pskIdentity;
IDictionary dictionary = this.mServerExtensions;
if (dictionary != 0)
{
TlsProtocol.WriteExtensions(new MemoryStream(), dictionary);
}
builder.mEncodedServerExtensions = num;
int mCipherSuite = builder.mCipherSuite;
builder.Validate(mCipherSuite != 0, "cipherSuite");
short mCompressionAlgorithm = builder.mCompressionAlgorithm;
builder.Validate(mCompressionAlgorithm != 0, "compressionAlgorithm");
builder.Validate(mCompressionAlgorithm != 0, "masterSecret");
Certificate certificate2 = builder.mPeerCertificate;
SessionParameters sessionParameters;
this.mSessionParameters = sessionParameters;
TlsSession tlsSession = this.mTlsSession;
TlsSessionImpl tlsSessionImpl;
this.mTlsSession = tlsSessionImpl;
}
TlsContext context = this.Context;
}
AbstractTlsContext contextAdmin = this.ContextAdmin;
}
while (num != 0);
}
// Token: 0x0600AF58 RID: 44888 RVA: 0x00261D44 File Offset: 0x0025FF44
[Token(Token = "0x600AF58")]
[Address(RVA = "0x198DE90", Offset = "0x198CC90", VA = "0x18198DE90")]
protected internal void ProcessRecord(byte protocol, byte[] buf, int off, int len)
{
/*
An exception occurred when decompiling this method (0600AF58)
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_C8:
stloc:TlsFatalAlert(var_23_CF, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_24)))
stloc:TlsFatalAlert(var_25_D8, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_26)))
}
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: 0x0600AF59 RID: 44889 RVA: 0x00261E2C File Offset: 0x0026002C
[Token(Token = "0x600AF59")]
[Address(RVA = "0x198DBB0", Offset = "0x198C9B0", VA = "0x18198DBB0")]
private void ProcessHandshakeQueue(ByteQueue queue)
{
int num = 0;
byte[] array = new byte[4];
int num2 = 0;
queue.Read(array, num2, 4, num);
int num3 = 0;
byte b = TlsUtilities.ReadUint8(array, num3);
int num4 = 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(num4);
this.HandleFailure();
}
// Token: 0x0600AF5A RID: 44890 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AF5A")]
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080")]
private void ProcessApplicationDataQueue()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600AF5B RID: 44891 RVA: 0x00261EAC File Offset: 0x002600AC
[Token(Token = "0x600AF5B")]
[Address(RVA = "0x198D880", Offset = "0x198C680", VA = "0x18198D880")]
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: 0x0600AF5C RID: 44892 RVA: 0x00261EE8 File Offset: 0x002600E8
[Token(Token = "0x600AF5C")]
[Address(RVA = "0x198D920", Offset = "0x198C720", VA = "0x18198D920")]
private void ProcessChangeCipherSpec(byte[] buf, int off, int len)
{
int num;
do
{
num = 0;
if (len <= 0)
{
return;
}
byte b = TlsUtilities.ReadUint8(buf, 0);
}
while (this.mReceivedChangeCipherSpec);
ByteQueue byteQueue = this.mAlertQueue;
ByteQueue byteQueue2 = this.mHandshakeQueue;
this.mRecordStream.ReceivedReadCipherSpec();
this.mReceivedChangeCipherSpec = true;
num++;
}
// Token: 0x0600AF5D RID: 44893 RVA: 0x00261F30 File Offset: 0x00260130
[Token(Token = "0x600AF5D")]
[Address(RVA = "0x198BF20", Offset = "0x198AD20", VA = "0x18198BF20", Slot = "19")]
protected internal virtual int ApplicationDataAvailable()
{
return this.mApplicationDataQueue.available;
}
// Token: 0x0600AF5E RID: 44894 RVA: 0x00261F50 File Offset: 0x00260150
[Token(Token = "0x600AF5E")]
[Address(RVA = "0x198E490", Offset = "0x198D290", VA = "0x18198E490", Slot = "20")]
protected internal virtual int ReadApplicationData(byte[] buf, int offset, int len)
{
/*
An exception occurred when decompiling this method (0600AF5E)
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: 0x0600AF5F RID: 44895 RVA: 0x00261FA4 File Offset: 0x002601A4
[Token(Token = "0x600AF5F")]
[Address(RVA = "0x198EC80", Offset = "0x198DA80", VA = "0x18198EC80", Slot = "21")]
protected virtual void SafeCheckRecordHeader(byte[] recordHeader)
{
this.mRecordStream.CheckRecordHeader(recordHeader);
}
// Token: 0x0600AF60 RID: 44896 RVA: 0x00261FCC File Offset: 0x002601CC
[Token(Token = "0x600AF60")]
[Address(RVA = "0x198EDC0", Offset = "0x198DBC0", VA = "0x18198EDC0", Slot = "22")]
protected virtual void SafeReadRecord()
{
if (this.mRecordStream.ReadRecord() || this.mAppDataReady)
{
return;
}
throw new NullReferenceException();
}
// Token: 0x0600AF61 RID: 44897 RVA: 0x00261FFC File Offset: 0x002601FC
[Token(Token = "0x600AF61")]
[Address(RVA = "0x198EF80", Offset = "0x198DD80", VA = "0x18198EF80", Slot = "23")]
protected virtual void SafeWriteRecord(byte type, byte[] buf, int offset, int len)
{
RecordStream recordStream = this.mRecordStream;
}
// Token: 0x0600AF62 RID: 44898 RVA: 0x0026201C File Offset: 0x0026021C
[Token(Token = "0x600AF62")]
[Address(RVA = "0x198F560", Offset = "0x198E360", VA = "0x18198F560", Slot = "24")]
protected internal virtual void WriteData(byte[] buf, int offset, int len)
{
/*
An exception occurred when decompiling this method (0600AF62)
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: 0x0600AF63 RID: 44899 RVA: 0x0026208C File Offset: 0x0026028C
[Token(Token = "0x600AF63")]
[Address(RVA = "0x198F4C0", Offset = "0x198E2C0", VA = "0x18198F4C0", Slot = "25")]
protected virtual void SetAppDataSplitMode(int appDataSplitMode)
{
/*
An exception occurred when decompiling this method (0600AF63)
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: 0x0600AF64 RID: 44900 RVA: 0x002620BC File Offset: 0x002602BC
[Token(Token = "0x600AF64")]
[Address(RVA = "0x198F800", Offset = "0x198E600", VA = "0x18198F800", Slot = "26")]
protected virtual void WriteHandshakeMessage(byte[] buf, int off, int len)
{
byte b = TlsUtilities.ReadUint8(buf, off);
int num = this.mRecordStream.mHandshakeHashUpdater.ReadByte();
int num2 = 0;
int num3 = this.mRecordStream.mPlaintextLimit;
num3 = Math.Min(len, off);
this.SafeReadRecord();
num2 += num3;
}
// Token: 0x17001BBC RID: 7100
// (get) Token: 0x0600AF65 RID: 44901 RVA: 0x0026210C File Offset: 0x0026030C
[Token(Token = "0x17001BBC")]
public virtual Stream Stream
{
[Token(Token = "0x600AF65")]
[Address(RVA = "0x198FFB0", Offset = "0x198EDB0", VA = "0x18198FFB0", Slot = "27")]
get
{
/*
An exception occurred when decompiling this method (0600AF65)
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: 0x0600AF66 RID: 44902 RVA: 0x00262134 File Offset: 0x00260334
[Token(Token = "0x600AF66")]
[Address(RVA = "0x198C280", Offset = "0x198B080", VA = "0x18198C280", Slot = "28")]
public virtual void CloseInput()
{
for (;;)
{
if (!this.mBlocking)
{
if (this.mClosed)
{
break;
}
ByteQueueStream byteQueueStream = this.mInputBuffers;
if (this.mAppDataReady)
{
break;
}
}
}
}
// Token: 0x0600AF67 RID: 44903 RVA: 0x0026216C File Offset: 0x0026036C
[Token(Token = "0x600AF67")]
[Address(RVA = "0x198D560", Offset = "0x198C360", VA = "0x18198D560", Slot = "29")]
public virtual void OfferInput(byte[] input)
{
/*
An exception occurred when decompiling this method (0600AF67)
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: 0x0600AF68 RID: 44904 RVA: 0x002621CC File Offset: 0x002603CC
[Token(Token = "0x600AF68")]
[Address(RVA = "0x198CC60", Offset = "0x198BA60", VA = "0x18198CC60", Slot = "30")]
public virtual int GetAvailableInputBytes()
{
/*
An exception occurred when decompiling this method (0600AF68)
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: 0x0600AF69 RID: 44905 RVA: 0x002621F4 File Offset: 0x002603F4
[Token(Token = "0x600AF69")]
[Address(RVA = "0x198E870", Offset = "0x198D670", VA = "0x18198E870", Slot = "31")]
public virtual int ReadInput(byte[] buffer, int offset, int length)
{
/*
An exception occurred when decompiling this method (0600AF69)
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: 0x0600AF6A RID: 44906 RVA: 0x00262224 File Offset: 0x00260424
[Token(Token = "0x600AF6A")]
[Address(RVA = "0x198D780", Offset = "0x198C580", VA = "0x18198D780", Slot = "32")]
public virtual void OfferOutput(byte[] buffer, int offset, int length)
{
/*
An exception occurred when decompiling this method (0600AF6A)
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: 0x0600AF6B RID: 44907 RVA: 0x00262260 File Offset: 0x00260460
[Token(Token = "0x600AF6B")]
[Address(RVA = "0x198CCE0", Offset = "0x198BAE0", VA = "0x18198CCE0", Slot = "33")]
public virtual int GetAvailableOutputBytes()
{
/*
An exception occurred when decompiling this method (0600AF6B)
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: 0x0600AF6C RID: 44908 RVA: 0x0026228C File Offset: 0x0026048C
[Token(Token = "0x600AF6C")]
[Address(RVA = "0x198E970", Offset = "0x198D770", VA = "0x18198E970", Slot = "34")]
public virtual int ReadOutput(byte[] buffer, int offset, int length)
{
/*
An exception occurred when decompiling this method (0600AF6C)
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: 0x0600AF6D RID: 44909 RVA: 0x002622BC File Offset: 0x002604BC
[Token(Token = "0x600AF6D")]
[Address(RVA = "0x198D4A0", Offset = "0x198C2A0", VA = "0x18198D4A0", Slot = "35")]
protected virtual void InvalidateSession()
{
SessionParameters sessionParameters = this.mSessionParameters;
if (sessionParameters != 0)
{
byte[] mMasterSecret = sessionParameters.mMasterSecret;
if (mMasterSecret != 0)
{
int num = 0;
Arrays.Fill(mMasterSecret, (byte)num);
}
this.mSessionParameters = (ulong)0L;
}
if (this.mTlsSession != 0)
{
this.mTlsSession = (ulong)0L;
}
}
// Token: 0x0600AF6E RID: 44910 RVA: 0x00262304 File Offset: 0x00260504
[Token(Token = "0x600AF6E")]
[Address(RVA = "0x198DA90", Offset = "0x198C890", VA = "0x18198DA90", 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: 0x0600AF6F RID: 44911 RVA: 0x00262340 File Offset: 0x00260540
[Token(Token = "0x600AF6F")]
[Address(RVA = "0x198E240", Offset = "0x198D040", VA = "0x18198E240", 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: 0x0600AF70 RID: 44912 RVA: 0x00262380 File Offset: 0x00260580
[Token(Token = "0x600AF70")]
[Address(RVA = "0x198E380", Offset = "0x198D180", VA = "0x18198E380", 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: 0x0600AF71 RID: 44913 RVA: 0x002623BC File Offset: 0x002605BC
[Token(Token = "0x600AF71")]
[Address(RVA = "0x198F0E0", Offset = "0x198DEE0", VA = "0x18198F0E0", 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: 0x0600AF72 RID: 44914 RVA: 0x00262414 File Offset: 0x00260614
[Token(Token = "0x600AF72")]
[Address(RVA = "0x198F2A0", Offset = "0x198E0A0", VA = "0x18198F2A0", Slot = "40")]
protected virtual void SendChangeCipherSpecMessage()
{
int length = new byte[] { (byte)((ulong)1L) }.Length;
this.SafeReadRecord();
this.mRecordStream.SentWriteCipherSpec();
}
// Token: 0x0600AF73 RID: 44915 RVA: 0x00262450 File Offset: 0x00260650
[Token(Token = "0x600AF73")]
[Address(RVA = "0x198F340", Offset = "0x198E140", VA = "0x18198F340", Slot = "41")]
protected virtual void SendFinishedMessage()
{
string text = this.ToString();
TlsProtocol.HandshakeMessage handshakeMessage;
int num = handshakeMessage.ReadByte();
handshakeMessage.WriteToRecordStream(this);
}
// Token: 0x0600AF74 RID: 44916 RVA: 0x00262478 File Offset: 0x00260678
[Token(Token = "0x600AF74")]
[Address(RVA = "0x198F430", Offset = "0x198E230", VA = "0x18198F430", Slot = "42")]
protected virtual void SendSupplementalDataMessage(IList supplementalData)
{
TlsProtocol.HandshakeMessage handshakeMessage;
TlsProtocol.WriteSupplementalData(handshakeMessage, supplementalData);
handshakeMessage.WriteToRecordStream(this);
}
// Token: 0x0600AF75 RID: 44917 RVA: 0x0026249C File Offset: 0x0026069C
[Token(Token = "0x600AF75")]
[Address(RVA = "0x198C9E0", Offset = "0x198B7E0", VA = "0x18198C9E0", Slot = "43")]
protected virtual byte[] CreateVerifyData(bool isServer)
{
string text = this.ToString();
if (isServer)
{
}
RecordStream recordStream = this.mRecordStream;
byte[] array;
return array;
}
// Token: 0x0600AF76 RID: 44918 RVA: 0x002624C4 File Offset: 0x002606C4
[Token(Token = "0x600AF76")]
[Address(RVA = "0x198C3C0", Offset = "0x198B1C0", VA = "0x18198C3C0", Slot = "44")]
public virtual void Close()
{
TlsContext context = this.Context;
}
// Token: 0x0600AF77 RID: 44919 RVA: 0x002624D8 File Offset: 0x002606D8
[Token(Token = "0x600AF77")]
[Address(RVA = "0x198CC40", Offset = "0x198BA40", VA = "0x18198CC40", Slot = "45")]
protected internal virtual void Flush()
{
this.mRecordStream.Flush();
}
// Token: 0x17001BBD RID: 7101
// (get) Token: 0x0600AF78 RID: 44920 RVA: 0x002624F8 File Offset: 0x002606F8
[Token(Token = "0x17001BBD")]
public virtual bool IsClosed
{
[Token(Token = "0x600AF78")]
[Address(RVA = "0x198FF90", Offset = "0x198ED90", VA = "0x18198FF90", Slot = "46")]
get
{
return this.mClosed;
}
}
// Token: 0x0600AF79 RID: 44921 RVA: 0x0026250C File Offset: 0x0026070C
[Token(Token = "0x600AF79")]
[Address(RVA = "0x198DDD0", Offset = "0x198CBD0", VA = "0x18198DDD0", Slot = "47")]
protected virtual short ProcessMaxFragmentLengthExtension(IDictionary clientExtensions, IDictionary serverExtensions, byte alertDescription)
{
/*
An exception occurred when decompiling this method (0600AF79)
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: 0x0600AF7A RID: 44922 RVA: 0x00262548 File Offset: 0x00260748
[Token(Token = "0x600AF7A")]
[Address(RVA = "0x198EBC0", Offset = "0x198D9C0", VA = "0x18198EBC0", Slot = "48")]
protected virtual void RefuseRenegotiation()
{
bool flag;
do
{
string text = this.ToString();
}
while (flag);
TlsContext context = this.Context;
}
// Token: 0x0600AF7B RID: 44923 RVA: 0x00262568 File Offset: 0x00260768
[Token(Token = "0x600AF7B")]
[Address(RVA = "0x198C000", Offset = "0x198AE00", VA = "0x18198C000")]
protected internal static void AssertEmpty(MemoryStream buf)
{
long length = buf.Length;
bool canWrite = buf.CanWrite;
}
// Token: 0x0600AF7C RID: 44924 RVA: 0x00262584 File Offset: 0x00260784
[Token(Token = "0x600AF7C")]
[Address(RVA = "0x198C8D0", Offset = "0x198B6D0", VA = "0x18198C8D0")]
protected internal static byte[] CreateRandomBlock(bool useGmtUnixTime, IRandomGenerator randomGenerator)
{
byte[] array = new byte[32];
if (useGmtUnixTime)
{
int num = 0;
TlsUtilities.WriteGmtUnixTime(array, num);
}
return array;
}
// Token: 0x0600AF7D RID: 44925 RVA: 0x002625B0 File Offset: 0x002607B0
[Token(Token = "0x600AF7D")]
[Address(RVA = "0x198C980", Offset = "0x198B780", VA = "0x18198C980")]
protected internal static byte[] CreateRenegotiationInfo(byte[] renegotiated_connection)
{
return TlsUtilities.EncodeOpaque8(renegotiated_connection);
}
// Token: 0x0600AF7E RID: 44926 RVA: 0x002625C4 File Offset: 0x002607C4
[Token(Token = "0x600AF7E")]
[Address(RVA = "0x198CB00", Offset = "0x198B900", VA = "0x18198CB00")]
protected internal static void EstablishMasterSecret(TlsContext context, TlsKeyExchange keyExchange)
{
while (0 != 0)
{
}
}
// Token: 0x0600AF7F RID: 44927 RVA: 0x002625E4 File Offset: 0x002607E4
[Token(Token = "0x600AF7F")]
[Address(RVA = "0x198CD70", Offset = "0x198BB70", VA = "0x18198CD70")]
protected internal static byte[] GetCurrentPrfHash(TlsContext context, TlsHandshakeHash handshakeHash, byte[] sslSender)
{
if (sslSender != 0 && TlsUtilities.IsSsl(context))
{
int length = sslSender.Length;
}
return DigestUtilities.DoFinal(handshakeHash);
}
// Token: 0x0600AF80 RID: 44928 RVA: 0x00262614 File Offset: 0x00260814
[Token(Token = "0x600AF80")]
[Address(RVA = "0x198E630", Offset = "0x198D430", VA = "0x18198E630")]
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: 0x0600AF81 RID: 44929 RVA: 0x00262688 File Offset: 0x00260888
[Token(Token = "0x600AF81")]
[Address(RVA = "0x198EA30", Offset = "0x198D830", VA = "0x18198EA30")]
protected internal static IList ReadSupplementalDataMessage(MemoryStream input)
{
byte[] array = TlsUtilities.ReadOpaque24(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;
supplementalDataEntry.mDataType = num2;
supplementalDataEntry.mData = array2;
}
return list;
}
// Token: 0x0600AF82 RID: 44930 RVA: 0x002626F8 File Offset: 0x002608F8
[Token(Token = "0x600AF82")]
[Address(RVA = "0x198F730", Offset = "0x198E530", VA = "0x18198F730")]
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: 0x0600AF83 RID: 44931 RVA: 0x00262724 File Offset: 0x00260924
[Token(Token = "0x600AF83")]
[Address(RVA = "0x198F970", Offset = "0x198E770", VA = "0x18198F970")]
protected internal static void WriteSelectedExtensions(Stream output, IDictionary extensions, bool selectEmpty)
{
int num;
do
{
num = 0;
if (num < typeof(int).TypeHandle)
{
num += num;
num++;
}
bool flag = "{il2cpp field on {'constant5' (constant value of type Cpp2IL.Core.Analysis.ResultModels.StackPointer)}, offset 0x18}" == num;
}
while (num != 0);
}
// Token: 0x0600AF84 RID: 44932 RVA: 0x00262764 File Offset: 0x00260964
[Token(Token = "0x600AF84")]
[Address(RVA = "0x198FC20", Offset = "0x198EA20", VA = "0x18198FC20")]
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_29;
}
string text = memoryStream.ToString();
}
ObjRef objRef;
if (objRef != 0)
{
}
}
while (num != 0);
return;
IL_29:
throw new NullReferenceException();
}
// Token: 0x0600AF85 RID: 44933 RVA: 0x002627A8 File Offset: 0x002609A8
[Token(Token = "0x600AF85")]
[Address(RVA = "0x198CE60", Offset = "0x198BC60", VA = "0x18198CE60")]
protected internal static int GetPrfAlgorithm(TlsContext context, int ciphersuite)
{
/*
An exception occurred when decompiling this method (0600AF85)
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: 0x04007026 RID: 28710
[Token(Token = "0x4007026")]
protected const short CS_START = 0;
// Token: 0x04007027 RID: 28711
[Token(Token = "0x4007027")]
protected const short CS_CLIENT_HELLO = 1;
// Token: 0x04007028 RID: 28712
[Token(Token = "0x4007028")]
protected const short CS_SERVER_HELLO = 2;
// Token: 0x04007029 RID: 28713
[Token(Token = "0x4007029")]
protected const short CS_SERVER_SUPPLEMENTAL_DATA = 3;
// Token: 0x0400702A RID: 28714
[Token(Token = "0x400702A")]
protected const short CS_SERVER_CERTIFICATE = 4;
// Token: 0x0400702B RID: 28715
[Token(Token = "0x400702B")]
protected const short CS_CERTIFICATE_STATUS = 5;
// Token: 0x0400702C RID: 28716
[Token(Token = "0x400702C")]
protected const short CS_SERVER_KEY_EXCHANGE = 6;
// Token: 0x0400702D RID: 28717
[Token(Token = "0x400702D")]
protected const short CS_CERTIFICATE_REQUEST = 7;
// Token: 0x0400702E RID: 28718
[Token(Token = "0x400702E")]
protected const short CS_SERVER_HELLO_DONE = 8;
// Token: 0x0400702F RID: 28719
[Token(Token = "0x400702F")]
protected const short CS_CLIENT_SUPPLEMENTAL_DATA = 9;
// Token: 0x04007030 RID: 28720
[Token(Token = "0x4007030")]
protected const short CS_CLIENT_CERTIFICATE = 10;
// Token: 0x04007031 RID: 28721
[Token(Token = "0x4007031")]
protected const short CS_CLIENT_KEY_EXCHANGE = 11;
// Token: 0x04007032 RID: 28722
[Token(Token = "0x4007032")]
protected const short CS_CERTIFICATE_VERIFY = 12;
// Token: 0x04007033 RID: 28723
[Token(Token = "0x4007033")]
protected const short CS_CLIENT_FINISHED = 13;
// Token: 0x04007034 RID: 28724
[Token(Token = "0x4007034")]
protected const short CS_SERVER_SESSION_TICKET = 14;
// Token: 0x04007035 RID: 28725
[Token(Token = "0x4007035")]
protected const short CS_SERVER_FINISHED = 15;
// Token: 0x04007036 RID: 28726
[Token(Token = "0x4007036")]
protected const short CS_END = 16;
// Token: 0x04007037 RID: 28727
[Token(Token = "0x4007037")]
protected const short ADS_MODE_1_Nsub1 = 0;
// Token: 0x04007038 RID: 28728
[Token(Token = "0x4007038")]
protected const short ADS_MODE_0_N = 1;
// Token: 0x04007039 RID: 28729
[Token(Token = "0x4007039")]
protected const short ADS_MODE_0_N_FIRSTONLY = 2;
// Token: 0x0400703A RID: 28730
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400703A")]
private ByteQueue mApplicationDataQueue;
// Token: 0x0400703B RID: 28731
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400703B")]
private ByteQueue mAlertQueue;
// Token: 0x0400703C RID: 28732
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400703C")]
private ByteQueue mHandshakeQueue;
// Token: 0x0400703D RID: 28733
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400703D")]
internal RecordStream mRecordStream;
// Token: 0x0400703E RID: 28734
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400703E")]
protected SecureRandom mSecureRandom;
// Token: 0x0400703F RID: 28735
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400703F")]
private TlsStream mTlsStream;
// Token: 0x04007040 RID: 28736
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007040")]
private bool mClosed;
// Token: 0x04007041 RID: 28737
[FieldOffset(Offset = "0x41")]
[Token(Token = "0x4007041")]
private bool mFailedWithError;
// Token: 0x04007042 RID: 28738
[FieldOffset(Offset = "0x42")]
[Token(Token = "0x4007042")]
private bool mAppDataReady;
// Token: 0x04007043 RID: 28739
[FieldOffset(Offset = "0x43")]
[Token(Token = "0x4007043")]
private bool mAppDataSplitEnabled;
// Token: 0x04007044 RID: 28740
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x4007044")]
private int mAppDataSplitMode;
// Token: 0x04007045 RID: 28741
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4007045")]
private byte[] mExpectedVerifyData;
// Token: 0x04007046 RID: 28742
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4007046")]
protected TlsSession mTlsSession;
// Token: 0x04007047 RID: 28743
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4007047")]
protected SessionParameters mSessionParameters;
// Token: 0x04007048 RID: 28744
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4007048")]
protected SecurityParameters mSecurityParameters;
// Token: 0x04007049 RID: 28745
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4007049")]
protected Certificate mPeerCertificate;
// Token: 0x0400704A RID: 28746
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x400704A")]
protected int[] mOfferedCipherSuites;
// Token: 0x0400704B RID: 28747
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x400704B")]
protected byte[] mOfferedCompressionMethods;
// Token: 0x0400704C RID: 28748
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x400704C")]
protected IDictionary mClientExtensions;
// Token: 0x0400704D RID: 28749
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x400704D")]
protected IDictionary mServerExtensions;
// Token: 0x0400704E RID: 28750
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x400704E")]
protected short mConnectionState;
// Token: 0x0400704F RID: 28751
[FieldOffset(Offset = "0x92")]
[Token(Token = "0x400704F")]
protected bool mResumedSession;
// Token: 0x04007050 RID: 28752
[FieldOffset(Offset = "0x93")]
[Token(Token = "0x4007050")]
protected bool mReceivedChangeCipherSpec;
// Token: 0x04007051 RID: 28753
[FieldOffset(Offset = "0x94")]
[Token(Token = "0x4007051")]
protected bool mSecureRenegotiation;
// Token: 0x04007052 RID: 28754
[FieldOffset(Offset = "0x95")]
[Token(Token = "0x4007052")]
protected bool mAllowCertificateStatus;
// Token: 0x04007053 RID: 28755
[FieldOffset(Offset = "0x96")]
[Token(Token = "0x4007053")]
protected bool mExpectSessionTicket;
// Token: 0x04007054 RID: 28756
[FieldOffset(Offset = "0x97")]
[Token(Token = "0x4007054")]
protected bool mBlocking;
// Token: 0x04007055 RID: 28757
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x4007055")]
protected ByteQueueStream mInputBuffers;
// Token: 0x04007056 RID: 28758
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x4007056")]
protected ByteQueueStream mOutputBuffer;
// Token: 0x02001B85 RID: 7045
[Token(Token = "0x2001B85")]
internal class HandshakeMessage : MemoryStream
{
// Token: 0x0600AF86 RID: 44934 RVA: 0x00262810 File Offset: 0x00260A10
[Token(Token = "0x600AF86")]
[Address(RVA = "0x1979390", Offset = "0x1978190", VA = "0x181979390")]
internal HandshakeMessage(byte handshakeType)
{
}
// Token: 0x0600AF87 RID: 44935 RVA: 0x00262820 File Offset: 0x00260A20
[Token(Token = "0x600AF87")]
[Address(RVA = "0x19793A0", Offset = "0x19781A0", VA = "0x1819793A0")]
internal HandshakeMessage(byte handshakeType, int length)
: base((int)handshakeType)
{
TlsUtilities.WriteUint8(handshakeType, this);
TlsUtilities.WriteUint24(0, this);
}
// Token: 0x0600AF88 RID: 44936 RVA: 0x00262844 File Offset: 0x00260A44
[Token(Token = "0x600AF88")]
[Address(RVA = "0x18D60D0", Offset = "0x18D4ED0", VA = "0x1818D60D0")]
internal void Write(byte[] data)
{
int num = this.ReadByte();
}
// Token: 0x0600AF89 RID: 44937 RVA: 0x00262860 File Offset: 0x00260A60
[Token(Token = "0x600AF89")]
[Address(RVA = "0x1979260", Offset = "0x1978060", VA = "0x181979260")]
internal void WriteToRecordStream(TlsProtocol protocol)
{
bool canWrite = this.CanWrite;
long position = this.Position;
bool canWrite2 = this.CanWrite;
}
}
}
}