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

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;
}
}
}