612 lines
20 KiB
C#
612 lines
20 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.IO;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
using Hjg.Pngcs;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls
|
|
{
|
|
// Token: 0x02001C09 RID: 7177
|
|
[Token(Token = "0x2001C09")]
|
|
internal class DtlsReliableHandshake
|
|
{
|
|
// Token: 0x0600B0CF RID: 45263 RVA: 0x0026377C File Offset: 0x0026197C
|
|
[Token(Token = "0x600B0CF")]
|
|
[Address(RVA = "0x233EC90", Offset = "0x233DC90", VA = "0x18233EC90")]
|
|
internal DtlsReliableHandshake(TlsContext context, DtlsRecordLayer transport)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B0CF)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsReliableHandshake::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsContext,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsRecordLayer)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:IDictionary(var_1_07, call:IDictionary(Platform::CreateHashtable))
|
|
stfld:IDictionary(DtlsReliableHandshake::mCurrentInboundFlight, ldloc:DtlsReliableHandshake(this), ldloc:IDictionary(var_1_07))
|
|
stloc:IList(var_3_16, call:IList(Platform::CreateArrayList))
|
|
stfld:IList(DtlsReliableHandshake::mOutboundFlight, ldloc:DtlsReliableHandshake(this), ldloc:IList(var_3_16))
|
|
stfld:bool(DtlsReliableHandshake::mSending, ldloc:DtlsReliableHandshake(this), ldc.i4:bool(1))
|
|
call:void(object::.ctor, ldloc:DtlsReliableHandshake[exp:object](this))
|
|
stfld:DtlsRecordLayer(DtlsReliableHandshake::mRecordLayer, ldloc:DtlsReliableHandshake(this), ldloc:DtlsRecordLayer(transport))
|
|
stloc:DeferredHash(var_4_37, newobj:DeferredHash(DeferredHash::.ctor))
|
|
stloc:DigestInputBuffer(var_5_3E, newobj:DigestInputBuffer(DigestInputBuffer::.ctor))
|
|
stfld:DigestInputBuffer(DeferredHash::mBuf, ldloc:DeferredHash(var_4_37), ldloc:DigestInputBuffer(var_5_3E))
|
|
stloc:IDictionary(var_7_51, call:IDictionary(Platform::CreateHashtable))
|
|
stfld:IDictionary(DeferredHash::mHashes, ldloc:DeferredHash(var_4_37), ldloc:IDictionary(var_7_51))
|
|
stfld:int32(DeferredHash::mPrfHashAlgorithm, ldloc:DeferredHash(var_4_37), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](4294967295)))
|
|
stfld:TlsHandshakeHash(DtlsReliableHandshake::mHandshakeHash, ldloc:DtlsReliableHandshake(this), ldloc:DeferredHash[exp:TlsHandshakeHash](var_4_37))
|
|
}
|
|
|
|
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: 0x0600B0D0 RID: 45264 RVA: 0x00263800 File Offset: 0x00261A00
|
|
[Token(Token = "0x600B0D0")]
|
|
[Address(RVA = "0x233D910", Offset = "0x233C910", VA = "0x18233D910")]
|
|
internal void NotifyHelloComplete()
|
|
{
|
|
TlsHandshakeHash tlsHandshakeHash = this.mHandshakeHash;
|
|
}
|
|
|
|
// Token: 0x17001C06 RID: 7174
|
|
// (get) Token: 0x0600B0D1 RID: 45265 RVA: 0x0026381C File Offset: 0x00261A1C
|
|
[Token(Token = "0x17001C06")]
|
|
internal TlsHandshakeHash HandshakeHash
|
|
{
|
|
[Token(Token = "0x600B0D1")]
|
|
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0")]
|
|
get
|
|
{
|
|
return this.mHandshakeHash;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B0D2 RID: 45266 RVA: 0x00263830 File Offset: 0x00261A30
|
|
[Token(Token = "0x600B0D2")]
|
|
[Address(RVA = "0x233D9A0", Offset = "0x233C9A0", VA = "0x18233D9A0")]
|
|
internal TlsHandshakeHash PrepareToFinish()
|
|
{
|
|
return this.mHandshakeHash;
|
|
}
|
|
|
|
// Token: 0x0600B0D3 RID: 45267 RVA: 0x0026384C File Offset: 0x00261A4C
|
|
[Token(Token = "0x600B0D3")]
|
|
[Address(RVA = "0x233E700", Offset = "0x233D700", VA = "0x18233E700")]
|
|
internal void SendMessage(byte msg_type, byte[] body)
|
|
{
|
|
TlsUtilities.CheckUint24(body.Length);
|
|
if (!this.mSending)
|
|
{
|
|
this.CheckInboundFlight();
|
|
IList list = this.mOutboundFlight;
|
|
this.mSending = true;
|
|
}
|
|
int num = this.mMessageSeq;
|
|
int num2 = num + 1;
|
|
this.mMessageSeq = num2;
|
|
DtlsReliableHandshake.Message message;
|
|
message.mMessageSeq = num;
|
|
message.mMsgType = msg_type;
|
|
message.mBody = body;
|
|
IList list2 = this.mOutboundFlight;
|
|
this.WriteMessage(message);
|
|
DtlsReliableHandshake.Message message2 = this.UpdateHandshakeMessagesDigest(message);
|
|
}
|
|
|
|
// Token: 0x0600B0D4 RID: 45268 RVA: 0x002638C8 File Offset: 0x00261AC8
|
|
[Token(Token = "0x600B0D4")]
|
|
[Address(RVA = "0x233DDB0", Offset = "0x233CDB0", VA = "0x18233DDB0")]
|
|
internal byte[] ReceiveMessageBody(byte msg_type)
|
|
{
|
|
DtlsReliableHandshake.Message message;
|
|
do
|
|
{
|
|
message = this.ReceiveMessage();
|
|
}
|
|
while (message.mMsgType != msg_type);
|
|
return message.mBody;
|
|
}
|
|
|
|
// Token: 0x0600B0D5 RID: 45269 RVA: 0x002638F4 File Offset: 0x00261AF4
|
|
[Token(Token = "0x600B0D5")]
|
|
[Address(RVA = "0x233DE30", Offset = "0x233CE30", VA = "0x18233DE30")]
|
|
internal DtlsReliableHandshake.Message ReceiveMessage()
|
|
{
|
|
if (this.mSending)
|
|
{
|
|
this.mSending = false;
|
|
IDictionary dictionary = Platform.CreateHashtable();
|
|
DtlsReliableHandshake.ResetAll(this.mCurrentInboundFlight);
|
|
IDictionary dictionary2 = this.mCurrentInboundFlight;
|
|
this.mPreviousInboundFlight = dictionary2;
|
|
this.mCurrentInboundFlight = dictionary;
|
|
}
|
|
int num = 0;
|
|
IDictionary dictionary3 = this.mCurrentInboundFlight;
|
|
int num2 = this.mNextReceiveSeq;
|
|
if (num2 != 0)
|
|
{
|
|
int num3 = 0;
|
|
if (num2 == 0)
|
|
{
|
|
throw new NullReferenceException();
|
|
}
|
|
if (num3 == 0)
|
|
{
|
|
this.mPreviousInboundFlight = num;
|
|
int num4 = this.mNextReceiveSeq;
|
|
int num5 = num4 + 1;
|
|
this.mNextReceiveSeq = num5;
|
|
DtlsReliableHandshake.Message message;
|
|
message.mMessageSeq = num4;
|
|
DtlsReliableHandshake.Message message2 = this.UpdateHandshakeMessagesDigest(message);
|
|
if (message2 != 0)
|
|
{
|
|
return message2;
|
|
}
|
|
}
|
|
}
|
|
this.mRecordLayer.ResetWriteEpoch();
|
|
if (num != 0)
|
|
{
|
|
}
|
|
byte[] array = new byte[0];
|
|
int sendLimit = this.mRecordLayer.GetSendLimit();
|
|
DtlsRecordLayer dtlsRecordLayer = this.mRecordLayer;
|
|
bool flag;
|
|
while (!flag)
|
|
{
|
|
}
|
|
this.ResendOutboundFlight();
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600B0D6 RID: 45270 RVA: 0x002639F4 File Offset: 0x00261BF4
|
|
[Token(Token = "0x600B0D6")]
|
|
[Address(RVA = "0x233D6F0", Offset = "0x233C6F0", VA = "0x18233D6F0")]
|
|
internal void Finish()
|
|
{
|
|
int num = 0;
|
|
if ((this.mSending ? 1 : 0) != num)
|
|
{
|
|
DtlsReliableHandshake.ResetAll(this.mCurrentInboundFlight);
|
|
IDictionary dictionary = this.mCurrentInboundFlight;
|
|
this.mPreviousInboundFlight = dictionary;
|
|
this.mCurrentInboundFlight = num;
|
|
if (dictionary == 0)
|
|
{
|
|
goto IL_3C;
|
|
}
|
|
DtlsReliableHandshake.Retransmit retransmit;
|
|
retransmit.mOuter = this;
|
|
}
|
|
this.CheckInboundFlight();
|
|
IL_3C:
|
|
int receiveLimit = ((DatagramTransport)this.mRecordLayer).GetReceiveLimit();
|
|
}
|
|
|
|
// Token: 0x0600B0D7 RID: 45271 RVA: 0x00263A50 File Offset: 0x00261C50
|
|
[Token(Token = "0x600B0D7")]
|
|
[Address(RVA = "0x233E6B0", Offset = "0x233D6B0", VA = "0x18233E6B0")]
|
|
internal void ResetHandshakeMessagesDigest()
|
|
{
|
|
TlsHandshakeHash tlsHandshakeHash = this.mHandshakeHash;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600B0D8 RID: 45272 RVA: 0x00263A6C File Offset: 0x00261C6C
|
|
[Token(Token = "0x600B0D8")]
|
|
[Address(RVA = "0x233D2A0", Offset = "0x233C2A0", VA = "0x18233D2A0")]
|
|
private int BackOff(int timeoutMillis)
|
|
{
|
|
int num;
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x0600B0D9 RID: 45273 RVA: 0x00263A7C File Offset: 0x00261C7C
|
|
[Token(Token = "0x600B0D9")]
|
|
[Address(RVA = "0x233D570", Offset = "0x233C570", VA = "0x18233D570")]
|
|
private void CheckInboundFlight()
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
IDictionary dictionary = this.mCurrentInboundFlight;
|
|
num += num;
|
|
num++;
|
|
num++;
|
|
num += 19;
|
|
if (num != 0)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
}
|
|
|
|
// Token: 0x0600B0DA RID: 45274 RVA: 0x00263AB4 File Offset: 0x00261CB4
|
|
[Token(Token = "0x600B0DA")]
|
|
[Address(RVA = "0x233D790", Offset = "0x233C790", VA = "0x18233D790")]
|
|
private DtlsReliableHandshake.Message GetPendingMessage()
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = this.mNextReceiveSeq;
|
|
IDictionary dictionary = this.mCurrentInboundFlight;
|
|
if (num == 0)
|
|
{
|
|
goto IL_49;
|
|
}
|
|
}
|
|
while (num == 0);
|
|
if (num == 0)
|
|
{
|
|
int num2 = this.mNextReceiveSeq;
|
|
int num3 = num2 + 1;
|
|
this.mNextReceiveSeq = num3;
|
|
DtlsReliableHandshake.Message message;
|
|
message.mMessageSeq = num2;
|
|
message.mMsgType = (byte)num;
|
|
return this.UpdateHandshakeMessagesDigest(message);
|
|
}
|
|
IL_49:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600B0DB RID: 45275 RVA: 0x00263B14 File Offset: 0x00261D14
|
|
[Token(Token = "0x600B0DB")]
|
|
[Address(RVA = "0x233D960", Offset = "0x233C960", VA = "0x18233D960")]
|
|
private void PrepareInboundFlight(IDictionary nextFlight)
|
|
{
|
|
DtlsReliableHandshake.ResetAll(this.mCurrentInboundFlight);
|
|
IDictionary dictionary = this.mCurrentInboundFlight;
|
|
this.mPreviousInboundFlight = dictionary;
|
|
this.mCurrentInboundFlight = nextFlight;
|
|
}
|
|
|
|
// Token: 0x0600B0DC RID: 45276 RVA: 0x00263B44 File Offset: 0x00261D44
|
|
[Token(Token = "0x600B0DC")]
|
|
[Address(RVA = "0x233DA00", Offset = "0x233CA00", VA = "0x18233DA00")]
|
|
private bool ProcessRecord(int windowSize, int epoch, byte[] buf, int off, int len)
|
|
{
|
|
int num = TlsUtilities.ReadUint24(buf, windowSize);
|
|
int num2 = TlsUtilities.ReadUint24(buf, windowSize);
|
|
int num3 = TlsUtilities.ReadUint24(buf, windowSize);
|
|
int num4 = this.mNextReceiveSeq;
|
|
byte b;
|
|
if ((int)b >= num4 || (this.mPreviousInboundFlight != 0 && num4 != 0))
|
|
{
|
|
IDictionary dictionary = this.mCurrentInboundFlight;
|
|
if (num4 == 0)
|
|
{
|
|
DtlsReassembler dtlsReassembler = new DtlsReassembler(b, num2);
|
|
}
|
|
}
|
|
if (DtlsReliableHandshake.CheckAll(this.mPreviousInboundFlight))
|
|
{
|
|
this.ResendOutboundFlight();
|
|
DtlsReliableHandshake.ResetAll(this.mPreviousInboundFlight);
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600B0DD RID: 45277 RVA: 0x00263BC8 File Offset: 0x00261DC8
|
|
[Token(Token = "0x600B0DD")]
|
|
[Address(RVA = "0x233E1E0", Offset = "0x233D1E0", VA = "0x18233E1E0")]
|
|
private void ResendOutboundFlight()
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
DtlsRecordLayer dtlsRecordLayer = this.mRecordLayer;
|
|
IList list = this.mOutboundFlight;
|
|
num = 0;
|
|
num += num;
|
|
num++;
|
|
IList list2 = this.mOutboundFlight;
|
|
uint num2;
|
|
if (num < (int)num2)
|
|
{
|
|
num += num;
|
|
num++;
|
|
}
|
|
if (num == 0)
|
|
{
|
|
num += num;
|
|
num++;
|
|
num += 19;
|
|
num += num;
|
|
num += 19;
|
|
}
|
|
}
|
|
while (num == 0);
|
|
this.WriteMessage(num);
|
|
IList list3 = this.mOutboundFlight;
|
|
num++;
|
|
}
|
|
|
|
// Token: 0x0600B0DE RID: 45278 RVA: 0x00263C3C File Offset: 0x00261E3C
|
|
[Token(Token = "0x600B0DE")]
|
|
[Address(RVA = "0x233E830", Offset = "0x233D830", VA = "0x18233E830")]
|
|
private DtlsReliableHandshake.Message UpdateHandshakeMessagesDigest(DtlsReliableHandshake.Message message)
|
|
{
|
|
byte[] mBody = message.mBody;
|
|
byte[] array = new byte[12];
|
|
byte mMsgType = message.mMsgType;
|
|
int num = 0;
|
|
TlsUtilities.WriteUint8(mMsgType, array, num);
|
|
TlsUtilities.WriteUint24(mBody.Length, array, 1);
|
|
PngHelperInternal.WriteInt2tobytes(message.mMessageSeq, array, 4);
|
|
TlsUtilities.WriteUint24(0, array, 6);
|
|
TlsUtilities.WriteUint24(mBody.Length, array, 9);
|
|
TlsHandshakeHash tlsHandshakeHash = this.mHandshakeHash;
|
|
int length = array.Length;
|
|
TlsHandshakeHash tlsHandshakeHash2 = this.mHandshakeHash;
|
|
int length2 = mBody.Length;
|
|
return message;
|
|
}
|
|
|
|
// Token: 0x0600B0DF RID: 45279 RVA: 0x00263CC4 File Offset: 0x00261EC4
|
|
[Token(Token = "0x600B0DF")]
|
|
[Address(RVA = "0x233EB60", Offset = "0x233DB60", VA = "0x18233EB60")]
|
|
private void WriteMessage(DtlsReliableHandshake.Message message)
|
|
{
|
|
int receiveLimit = this.mRecordLayer.GetReceiveLimit();
|
|
byte[] mBody = message.mBody;
|
|
int num = 0;
|
|
int num2 = mBody.Length;
|
|
num2 -= num;
|
|
int num3;
|
|
this.WriteHandshakeFragment(message, num, num3);
|
|
num += num3;
|
|
}
|
|
|
|
// Token: 0x0600B0E0 RID: 45280 RVA: 0x00263D08 File Offset: 0x00261F08
|
|
[Token(Token = "0x600B0E0")]
|
|
[Address(RVA = "0x233E9A0", Offset = "0x233D9A0", VA = "0x18233E9A0")]
|
|
private void WriteHandshakeFragment(DtlsReliableHandshake.Message message, int fragment_offset, int fragment_length)
|
|
{
|
|
DtlsReliableHandshake.RecordLayerBuffer recordLayerBuffer;
|
|
TlsUtilities.WriteUint8(message.mMsgType, recordLayerBuffer);
|
|
TlsUtilities.WriteUint24(message.mBody.Length, recordLayerBuffer);
|
|
int num = message.mMessageSeq;
|
|
TlsUtilities.WriteUint16(num, recordLayerBuffer);
|
|
TlsUtilities.WriteUint24(fragment_offset, recordLayerBuffer);
|
|
TlsUtilities.WriteUint24(fragment_length, recordLayerBuffer);
|
|
int num2 = recordLayerBuffer.ReadByte();
|
|
DtlsRecordLayer dtlsRecordLayer = this.mRecordLayer;
|
|
bool canWrite = recordLayerBuffer.CanWrite;
|
|
}
|
|
|
|
// Token: 0x0600B0E1 RID: 45281 RVA: 0x00263D70 File Offset: 0x00261F70
|
|
[Token(Token = "0x600B0E1")]
|
|
[Address(RVA = "0x233D300", Offset = "0x233C300", VA = "0x18233D300")]
|
|
private static bool CheckAll(IDictionary inboundFlight)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
int num2 = 0;
|
|
if (num2 == 0)
|
|
{
|
|
}
|
|
if (num2 != 0)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
if (num != -1)
|
|
{
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// Token: 0x0600B0E2 RID: 45282 RVA: 0x00263DB0 File Offset: 0x00261FB0
|
|
[Token(Token = "0x600B0E2")]
|
|
[Address(RVA = "0x233E3E0", Offset = "0x233D3E0", VA = "0x18233E3E0")]
|
|
private static void ResetAll(IDictionary inboundFlight)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
num += num;
|
|
num++;
|
|
num++;
|
|
num += 19;
|
|
ulong num2;
|
|
num = (int)((ulong)num + num2);
|
|
if (num == 0 || num == 0)
|
|
{
|
|
goto IL_47;
|
|
}
|
|
DtlsReassembler.Range range;
|
|
range.mStart = num;
|
|
if (range != 0)
|
|
{
|
|
}
|
|
}
|
|
while (num != 0);
|
|
return;
|
|
IL_47:
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0400704D RID: 28749
|
|
[Token(Token = "0x400704D")]
|
|
private const int MaxReceiveAhead = 16;
|
|
|
|
// Token: 0x0400704E RID: 28750
|
|
[Token(Token = "0x400704E")]
|
|
private const int MessageHeaderLength = 12;
|
|
|
|
// Token: 0x0400704F RID: 28751
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x400704F")]
|
|
private readonly DtlsRecordLayer mRecordLayer;
|
|
|
|
// Token: 0x04007050 RID: 28752
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4007050")]
|
|
private TlsHandshakeHash mHandshakeHash;
|
|
|
|
// Token: 0x04007051 RID: 28753
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4007051")]
|
|
private IDictionary mCurrentInboundFlight;
|
|
|
|
// Token: 0x04007052 RID: 28754
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4007052")]
|
|
private IDictionary mPreviousInboundFlight;
|
|
|
|
// Token: 0x04007053 RID: 28755
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4007053")]
|
|
private IList mOutboundFlight;
|
|
|
|
// Token: 0x04007054 RID: 28756
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x4007054")]
|
|
private bool mSending;
|
|
|
|
// Token: 0x04007055 RID: 28757
|
|
[FieldOffset(Offset = "0x3C")]
|
|
[Token(Token = "0x4007055")]
|
|
private int mMessageSeq;
|
|
|
|
// Token: 0x04007056 RID: 28758
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x4007056")]
|
|
private int mNextReceiveSeq;
|
|
|
|
// Token: 0x02001C0A RID: 7178
|
|
[Token(Token = "0x2001C0A")]
|
|
internal class Message
|
|
{
|
|
// Token: 0x0600B0E3 RID: 45283 RVA: 0x00263E10 File Offset: 0x00262010
|
|
[Token(Token = "0x600B0E3")]
|
|
[Address(RVA = "0xF71950", Offset = "0xF70950", VA = "0x180F71950")]
|
|
internal Message(int message_seq, byte msg_type, byte[] body)
|
|
{
|
|
this.mMessageSeq = message_seq;
|
|
this.mMsgType = msg_type;
|
|
this.mBody = body;
|
|
}
|
|
|
|
// Token: 0x17001C07 RID: 7175
|
|
// (get) Token: 0x0600B0E4 RID: 45284 RVA: 0x00263E38 File Offset: 0x00262038
|
|
[Token(Token = "0x17001C07")]
|
|
public int Seq
|
|
{
|
|
[Token(Token = "0x600B0E4")]
|
|
[Address(RVA = "0x40F000", Offset = "0x40E000", VA = "0x18040F000")]
|
|
get
|
|
{
|
|
return this.mMessageSeq;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001C08 RID: 7176
|
|
// (get) Token: 0x0600B0E5 RID: 45285 RVA: 0x00263E4C File Offset: 0x0026204C
|
|
[Token(Token = "0x17001C08")]
|
|
public byte Type
|
|
{
|
|
[Token(Token = "0x600B0E5")]
|
|
[Address(RVA = "0x4987D0", Offset = "0x4977D0", VA = "0x1804987D0")]
|
|
get
|
|
{
|
|
return this.mMsgType;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001C09 RID: 7177
|
|
// (get) Token: 0x0600B0E6 RID: 45286 RVA: 0x00263E60 File Offset: 0x00262060
|
|
[Token(Token = "0x17001C09")]
|
|
public byte[] Body
|
|
{
|
|
[Token(Token = "0x600B0E6")]
|
|
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0")]
|
|
get
|
|
{
|
|
return this.mBody;
|
|
}
|
|
}
|
|
|
|
// Token: 0x04007057 RID: 28759
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4007057")]
|
|
private readonly int mMessageSeq;
|
|
|
|
// Token: 0x04007058 RID: 28760
|
|
[FieldOffset(Offset = "0x14")]
|
|
[Token(Token = "0x4007058")]
|
|
private readonly byte mMsgType;
|
|
|
|
// Token: 0x04007059 RID: 28761
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4007059")]
|
|
private readonly byte[] mBody;
|
|
}
|
|
|
|
// Token: 0x02001C0B RID: 7179
|
|
[Token(Token = "0x2001C0B")]
|
|
internal class RecordLayerBuffer : MemoryStream
|
|
{
|
|
// Token: 0x0600B0E7 RID: 45287 RVA: 0x00263E74 File Offset: 0x00262074
|
|
[Token(Token = "0x600B0E7")]
|
|
[Address(RVA = "0x23415E0", Offset = "0x23405E0", VA = "0x1823415E0")]
|
|
internal RecordLayerBuffer(int size)
|
|
: base(size)
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600B0E8 RID: 45288 RVA: 0x00263E88 File Offset: 0x00262088
|
|
[Token(Token = "0x600B0E8")]
|
|
[Address(RVA = "0x2341520", Offset = "0x2340520", VA = "0x182341520")]
|
|
internal void SendToRecordLayer(DtlsRecordLayer recordLayer)
|
|
{
|
|
bool canWrite = this.CanWrite;
|
|
}
|
|
}
|
|
|
|
// Token: 0x02001C0C RID: 7180
|
|
[Token(Token = "0x2001C0C")]
|
|
internal class Retransmit : DtlsHandshakeRetransmit
|
|
{
|
|
// Token: 0x0600B0E9 RID: 45289 RVA: 0x00263EA4 File Offset: 0x002620A4
|
|
[Token(Token = "0x600B0E9")]
|
|
[Address(RVA = "0x493D90", Offset = "0x492D90", VA = "0x180493D90")]
|
|
internal Retransmit(DtlsReliableHandshake outer)
|
|
{
|
|
this.mOuter = outer;
|
|
}
|
|
|
|
// Token: 0x0600B0EA RID: 45290 RVA: 0x00263EC0 File Offset: 0x002620C0
|
|
[Token(Token = "0x600B0EA")]
|
|
[Address(RVA = "0x23415F0", Offset = "0x23405F0", VA = "0x1823415F0", Slot = "4")]
|
|
public void ReceivedHandshakeRecord(int epoch, byte[] buf, int off, int len)
|
|
{
|
|
DtlsReliableHandshake dtlsReliableHandshake = this.mOuter;
|
|
}
|
|
|
|
// Token: 0x0400705A RID: 28762
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x400705A")]
|
|
private readonly DtlsReliableHandshake mOuter;
|
|
}
|
|
}
|
|
}
|