Files
27Aug2021-Cpp2IL-Dump/Assembly-CSharp/BestHTTP/SecureProtocol/Org/BouncyCastle/Crypto/Tls/TlsProtocol.cs
T
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

1470 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: 0x02001C64 RID: 7268
[Token(Token = "0x2001C64")]
public abstract class TlsProtocol
{
// Token: 0x0600B314 RID: 45844 RVA: 0x0026A9DC File Offset: 0x00268BDC
[Token(Token = "0x600B314")]
[Address(RVA = "0x49F860", Offset = "0x49E860", VA = "0x18049F860")]
public TlsProtocol(Stream stream, SecureRandom secureRandom)
{
}
// Token: 0x0600B315 RID: 45845 RVA: 0x0026A9EC File Offset: 0x00268BEC
[Token(Token = "0x600B315")]
[Address(RVA = "0x4AE640", Offset = "0x4AD640", VA = "0x1804AE640")]
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: 0x0600B316 RID: 45846 RVA: 0x0026AA58 File Offset: 0x00268C58
[Token(Token = "0x600B316")]
[Address(RVA = "0x49F6F0", Offset = "0x49E6F0", VA = "0x18049F6F0")]
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: 0x17001C56 RID: 7254
// (get) Token: 0x0600B317 RID: 45847
[Token(Token = "0x17001C56")]
protected abstract TlsContext Context
{
[Token(Token = "0x600B317")]
[Address(Slot = "4")]
get;
}
// Token: 0x17001C57 RID: 7255
// (get) Token: 0x0600B318 RID: 45848
[Token(Token = "0x17001C57")]
internal abstract AbstractTlsContext ContextAdmin
{
[Token(Token = "0x600B318")]
[Address(Slot = "5")]
get;
}
// Token: 0x17001C58 RID: 7256
// (get) Token: 0x0600B319 RID: 45849
[Token(Token = "0x17001C58")]
protected abstract TlsPeer Peer
{
[Token(Token = "0x600B319")]
[Address(Slot = "6")]
get;
}
// Token: 0x0600B31A RID: 45850 RVA: 0x0026AADC File Offset: 0x00268CDC
[Token(Token = "0x600B31A")]
[Address(RVA = "0x4AB800", Offset = "0x4AA800", VA = "0x1804AB800", 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: 0x0600B31B RID: 45851 RVA: 0x0026AB0C File Offset: 0x00268D0C
[Token(Token = "0x600B31B")]
[Address(RVA = "0x4AB950", Offset = "0x4AA950", VA = "0x1804AB950", Slot = "8")]
protected virtual void HandleAlertWarningMessage(byte alertDescription)
{
while (!this.mAppDataReady)
{
}
this.HandleChangeCipherSpecMessage();
}
// Token: 0x0600B31C RID: 45852 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600B31C")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "9")]
protected virtual void HandleChangeCipherSpecMessage()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600B31D RID: 45853 RVA: 0x0026AB28 File Offset: 0x00268D28
[Token(Token = "0x600B31D")]
[Address(RVA = "0x4AB9E0", Offset = "0x4AA9E0", VA = "0x1804AB9E0", 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: 0x0600B31E RID: 45854 RVA: 0x0026AB6C File Offset: 0x00268D6C
[Token(Token = "0x600B31E")]
[Address(RVA = "0x4ABAC0", Offset = "0x4AAAC0", VA = "0x1804ABAC0", Slot = "11")]
protected virtual void HandleException(byte alertDescription, string message, Exception cause)
{
if (!this.mClosed)
{
}
}
// Token: 0x0600B31F RID: 45855 RVA: 0x0026AB84 File Offset: 0x00268D84
[Token(Token = "0x600B31F")]
[Address(RVA = "0x4ABB50", Offset = "0x4AAB50", VA = "0x1804ABB50", Slot = "12")]
protected virtual void HandleFailure()
{
this.mClosed = true;
this.mFailedWithError = true;
this.mRecordStream.SafeClose();
if (!this.mAppDataReady)
{
TlsContext context = this.Context;
return;
}
}
// Token: 0x0600B320 RID: 45856
[Token(Token = "0x600B320")]
[Address(Slot = "13")]
protected abstract void HandleHandshakeMessage(byte type, MemoryStream buf);
// Token: 0x0600B321 RID: 45857 RVA: 0x0026ABC4 File Offset: 0x00268DC4
[Token(Token = "0x600B321")]
[Address(RVA = "0x4AA5F0", Offset = "0x4A95F0", VA = "0x1804AA5F0", Slot = "14")]
protected virtual void ApplyMaxFragmentLengthExtension()
{
short num = this.mSecurityParameters.maxFragmentLength - 1;
RecordStream recordStream = this.mRecordStream;
uint num2;
recordStream.mPlaintextLimit = (int)num2;
recordStream.mCompressedLimit = (int)num;
recordStream.mCiphertextLimit = (int)num;
}
// Token: 0x0600B322 RID: 45858 RVA: 0x0026AC0C File Offset: 0x00268E0C
[Token(Token = "0x600B322")]
[Address(RVA = "0x4AA7F0", Offset = "0x4A97F0", VA = "0x1804AA7F0", Slot = "15")]
protected virtual void CheckReceivedChangeCipherSpec(bool expected)
{
while (expected != this.mReceivedChangeCipherSpec)
{
}
}
// Token: 0x0600B323 RID: 45859 RVA: 0x0026AC24 File Offset: 0x00268E24
[Token(Token = "0x600B323")]
[Address(RVA = "0x4AA860", Offset = "0x4A9860", VA = "0x1804AA860", 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: 0x0600B324 RID: 45860 RVA: 0x0026AC94 File Offset: 0x00268E94
[Token(Token = "0x600B324")]
[Address(RVA = "0x4AA740", Offset = "0x4A9740", VA = "0x1804AA740", Slot = "17")]
protected virtual void BlockForHandshake()
{
while (this.mBlocking && this.mClosed)
{
}
}
// Token: 0x0600B325 RID: 45861 RVA: 0x0026ACB4 File Offset: 0x00268EB4
[Token(Token = "0x600B325")]
[Address(RVA = "0x4AAA80", Offset = "0x4A9A80", VA = "0x1804AAA80", Slot = "18")]
protected virtual void CompleteHandshake()
{
int num;
do
{
num = 0;
this.mConnectionState = (short)((uint)16);
this.mAlertQueue.Shrink();
this.mHandshakeQueue.Shrink();
RecordStream recordStream = this.mRecordStream;
TlsCompression mPendingCompression = recordStream.mPendingCompression;
if (recordStream.mReadCompression != mPendingCompression || recordStream.mWriteCompression != mPendingCompression)
{
goto IL_255;
}
TlsCipher mPendingCipher = recordStream.mPendingCipher;
if (recordStream.mReadCipher != mPendingCipher || recordStream.mWriteCipher != mPendingCipher)
{
goto IL_255;
}
recordStream.mPendingCompression = num;
recordStream.mPendingCipher = num;
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);
return;
IL_255:
throw new NullReferenceException();
}
// Token: 0x0600B326 RID: 45862 RVA: 0x0026AF28 File Offset: 0x00269128
[Token(Token = "0x600B326")]
[Address(RVA = "0x4AC5C0", Offset = "0x4AB5C0", VA = "0x1804AC5C0")]
protected internal void ProcessRecord(byte protocol, byte[] buf, int off, int len)
{
/*
An exception occurred when decompiling this method (0600B326)
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: 0x0600B327 RID: 45863 RVA: 0x0026B010 File Offset: 0x00269210
[Token(Token = "0x600B327")]
[Address(RVA = "0x4AC2E0", Offset = "0x4AB2E0", VA = "0x1804AC2E0")]
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: 0x0600B328 RID: 45864 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600B328")]
[Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0")]
private void ProcessApplicationDataQueue()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600B329 RID: 45865 RVA: 0x0026B090 File Offset: 0x00269290
[Token(Token = "0x600B329")]
[Address(RVA = "0x4ABFB0", Offset = "0x4AAFB0", VA = "0x1804ABFB0")]
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: 0x0600B32A RID: 45866 RVA: 0x0026B0CC File Offset: 0x002692CC
[Token(Token = "0x600B32A")]
[Address(RVA = "0x4AC050", Offset = "0x4AB050", VA = "0x1804AC050")]
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: 0x0600B32B RID: 45867 RVA: 0x0026B114 File Offset: 0x00269314
[Token(Token = "0x600B32B")]
[Address(RVA = "0x4AA5D0", Offset = "0x4A95D0", VA = "0x1804AA5D0", Slot = "19")]
protected internal virtual int ApplicationDataAvailable()
{
return this.mApplicationDataQueue.available;
}
// Token: 0x0600B32C RID: 45868 RVA: 0x0026B134 File Offset: 0x00269334
[Token(Token = "0x600B32C")]
[Address(RVA = "0x4ACBC0", Offset = "0x4ABBC0", VA = "0x1804ACBC0", Slot = "20")]
protected internal virtual int ReadApplicationData(byte[] buf, int offset, int len)
{
/*
An exception occurred when decompiling this method (0600B32C)
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: 0x0600B32D RID: 45869 RVA: 0x0026B188 File Offset: 0x00269388
[Token(Token = "0x600B32D")]
[Address(RVA = "0x4AD3B0", Offset = "0x4AC3B0", VA = "0x1804AD3B0", Slot = "21")]
protected virtual void SafeCheckRecordHeader(byte[] recordHeader)
{
this.mRecordStream.CheckRecordHeader(recordHeader);
}
// Token: 0x0600B32E RID: 45870 RVA: 0x0026B1B0 File Offset: 0x002693B0
[Token(Token = "0x600B32E")]
[Address(RVA = "0x4AD4F0", Offset = "0x4AC4F0", VA = "0x1804AD4F0", Slot = "22")]
protected virtual void SafeReadRecord()
{
if (this.mRecordStream.ReadRecord() || this.mAppDataReady)
{
return;
}
throw new NullReferenceException();
}
// Token: 0x0600B32F RID: 45871 RVA: 0x0026B1E0 File Offset: 0x002693E0
[Token(Token = "0x600B32F")]
[Address(RVA = "0x4AD6B0", Offset = "0x4AC6B0", VA = "0x1804AD6B0", Slot = "23")]
protected virtual void SafeWriteRecord(byte type, byte[] buf, int offset, int len)
{
RecordStream recordStream = this.mRecordStream;
}
// Token: 0x0600B330 RID: 45872 RVA: 0x0026B200 File Offset: 0x00269400
[Token(Token = "0x600B330")]
[Address(RVA = "0x4ADD20", Offset = "0x4ACD20", VA = "0x1804ADD20", Slot = "24")]
protected internal virtual void WriteData(byte[] buf, int offset, int len)
{
/*
An exception occurred when decompiling this method (0600B330)
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: 0x0600B331 RID: 45873 RVA: 0x0026B270 File Offset: 0x00269470
[Token(Token = "0x600B331")]
[Address(RVA = "0x4ADC80", Offset = "0x4ACC80", VA = "0x1804ADC80", Slot = "25")]
protected virtual void SetAppDataSplitMode(int appDataSplitMode)
{
/*
An exception occurred when decompiling this method (0600B331)
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: 0x0600B332 RID: 45874 RVA: 0x0026B2A0 File Offset: 0x002694A0
[Token(Token = "0x600B332")]
[Address(RVA = "0x4ADFC0", Offset = "0x4ACFC0", VA = "0x1804ADFC0", 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: 0x17001C59 RID: 7257
// (get) Token: 0x0600B333 RID: 45875 RVA: 0x0026B2F0 File Offset: 0x002694F0
[Token(Token = "0x17001C59")]
public virtual Stream Stream
{
[Token(Token = "0x600B333")]
[Address(RVA = "0x4AE770", Offset = "0x4AD770", VA = "0x1804AE770", Slot = "27")]
get
{
/*
An exception occurred when decompiling this method (0600B333)
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: 0x0600B334 RID: 45876 RVA: 0x0026B318 File Offset: 0x00269518
[Token(Token = "0x600B334")]
[Address(RVA = "0x4AA920", Offset = "0x4A9920", VA = "0x1804AA920", Slot = "28")]
public virtual void CloseInput()
{
for (;;)
{
if (!this.mBlocking)
{
if (this.mClosed)
{
break;
}
ByteQueueStream byteQueueStream = this.mInputBuffers;
if (this.mAppDataReady)
{
break;
}
}
}
}
// Token: 0x0600B335 RID: 45877 RVA: 0x0026B350 File Offset: 0x00269550
[Token(Token = "0x600B335")]
[Address(RVA = "0x4ABC90", Offset = "0x4AAC90", VA = "0x1804ABC90", Slot = "29")]
public virtual void OfferInput(byte[] input)
{
/*
An exception occurred when decompiling this method (0600B335)
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: 0x0600B336 RID: 45878 RVA: 0x0026B3B0 File Offset: 0x002695B0
[Token(Token = "0x600B336")]
[Address(RVA = "0x4AB390", Offset = "0x4AA390", VA = "0x1804AB390", Slot = "30")]
public virtual int GetAvailableInputBytes()
{
/*
An exception occurred when decompiling this method (0600B336)
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: 0x0600B337 RID: 45879 RVA: 0x0026B3D8 File Offset: 0x002695D8
[Token(Token = "0x600B337")]
[Address(RVA = "0x4ACFA0", Offset = "0x4ABFA0", VA = "0x1804ACFA0", Slot = "31")]
public virtual int ReadInput(byte[] buffer, int offset, int length)
{
/*
An exception occurred when decompiling this method (0600B337)
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: 0x0600B338 RID: 45880 RVA: 0x0026B408 File Offset: 0x00269608
[Token(Token = "0x600B338")]
[Address(RVA = "0x4ABEB0", Offset = "0x4AAEB0", VA = "0x1804ABEB0", Slot = "32")]
public virtual void OfferOutput(byte[] buffer, int offset, int length)
{
/*
An exception occurred when decompiling this method (0600B338)
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: 0x0600B339 RID: 45881 RVA: 0x0026B444 File Offset: 0x00269644
[Token(Token = "0x600B339")]
[Address(RVA = "0x4AB410", Offset = "0x4AA410", VA = "0x1804AB410", Slot = "33")]
public virtual int GetAvailableOutputBytes()
{
/*
An exception occurred when decompiling this method (0600B339)
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: 0x0600B33A RID: 45882 RVA: 0x0026B470 File Offset: 0x00269670
[Token(Token = "0x600B33A")]
[Address(RVA = "0x4AD0A0", Offset = "0x4AC0A0", VA = "0x1804AD0A0", Slot = "34")]
public virtual int ReadOutput(byte[] buffer, int offset, int length)
{
/*
An exception occurred when decompiling this method (0600B33A)
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: 0x0600B33B RID: 45883 RVA: 0x0026B4A0 File Offset: 0x002696A0
[Token(Token = "0x600B33B")]
[Address(RVA = "0x4ABBD0", Offset = "0x4AABD0", VA = "0x1804ABBD0", 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: 0x0600B33C RID: 45884 RVA: 0x0026B4E8 File Offset: 0x002696E8
[Token(Token = "0x600B33C")]
[Address(RVA = "0x4AC1C0", Offset = "0x4AB1C0", VA = "0x1804AC1C0", 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: 0x0600B33D RID: 45885 RVA: 0x0026B524 File Offset: 0x00269724
[Token(Token = "0x600B33D")]
[Address(RVA = "0x4AC970", Offset = "0x4AB970", VA = "0x1804AC970", 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: 0x0600B33E RID: 45886 RVA: 0x0026B564 File Offset: 0x00269764
[Token(Token = "0x600B33E")]
[Address(RVA = "0x4ACAB0", Offset = "0x4ABAB0", VA = "0x1804ACAB0", 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: 0x0600B33F RID: 45887 RVA: 0x0026B5A0 File Offset: 0x002697A0
[Token(Token = "0x600B33F")]
[Address(RVA = "0x4AD810", Offset = "0x4AC810", VA = "0x1804AD810", 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: 0x0600B340 RID: 45888 RVA: 0x0026B5F4 File Offset: 0x002697F4
[Token(Token = "0x600B340")]
[Address(RVA = "0x4AD9D0", Offset = "0x4AC9D0", VA = "0x1804AD9D0", Slot = "40")]
protected virtual void SendChangeCipherSpecMessage()
{
RecordStream recordStream;
TlsCompression mPendingCompression;
TlsCipher mPendingCipher;
for (;;)
{
int length = new byte[] { (byte)((ulong)1L) }.Length;
this.SafeReadRecord();
recordStream = this.mRecordStream;
mPendingCompression = recordStream.mPendingCompression;
if (mPendingCompression != 0)
{
mPendingCipher = recordStream.mPendingCipher;
if (mPendingCipher != 0)
{
break;
}
}
}
recordStream.mWriteCompression = mPendingCompression;
recordStream.mWriteCipher = mPendingCipher;
RecordStream.SequenceNumber sequenceNumber = new RecordStream.SequenceNumber();
recordStream.mWriteSeqNo = sequenceNumber;
}
// Token: 0x0600B341 RID: 45889 RVA: 0x0026B664 File Offset: 0x00269864
[Token(Token = "0x600B341")]
[Address(RVA = "0x4ADB00", Offset = "0x4ACB00", VA = "0x1804ADB00", Slot = "41")]
protected virtual void SendFinishedMessage()
{
string text = this.ToString();
TlsProtocol.HandshakeMessage handshakeMessage;
int num = handshakeMessage.ReadByte();
handshakeMessage.WriteToRecordStream(this);
}
// Token: 0x0600B342 RID: 45890 RVA: 0x0026B68C File Offset: 0x0026988C
[Token(Token = "0x600B342")]
[Address(RVA = "0x4ADBF0", Offset = "0x4ACBF0", VA = "0x1804ADBF0", Slot = "42")]
protected virtual void SendSupplementalDataMessage(IList supplementalData)
{
TlsProtocol.HandshakeMessage handshakeMessage;
TlsProtocol.WriteSupplementalData(handshakeMessage, supplementalData);
handshakeMessage.WriteToRecordStream(this);
}
// Token: 0x0600B343 RID: 45891 RVA: 0x0026B6B0 File Offset: 0x002698B0
[Token(Token = "0x600B343")]
[Address(RVA = "0x4AB0F0", Offset = "0x4AA0F0", VA = "0x1804AB0F0", Slot = "43")]
protected virtual byte[] CreateVerifyData(bool isServer)
{
string text = this.ToString();
if (isServer)
{
}
RecordStream recordStream = this.mRecordStream;
byte[] array;
return array;
}
// Token: 0x0600B344 RID: 45892 RVA: 0x0026B6D8 File Offset: 0x002698D8
[Token(Token = "0x600B344")]
[Address(RVA = "0x4AAA60", Offset = "0x4A9A60", VA = "0x1804AAA60", Slot = "44")]
public virtual void Close()
{
TlsContext context = this.Context;
}
// Token: 0x0600B345 RID: 45893 RVA: 0x0026B6EC File Offset: 0x002698EC
[Token(Token = "0x600B345")]
[Address(RVA = "0x4AB350", Offset = "0x4AA350", VA = "0x1804AB350", Slot = "45")]
protected internal virtual void Flush()
{
bool canRead = this.mRecordStream.mOutput.CanRead;
}
// Token: 0x17001C5A RID: 7258
// (get) Token: 0x0600B346 RID: 45894 RVA: 0x0026B710 File Offset: 0x00269910
[Token(Token = "0x17001C5A")]
public virtual bool IsClosed
{
[Token(Token = "0x600B346")]
[Address(RVA = "0x4AE750", Offset = "0x4AD750", VA = "0x1804AE750", Slot = "46")]
get
{
return this.mClosed;
}
}
// Token: 0x0600B347 RID: 45895 RVA: 0x0026B724 File Offset: 0x00269924
[Token(Token = "0x600B347")]
[Address(RVA = "0x4AC500", Offset = "0x4AB500", VA = "0x1804AC500", Slot = "47")]
protected virtual short ProcessMaxFragmentLengthExtension(IDictionary clientExtensions, IDictionary serverExtensions, byte alertDescription)
{
/*
An exception occurred when decompiling this method (0600B347)
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_21:
stloc:TlsFatalAlert(var_3_27, 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.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: 0x0600B348 RID: 45896 RVA: 0x0026B758 File Offset: 0x00269958
[Token(Token = "0x600B348")]
[Address(RVA = "0x4AD2F0", Offset = "0x4AC2F0", VA = "0x1804AD2F0", Slot = "48")]
protected virtual void RefuseRenegotiation()
{
bool flag;
do
{
string text = this.ToString();
}
while (flag);
TlsContext context = this.Context;
}
// Token: 0x0600B349 RID: 45897 RVA: 0x0026B778 File Offset: 0x00269978
[Token(Token = "0x600B349")]
[Address(RVA = "0x4AA6A0", Offset = "0x4A96A0", VA = "0x1804AA6A0")]
protected internal static void AssertEmpty(MemoryStream buf)
{
long length = buf.Length;
bool canWrite = buf.CanWrite;
}
// Token: 0x0600B34A RID: 45898 RVA: 0x0026B794 File Offset: 0x00269994
[Token(Token = "0x600B34A")]
[Address(RVA = "0x4AAFE0", Offset = "0x4A9FE0", VA = "0x1804AAFE0")]
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: 0x0600B34B RID: 45899 RVA: 0x0026B7C0 File Offset: 0x002699C0
[Token(Token = "0x600B34B")]
[Address(RVA = "0x4AB090", Offset = "0x4AA090", VA = "0x1804AB090")]
protected internal static byte[] CreateRenegotiationInfo(byte[] renegotiated_connection)
{
return TlsUtilities.EncodeOpaque8(renegotiated_connection);
}
// Token: 0x0600B34C RID: 45900 RVA: 0x0026B7D4 File Offset: 0x002699D4
[Token(Token = "0x600B34C")]
[Address(RVA = "0x4AB210", Offset = "0x4AA210", VA = "0x1804AB210")]
protected internal static void EstablishMasterSecret(TlsContext context, TlsKeyExchange keyExchange)
{
while (0 != 0)
{
}
}
// Token: 0x0600B34D RID: 45901 RVA: 0x0026B7F4 File Offset: 0x002699F4
[Token(Token = "0x600B34D")]
[Address(RVA = "0x4AB4A0", Offset = "0x4AA4A0", VA = "0x1804AB4A0")]
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: 0x0600B34E RID: 45902 RVA: 0x0026B824 File Offset: 0x00269A24
[Token(Token = "0x600B34E")]
[Address(RVA = "0x4ACD60", Offset = "0x4ABD60", VA = "0x1804ACD60")]
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: 0x0600B34F RID: 45903 RVA: 0x0026B898 File Offset: 0x00269A98
[Token(Token = "0x600B34F")]
[Address(RVA = "0x4AD160", Offset = "0x4AC160", VA = "0x1804AD160")]
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: 0x0600B350 RID: 45904 RVA: 0x0026B908 File Offset: 0x00269B08
[Token(Token = "0x600B350")]
[Address(RVA = "0x4ADEF0", Offset = "0x4ACEF0", VA = "0x1804ADEF0")]
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: 0x0600B351 RID: 45905 RVA: 0x0026B934 File Offset: 0x00269B34
[Token(Token = "0x600B351")]
[Address(RVA = "0x4AE130", Offset = "0x4AD130", VA = "0x1804AE130")]
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: 0x0600B352 RID: 45906 RVA: 0x0026B974 File Offset: 0x00269B74
[Token(Token = "0x600B352")]
[Address(RVA = "0x4AE3E0", Offset = "0x4AD3E0", VA = "0x1804AE3E0")]
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: 0x0600B353 RID: 45907 RVA: 0x0026B9B8 File Offset: 0x00269BB8
[Token(Token = "0x600B353")]
[Address(RVA = "0x4AB590", Offset = "0x4AA590", VA = "0x1804AB590")]
protected internal static int GetPrfAlgorithm(TlsContext context, int ciphersuite)
{
/*
An exception occurred when decompiling this method (0600B353)
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: 0x040071DF RID: 29151
[Token(Token = "0x40071DF")]
protected const short CS_START = 0;
// Token: 0x040071E0 RID: 29152
[Token(Token = "0x40071E0")]
protected const short CS_CLIENT_HELLO = 1;
// Token: 0x040071E1 RID: 29153
[Token(Token = "0x40071E1")]
protected const short CS_SERVER_HELLO = 2;
// Token: 0x040071E2 RID: 29154
[Token(Token = "0x40071E2")]
protected const short CS_SERVER_SUPPLEMENTAL_DATA = 3;
// Token: 0x040071E3 RID: 29155
[Token(Token = "0x40071E3")]
protected const short CS_SERVER_CERTIFICATE = 4;
// Token: 0x040071E4 RID: 29156
[Token(Token = "0x40071E4")]
protected const short CS_CERTIFICATE_STATUS = 5;
// Token: 0x040071E5 RID: 29157
[Token(Token = "0x40071E5")]
protected const short CS_SERVER_KEY_EXCHANGE = 6;
// Token: 0x040071E6 RID: 29158
[Token(Token = "0x40071E6")]
protected const short CS_CERTIFICATE_REQUEST = 7;
// Token: 0x040071E7 RID: 29159
[Token(Token = "0x40071E7")]
protected const short CS_SERVER_HELLO_DONE = 8;
// Token: 0x040071E8 RID: 29160
[Token(Token = "0x40071E8")]
protected const short CS_CLIENT_SUPPLEMENTAL_DATA = 9;
// Token: 0x040071E9 RID: 29161
[Token(Token = "0x40071E9")]
protected const short CS_CLIENT_CERTIFICATE = 10;
// Token: 0x040071EA RID: 29162
[Token(Token = "0x40071EA")]
protected const short CS_CLIENT_KEY_EXCHANGE = 11;
// Token: 0x040071EB RID: 29163
[Token(Token = "0x40071EB")]
protected const short CS_CERTIFICATE_VERIFY = 12;
// Token: 0x040071EC RID: 29164
[Token(Token = "0x40071EC")]
protected const short CS_CLIENT_FINISHED = 13;
// Token: 0x040071ED RID: 29165
[Token(Token = "0x40071ED")]
protected const short CS_SERVER_SESSION_TICKET = 14;
// Token: 0x040071EE RID: 29166
[Token(Token = "0x40071EE")]
protected const short CS_SERVER_FINISHED = 15;
// Token: 0x040071EF RID: 29167
[Token(Token = "0x40071EF")]
protected const short CS_END = 16;
// Token: 0x040071F0 RID: 29168
[Token(Token = "0x40071F0")]
protected const short ADS_MODE_1_Nsub1 = 0;
// Token: 0x040071F1 RID: 29169
[Token(Token = "0x40071F1")]
protected const short ADS_MODE_0_N = 1;
// Token: 0x040071F2 RID: 29170
[Token(Token = "0x40071F2")]
protected const short ADS_MODE_0_N_FIRSTONLY = 2;
// Token: 0x040071F3 RID: 29171
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40071F3")]
private ByteQueue mApplicationDataQueue;
// Token: 0x040071F4 RID: 29172
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40071F4")]
private ByteQueue mAlertQueue;
// Token: 0x040071F5 RID: 29173
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40071F5")]
private ByteQueue mHandshakeQueue;
// Token: 0x040071F6 RID: 29174
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40071F6")]
internal RecordStream mRecordStream;
// Token: 0x040071F7 RID: 29175
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40071F7")]
protected SecureRandom mSecureRandom;
// Token: 0x040071F8 RID: 29176
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40071F8")]
private TlsStream mTlsStream;
// Token: 0x040071F9 RID: 29177
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40071F9")]
private bool mClosed;
// Token: 0x040071FA RID: 29178
[FieldOffset(Offset = "0x41")]
[Token(Token = "0x40071FA")]
private bool mFailedWithError;
// Token: 0x040071FB RID: 29179
[FieldOffset(Offset = "0x42")]
[Token(Token = "0x40071FB")]
private bool mAppDataReady;
// Token: 0x040071FC RID: 29180
[FieldOffset(Offset = "0x43")]
[Token(Token = "0x40071FC")]
private bool mAppDataSplitEnabled;
// Token: 0x040071FD RID: 29181
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x40071FD")]
private int mAppDataSplitMode;
// Token: 0x040071FE RID: 29182
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40071FE")]
private byte[] mExpectedVerifyData;
// Token: 0x040071FF RID: 29183
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40071FF")]
protected TlsSession mTlsSession;
// Token: 0x04007200 RID: 29184
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4007200")]
protected SessionParameters mSessionParameters;
// Token: 0x04007201 RID: 29185
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4007201")]
protected SecurityParameters mSecurityParameters;
// Token: 0x04007202 RID: 29186
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4007202")]
protected Certificate mPeerCertificate;
// Token: 0x04007203 RID: 29187
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4007203")]
protected int[] mOfferedCipherSuites;
// Token: 0x04007204 RID: 29188
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4007204")]
protected byte[] mOfferedCompressionMethods;
// Token: 0x04007205 RID: 29189
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x4007205")]
protected IDictionary mClientExtensions;
// Token: 0x04007206 RID: 29190
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x4007206")]
protected IDictionary mServerExtensions;
// Token: 0x04007207 RID: 29191
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x4007207")]
protected short mConnectionState;
// Token: 0x04007208 RID: 29192
[FieldOffset(Offset = "0x92")]
[Token(Token = "0x4007208")]
protected bool mResumedSession;
// Token: 0x04007209 RID: 29193
[FieldOffset(Offset = "0x93")]
[Token(Token = "0x4007209")]
protected bool mReceivedChangeCipherSpec;
// Token: 0x0400720A RID: 29194
[FieldOffset(Offset = "0x94")]
[Token(Token = "0x400720A")]
protected bool mSecureRenegotiation;
// Token: 0x0400720B RID: 29195
[FieldOffset(Offset = "0x95")]
[Token(Token = "0x400720B")]
protected bool mAllowCertificateStatus;
// Token: 0x0400720C RID: 29196
[FieldOffset(Offset = "0x96")]
[Token(Token = "0x400720C")]
protected bool mExpectSessionTicket;
// Token: 0x0400720D RID: 29197
[FieldOffset(Offset = "0x97")]
[Token(Token = "0x400720D")]
protected bool mBlocking;
// Token: 0x0400720E RID: 29198
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x400720E")]
protected ByteQueueStream mInputBuffers;
// Token: 0x0400720F RID: 29199
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x400720F")]
protected ByteQueueStream mOutputBuffer;
// Token: 0x02001C65 RID: 7269
[Token(Token = "0x2001C65")]
internal class HandshakeMessage : MemoryStream
{
// Token: 0x0600B354 RID: 45908 RVA: 0x0026BA20 File Offset: 0x00269C20
[Token(Token = "0x600B354")]
[Address(RVA = "0x45CDC0", Offset = "0x45BDC0", VA = "0x18045CDC0")]
internal HandshakeMessage(byte handshakeType)
{
}
// Token: 0x0600B355 RID: 45909 RVA: 0x0026BA30 File Offset: 0x00269C30
[Token(Token = "0x600B355")]
[Address(RVA = "0x45CDD0", Offset = "0x45BDD0", VA = "0x18045CDD0")]
internal HandshakeMessage(byte handshakeType, int length)
: base((int)handshakeType)
{
((IDisposable)this).Dispose();
}
// Token: 0x0600B356 RID: 45910 RVA: 0x0026BA50 File Offset: 0x00269C50
[Token(Token = "0x600B356")]
[Address(RVA = "0x45CD80", Offset = "0x45BD80", VA = "0x18045CD80")]
internal void Write(byte[] data)
{
int num = this.ReadByte();
}
// Token: 0x0600B357 RID: 45911 RVA: 0x0026BA6C File Offset: 0x00269C6C
[Token(Token = "0x600B357")]
[Address(RVA = "0x45CBA0", Offset = "0x45BBA0", VA = "0x18045CBA0")]
internal void WriteToRecordStream(TlsProtocol protocol)
{
bool canWrite = this.CanWrite;
long position = this.Position;
bool canWrite2 = this.CanWrite;
}
}
}
}