using System; using System.Collections; using System.Collections.Generic; using System.IO; using BestHTTP.SecureProtocol.Org.BouncyCastle.Security; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls { // Token: 0x02001C01 RID: 7169 [Token(Token = "0x2001C01")] public class DtlsClientProtocol : DtlsProtocol { // Token: 0x0600B08E RID: 45198 RVA: 0x00261FCC File Offset: 0x002601CC [Token(Token = "0x600B08E")] [Address(RVA = "0x233B100", Offset = "0x233A100", VA = "0x18233B100")] public DtlsClientProtocol(SecureRandom secureRandom) : base(secureRandom) { } // Token: 0x0600B08F RID: 45199 RVA: 0x00261FE0 File Offset: 0x002601E0 [Token(Token = "0x600B08F")] [Address(RVA = "0x2339240", Offset = "0x2338240", VA = "0x182339240", Slot = "5")] public virtual DtlsTransport Connect(TlsClient client, DatagramTransport transport) { /* An exception occurred when decompiling this method (0600B08F) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsTransport BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsClientProtocol::Connect(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsClient,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DatagramTransport) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_BE: stloc:ArgumentNullException(var_18_C8, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("transport"))) } 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: 0x0600B090 RID: 45200 RVA: 0x002620B8 File Offset: 0x002602B8 [Token(Token = "0x600B090")] [Address(RVA = "0x23382E0", Offset = "0x23372E0", VA = "0x1823382E0", Slot = "6")] internal virtual void AbortClientHandshake(DtlsClientProtocol.ClientHandshakeState state, DtlsRecordLayer recordLayer, byte alertDescription) { recordLayer.Failed(); } // Token: 0x0600B091 RID: 45201 RVA: 0x002620D4 File Offset: 0x002602D4 [Token(Token = "0x600B091")] [Address(RVA = "0x2338340", Offset = "0x2337340", VA = "0x182338340", Slot = "7")] internal virtual DtlsTransport ClientHandshake(DtlsClientProtocol.ClientHandshakeState state, DtlsRecordLayer recordLayer) { /* An exception occurred when decompiling this method (0600B091) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsTransport BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsClientProtocol::ClientHandshake(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsClientProtocol/ClientHandshakeState,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsRecordLayer) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_462: stloc:TlsFatalAlert(var_109_469, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_110))) } 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: 0x0600B092 RID: 45202 RVA: 0x0026254C File Offset: 0x0026074C [Token(Token = "0x600B092")] [Address(RVA = "0x2339660", Offset = "0x2338660", VA = "0x182339660", Slot = "8")] protected virtual byte[] GenerateCertificateVerify(DtlsClientProtocol.ClientHandshakeState state, DigitallySigned certificateVerify) { MemoryStream memoryStream = new MemoryStream(); byte[] signature = certificateVerify.Signature; ((IDisposable)memoryStream).Dispose(); throw new NullReferenceException(); } // Token: 0x0600B093 RID: 45203 RVA: 0x00262574 File Offset: 0x00260774 [Token(Token = "0x600B093")] [Address(RVA = "0x23396F0", Offset = "0x23386F0", VA = "0x1823396F0", Slot = "9")] protected virtual byte[] GenerateClientHello(DtlsClientProtocol.ClientHandshakeState state, TlsClient client) { /* An exception occurred when decompiling this method (0600B093) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsClientProtocol::GenerateClientHello(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsClientProtocol/ClientHandshakeState,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.TlsClient) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_160: stloc:TlsFatalAlert(var_27_167, newobj:TlsFatalAlert(TlsFatalAlert::.ctor, ldloc:uint64[exp:uint8](var_28))) } 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: 0x0600B094 RID: 45204 RVA: 0x002626EC File Offset: 0x002608EC [Token(Token = "0x600B094")] [Address(RVA = "0x2339C50", Offset = "0x2338C50", VA = "0x182339C50", Slot = "10")] protected virtual byte[] GenerateClientKeyExchange(DtlsClientProtocol.ClientHandshakeState state) { MemoryStream memoryStream = new MemoryStream(); TlsKeyExchange keyExchange = state.keyExchange; ((IDisposable)memoryStream).Dispose(); throw new NullReferenceException(); } // Token: 0x0600B095 RID: 45205 RVA: 0x00262714 File Offset: 0x00260914 [Token(Token = "0x600B095")] [Address(RVA = "0x2339CE0", Offset = "0x2338CE0", VA = "0x182339CE0", Slot = "11")] protected virtual void InvalidateSession(DtlsClientProtocol.ClientHandshakeState state) { SessionParameters sessionParameters = state.sessionParameters; if (sessionParameters != 0) { sessionParameters.Clear(); state.sessionParameters = (ulong)0L; } if (state.tlsSession != 0) { state.tlsSession = (ulong)0L; } } // Token: 0x0600B096 RID: 45206 RVA: 0x00262754 File Offset: 0x00260954 [Token(Token = "0x600B096")] [Address(RVA = "0x2339E90", Offset = "0x2338E90", VA = "0x182339E90", Slot = "12")] protected virtual void ProcessCertificateRequest(DtlsClientProtocol.ClientHandshakeState state, byte[] body) { while (state.authentication == (ulong)0L) { } int num; MemoryStream memoryStream = new MemoryStream(body, num != 0); num = 0; CertificateRequest certificateRequest = CertificateRequest.Parse(state.clientContext, memoryStream); state.certificateRequest = certificateRequest; TlsProtocol.AssertEmpty(memoryStream); TlsKeyExchange keyExchange = state.keyExchange; throw new NullReferenceException(); } // Token: 0x0600B097 RID: 45207 RVA: 0x0026279C File Offset: 0x0026099C [Token(Token = "0x600B097")] [Address(RVA = "0x2339F70", Offset = "0x2338F70", VA = "0x182339F70", Slot = "13")] protected virtual void ProcessCertificateStatus(DtlsClientProtocol.ClientHandshakeState state, byte[] body) { /* An exception occurred when decompiling this method (0600B097) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsClientProtocol::ProcessCertificateStatus(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls.DtlsClientProtocol/ClientHandshakeState,System.Byte[]) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_57: stloc:ArgumentException(var_7_66, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("not an instance of the correct type"), ldstr:string("response"))) } 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: 0x0600B098 RID: 45208 RVA: 0x00262810 File Offset: 0x00260A10 [Token(Token = "0x600B098")] [Address(RVA = "0x233A170", Offset = "0x2339170", VA = "0x18233A170", Slot = "14")] protected virtual byte[] ProcessHelloVerifyRequest(DtlsClientProtocol.ClientHandshakeState state, byte[] body) { ProtocolVersion protocolVersion; byte[] array; bool flag; do { int num; MemoryStream memoryStream = new MemoryStream(body, num != 0); num = 0; protocolVersion = TlsUtilities.ReadVersion(memoryStream); array = TlsUtilities.ReadOpaque8(memoryStream); TlsProtocol.AssertEmpty(memoryStream); bool isServer = state.clientContext.IsServer; } while (!flag); if (!ProtocolVersion.DTLSv12.IsEqualOrEarlierVersionOf(protocolVersion)) { } return array; } // Token: 0x0600B099 RID: 45209 RVA: 0x00262864 File Offset: 0x00260A64 [Token(Token = "0x600B099")] [Address(RVA = "0x233A320", Offset = "0x2339320", VA = "0x18233A320", Slot = "15")] protected virtual void ProcessNewSessionTicket(DtlsClientProtocol.ClientHandshakeState state, byte[] body) { int num; MemoryStream memoryStream = new MemoryStream(body, num != 0); num = 0; NewSessionTicket newSessionTicket = NewSessionTicket.Parse(memoryStream); TlsProtocol.AssertEmpty(memoryStream); TlsClient client = state.client; int num2 = 0; if (num2 < num) { num2 += num2; num2++; } List hostNames = client.HostNames; } // Token: 0x0600B09A RID: 45210 RVA: 0x002628B8 File Offset: 0x00260AB8 [Token(Token = "0x600B09A")] [Address(RVA = "0x233A430", Offset = "0x2339430", VA = "0x18233A430", Slot = "16")] protected virtual Certificate ProcessServerCertificate(DtlsClientProtocol.ClientHandshakeState state, byte[] body) { int num; MemoryStream memoryStream = new MemoryStream(body, num != 0); num = 0; Certificate certificate = Certificate.Parse(memoryStream); TlsProtocol.AssertEmpty(memoryStream); TlsKeyExchange keyExchange = state.keyExchange; TlsClient client = state.client; state.authentication = certificate; return certificate; } // Token: 0x0600B09B RID: 45211 RVA: 0x002628FC File Offset: 0x00260AFC [Token(Token = "0x600B09B")] [Address(RVA = "0x233A530", Offset = "0x2339530", VA = "0x18233A530", Slot = "17")] protected virtual void ProcessServerHello(DtlsClientProtocol.ClientHandshakeState state, byte[] body) { SecureRandom secureRandom; int num6; IDictionary dictionary2; for (;;) { secureRandom = state.clientContext.SecureRandom; int num; MemoryStream memoryStream = new MemoryStream(body, num != 0); num = 0; ProtocolVersion protocolVersion = TlsUtilities.ReadVersion(memoryStream); byte[] array = TlsUtilities.ReadFully(32, memoryStream); byte[] array2 = TlsUtilities.ReadOpaque8(memoryStream); state.selectedSessionID = array2; TlsClient client = state.client; byte[] selectedSessionID = state.selectedSessionID; if (selectedSessionID.Length != 0 && state.tlsSession != 0) { bool flag = Arrays.AreEqual(selectedSessionID, array2); } int num2 = 0; state.resumedSession = num2 != 0; int num3 = TlsUtilities.ReadUint16(memoryStream); if (Arrays.Contains(state.offeredCipherSuites, num3) && num3 != 0 && num3 != 255 && num3 != 22016) { TlsClientContextImpl clientContext = state.clientContext; bool flag2; if (flag2) { TlsClient client2 = state.client; byte b = TlsUtilities.ReadUint8(memoryStream); TlsClient client3 = state.client; IDictionary dictionary = TlsProtocol.ReadExtensions(memoryStream); state.serverExtensions = dictionary; bool flag3 = TlsExtensionsUtilities.HasExtendedMasterSecretExtension(dictionary); long num4 = secureRandom.NextLong(); if ((state.resumedSession ? 1L : 0L) != num4) { goto IL_237; } TlsClient client4 = state.client; if (state.serverExtensions != 0) { long num5 = num4; byte[] extensionData = TlsUtilities.GetExtensionData(state.clientExtensions, (int)num5); if (extensionData == 0) { goto IL_231; } if (extensionData != 0) { } } byte[] extensionData2 = TlsUtilities.GetExtensionData(state.serverExtensions, 65281); if (extensionData2 != 0) { state.secure_renegotiation = true; byte[] array3 = TlsProtocol.CreateRenegotiationInfo(TlsUtilities.EmptyBytes); if (!Arrays.ConstantTimeAreEqual(extensionData2, array3)) { continue; } } TlsClient client5 = state.client; if (state.resumedSession) { SessionParameters sessionParameters = state.sessionParameters; if (num3 != sessionParameters.mCipherSuite || b != sessionParameters.mCompressionAlgorithm) { continue; } num6 = 0; dictionary2 = sessionParameters.ReadServerExtensions(); } secureRandom.inextp = num3; secureRandom.SeedArray = b; if (dictionary2 == 0 || dictionary2 <= 0) { goto IL_204; } if (!TlsExtensionsUtilities.HasEncryptThenMacExtension(dictionary2)) { break; } int num7; num3 = num7; if (TlsUtilities.IsBlockCipherSuite(num3)) { break; } } } } bool resumedSession = state.resumedSession; bool flag4 = TlsExtensionsUtilities.HasTruncatedHMacExtension(dictionary2); if (state.resumedSession) { } if (state.resumedSession) { } IL_204: if (num6 != 0) { TlsClient client6 = state.client; } int num8; int prfAlgorithm = TlsProtocol.GetPrfAlgorithm(state.clientContext, num8); secureRandom.generator = (ulong)12L; return; IL_231: throw new NullReferenceException(); IL_237: throw new NullReferenceException(); } // Token: 0x0600B09C RID: 45212 RVA: 0x00262B54 File Offset: 0x00260D54 [Token(Token = "0x600B09C")] [Address(RVA = "0x233AEE0", Offset = "0x2339EE0", VA = "0x18233AEE0", Slot = "18")] protected virtual void ProcessServerKeyExchange(DtlsClientProtocol.ClientHandshakeState state, byte[] body) { int num; MemoryStream memoryStream = new MemoryStream(body, num != 0); num = 0; TlsKeyExchange keyExchange = state.keyExchange; TlsProtocol.AssertEmpty(memoryStream); } // Token: 0x0600B09D RID: 45213 RVA: 0x00262B80 File Offset: 0x00260D80 [Token(Token = "0x600B09D")] [Address(RVA = "0x233AF80", Offset = "0x2339F80", VA = "0x18233AF80", Slot = "19")] protected virtual void ProcessServerSupplementalData(DtlsClientProtocol.ClientHandshakeState state, byte[] body) { int num; MemoryStream memoryStream = new MemoryStream(body, num != 0); num = 0; IList list = TlsProtocol.ReadSupplementalDataMessage(memoryStream); TlsClient client = state.client; throw new NullReferenceException(); } // Token: 0x0600B09E RID: 45214 RVA: 0x00262BAC File Offset: 0x00260DAC [Token(Token = "0x600B09E")] [Address(RVA = "0x233B020", Offset = "0x233A020", VA = "0x18233B020", Slot = "20")] protected virtual void ReportServerVersion(DtlsClientProtocol.ClientHandshakeState state, ProtocolVersion server_version) { TlsClientContextImpl clientContext; bool flag; do { clientContext = state.clientContext; } while (!flag); ProtocolVersion serverVersion = clientContext.ServerVersion; TlsClient client = state.client; } // Token: 0x0600B09F RID: 45215 RVA: 0x00262BD8 File Offset: 0x00260DD8 [Token(Token = "0x600B09F")] [Address(RVA = "0x2339D50", Offset = "0x2338D50", VA = "0x182339D50")] protected static byte[] PatchClientHelloWithCookie(byte[] clientHelloBody, byte[] cookie) { byte b = TlsUtilities.ReadUint8(clientHelloBody, 34); byte b2 = b + 1; byte[] array = new byte[cookie.Length]; int num = 0; int num2 = 0; Array.Copy(clientHelloBody, num2, array, num, (int)b); TlsUtilities.CheckUint8(cookie.Length); TlsUtilities.WriteUint8((byte)cookie.Length, array, (int)b); int length = cookie.Length; int num3 = 0; Array.Copy(cookie, num3, array, (int)b2, length); int num4 = clientHelloBody.Length; int num5 = cookie.Length; num4 -= (int)b2; num5 += (int)b2; Array.Copy(clientHelloBody, (int)b2, array, num5, num4); return array; } // Token: 0x02001C02 RID: 7170 [Token(Token = "0x2001C02")] protected internal class ClientHandshakeState { // Token: 0x0600B0A0 RID: 45216 RVA: 0x00262C6C File Offset: 0x00260E6C [Token(Token = "0x600B0A0")] [Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")] public ClientHandshakeState() { } // Token: 0x0400701C RID: 28700 [FieldOffset(Offset = "0x10")] [Token(Token = "0x400701C")] internal TlsClient client; // Token: 0x0400701D RID: 28701 [FieldOffset(Offset = "0x18")] [Token(Token = "0x400701D")] internal TlsClientContextImpl clientContext; // Token: 0x0400701E RID: 28702 [FieldOffset(Offset = "0x20")] [Token(Token = "0x400701E")] internal TlsSession tlsSession; // Token: 0x0400701F RID: 28703 [FieldOffset(Offset = "0x28")] [Token(Token = "0x400701F")] internal SessionParameters sessionParameters; // Token: 0x04007020 RID: 28704 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4007020")] internal SessionParameters.Builder sessionParametersBuilder; // Token: 0x04007021 RID: 28705 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4007021")] internal int[] offeredCipherSuites; // Token: 0x04007022 RID: 28706 [FieldOffset(Offset = "0x40")] [Token(Token = "0x4007022")] internal IDictionary clientExtensions; // Token: 0x04007023 RID: 28707 [FieldOffset(Offset = "0x48")] [Token(Token = "0x4007023")] internal IDictionary serverExtensions; // Token: 0x04007024 RID: 28708 [FieldOffset(Offset = "0x50")] [Token(Token = "0x4007024")] internal byte[] selectedSessionID; // Token: 0x04007025 RID: 28709 [FieldOffset(Offset = "0x58")] [Token(Token = "0x4007025")] internal bool resumedSession; // Token: 0x04007026 RID: 28710 [FieldOffset(Offset = "0x59")] [Token(Token = "0x4007026")] internal bool secure_renegotiation; // Token: 0x04007027 RID: 28711 [FieldOffset(Offset = "0x5A")] [Token(Token = "0x4007027")] internal bool allowCertificateStatus; // Token: 0x04007028 RID: 28712 [FieldOffset(Offset = "0x5B")] [Token(Token = "0x4007028")] internal bool expectSessionTicket; // Token: 0x04007029 RID: 28713 [FieldOffset(Offset = "0x60")] [Token(Token = "0x4007029")] internal TlsKeyExchange keyExchange; // Token: 0x0400702A RID: 28714 [FieldOffset(Offset = "0x68")] [Token(Token = "0x400702A")] internal TlsAuthentication authentication; // Token: 0x0400702B RID: 28715 [FieldOffset(Offset = "0x70")] [Token(Token = "0x400702B")] internal CertificateStatus certificateStatus; // Token: 0x0400702C RID: 28716 [FieldOffset(Offset = "0x78")] [Token(Token = "0x400702C")] internal CertificateRequest certificateRequest; // Token: 0x0400702D RID: 28717 [FieldOffset(Offset = "0x80")] [Token(Token = "0x400702D")] internal TlsCredentials clientCredentials; } } }