Files
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

550 lines
28 KiB
C#

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